使用C#直接从硬件获取声音

3
有没有一种方法可以直接从硬件中获取声卡正在播放的声音?
4个回答

2

NAudio是C#中用于声音编程的优秀API。我刚刚发现它,但它可能能够录制输出,虽然可能性不大...

http://www.codeplex.com/naudio


刚试了一下NAudio的示例代码,我可以确认它确实可以录制扬声器输出。不过,至少对于我的烂内置声卡来说是这样。 - Kurru

0

一些声卡可以将输出声音选择为麦克风,如果可接受,那么您可以直接搜索如何使用麦克风...


0

我假设你正在使用 C#,所以这是 Windows 系统。如果你使用的是 Mono,则可以忽略此条信息。

在 Windows 中,官方并没有支持该操作的方法。一些声卡在混音器中有一个设置选项,可以将波形记录输入设置为“所听到的内容”。因此,在这些声卡上,您只需要设置该选项即可录制音频。

编辑:

我应该补充一下,如果您的驱动程序没有内置支持记录输出的功能,则需要编写或购买一个支持此功能的驱动程序。我听说 TotalRecorder 可以实现这一点。


那是一个选项,但我不想让用户手动更改设置,程序应该处理一切。 - slayerIQ
可以通过编程方式操纵混音器,尽管您可能不得不编写非托管代码来完成。而且混音器api很难使用。 - John Knoeller
如果我的程序正在播放声音,那该怎么办? - slayerIQ
当然,在播放之前保存数据会更容易。 - John Knoeller
1
如果你只是想从YouTube视频中剥离声音,那么你面临的问题与尝试从声卡录制完全不同(几乎肯定更容易解决)。 - dnord
显示剩余2条评论

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接