2008-09-21 102 views
4

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

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

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

在此先感谢。

回答

4

我不认为有一种直接的方式来使用操作系统来做到这一点 - 它可能(或不可能)出现在声卡上的功能。一些声卡具有环回接口 - Creative称之为“What U Hear”。您只需将其选为输入而不是麦克风,然后使用您已知的正常waveInOpen()进行记录。

如果声卡没有这个功能,那么我认为你运气不好,除了像做自己的驱动程序那样疯狂。或者你可以说服你的用户从扬声器输出端连接到线路输入端:)

7

新的Windows Vista核心音频API有明确的支持(称为环回录音),所以如果你可以住在Vista只有应用程序这是要走的路。

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

+1

正确的URL是http://msdn.microsoft.com/en-us/library/ms679146(VS.85).aspx – 2011-02-20 14:25:46