我将如何以编程方式捕获内部音频?

Posted

技术标签:

【中文标题】我将如何以编程方式捕获内部音频?【英文标题】:How would I go about programmatically capturing internal audio? 【发布时间】:2018-02-03 23:18:27 【问题描述】:

我正在尝试创建一个 Windows 应用程序,最好是在 .NET 中,它对传入的内部音频执行波形分析和声学指纹识别。 “内部音频”是指通过扬声器播放的声音,例如,当我观看 youtube 视频或播放 mp4 文件时。我将如何捕捉这个内部音频?

【问题讨论】:

【参考方案1】:

您正在寻找 Nadio。虽然它没有“内部音频”,但您可以只加载 mp3 或音频 URL 链接。另一个非常相似的库是 cscore。

NAudio CSCore

这是一个 NAudio 示例

WaveIn waveInStream;
WaveFileWriter writer;
waveInStream = new WaveIn(44100,2);
writer = new WaveFileWriter(outputFilename, waveInStream.WaveFormat);
waveInStream.DataAvailable += new EventHandler<WaveInEventArgs>(waveInStream_DataAvailable);
waveInStream.StartRecording();

void waveInStream_DataAvailable(object sender, WaveInEventArgs e)

   writer.WriteData(e.Buffer, 0, e.BytesRecorded);

【讨论】:

也许你可以展示一些简单的例子来说明如何使用它们。这对可能偶然发现这个问题的其他用户有很大帮助。仅链接到某个库并不是在每种情况下都具有很强的描述性。 嘿,我对 NAudio 很熟悉。我特别想在播放时捕获流式音频。我有什么办法可以做到这一点? 是的,你可以试试waveInStream = new WasapiLoopbackCapture();

以上是关于我将如何以编程方式捕获内部音频?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式在 iphone 中执行应用程序音频的内部录制

如何获得本机(硬件支持)音频采样率以避免内部采样率转换?

我将如何以编程方式与 VST(i) 插件交互以合成音频?

mobizen如何在三星上录制内部音频

如何以编程方式在 Android 设备中获取设备 (AOSP) 内部版本号?

如何调用组件内部定义的函数?