如何以编程方式捕获音频?我正在实现一个在网络上实时流式传输桌面的应用程序。视频部分已经完成。我需要实现音频部分。我需要一种从声卡获取PCM数据的方法,以便馈送到我的编码器(使用Windows Media格式实现)。
我认为答案与Win32应用编程接口中的openMixer()、waveInOpen()函数有关,但我不确定我到底应该做什么。
如何打开必要的通道,如何从通道中读取PCM数据?
提前谢谢。
发布于 2008-09-21 11:43:17
我不认为有一个直接的方式来做到这一点使用操作系统-这是一个功能,可能会(也可能不会)出现在声卡上。一些声卡有一个回送接口-- Creative称之为"What U Hear“。您只需选择它作为输入,而不是麦克风,并使用您已经知道的普通waveInOpen()从它进行录制。
如果声卡没有这个功能,那么我认为你除了做一些疯狂的事情,比如制作自己的驱动程序之外,你就不走运了。或者,您可以说服用户使用电缆从扬声器输出端连接到线路输入端:)
发布于 2008-09-26 06:16:54
新的Windows Vista Core Audio API明确支持这一点(称为回送录制),所以如果您可以使用Vista唯一的应用程序,这是可行的方法。
有关如何执行此操作的说明,请参阅MSDN上的Loopback Recording文章。
https://stackoverflow.com/questions/111603
复制相似问题