如何以编程方式捕获音频?我正在实现一个实时流式传输网络桌面的应用程序。视频部分已完成。我需要实现音频部分。我需要一种方法从声卡中获取PCM数据以馈送到我的编码器(使用Windows Media Format实现)。

我认为答案与Win32 API中的openMixer(),waveInOpen()函数有关,但我不确定应该怎么做。

如何打开必要的频道以及如何从中读取PCM数据?

提前致谢。

有帮助吗?

解决方案

我认为使用操作系统没有直接的方法 - 这是一种可能(或可能不)存在于声卡上的功能。一些声卡具有环回接口 - Creative称之为“听到什么”。你只需选择它作为输入而不是麦克风,并使用你已经知道的普通waveInOpen()从中录制。

如果声卡没有此功能,那么我认为除了做一些疯狂的事情,比如制作自己的驱动程序之外,你运气不好。或者您可以说服您的用户从扬声器输出到线路输入运行电缆:)

其他提示

新的Windows Vista Core Audio API明确支持此功能(称为Loopback Recording),因此如果您可以使用仅限Vista的应用程序,那么这就是您的选择。

请参阅MSDN上的 Loopback Recording 文章有关如何执行此操作的说明。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top