如何以编程方式捕获音频?我正在实现一个实时流式传输网络桌面的应用程序。视频部分已完成。我需要实现音频部分。我需要一种方法从声卡中获取PCM数据以馈送到我的编码器(使用Windows Media Format实现)。
我认为答案与Win32 API中的openMixer(),waveInOpen()函数有关,但我不确定应该怎么做。
如何打开必要的频道以及如何从中读取PCM数据?
提前致谢。
答案 0 :(得分:7)
新的Windows Vista Core Audio API明确支持此功能(称为Loopback Recording),因此如果您可以使用仅限Vista的应用程序,那么这就是您的选择。
有关如何执行此操作的说明,请参阅MSDN上的Loopback Recording文章。
答案 1 :(得分:4)
我认为使用操作系统没有直接的方法 - 这是一种可能(或可能不)存在于声卡上的功能。一些声卡有一个环回接口 - Creative称之为“听到什么”。你只需选择它作为输入而不是麦克风,并使用你已经知道的普通waveInOpen()从中录制。
如果声卡没有此功能,那么我认为除了做一些疯狂的事情,比如制作自己的驱动程序之外,你运气不好。或者您可以说服您的用户从扬声器输出到线路输入运行电缆:)