Windows Vista / 7:如何对输出音频混合进行采样?

时间:2011-04-27 17:44:30

标签: windows windows-7 audio wasapi

如何获得对当前波形输出样本流的访问权?

在2006年12月的social.microsoft.com问题(How to record from 'Wave' or 'Stereo Mix' in Vista?)中,yjslash问道:

  

在Windows XP或更早版本中,我可以将音频流捕获到扬声器。换句话说, DirectSoundCapture 能够从选定的源代码行捕获。如果选择“Wave Out Mix”或“Stereo Mix”或类似的东西作为录制源行,Dir​​ectSoundCapture能够将音频流录制到扬声器。

Larry Osterman (MSFT)(音频小组开发人员和StackOverflow user)回复了哪些人:

  

您在XP中使用了哪些API?他们应该继续在Vista上工作。

     

WASAPI 有一种特殊的环回模式,允许客户端捕获混合后的音频流,这也可能有所帮助

关于Stackoverflow(How do I read system audio output in windows xp and windows 7?)的问题还提到 WASAPI 能够对输出组合进行采样,并且从Windows Vista开始可以使用它。

A January of 2007 a Windows Team blog条目提到了对音频输出进行采样的能力(出于回声消除的目的;以及HDCP将对其产生的影响):

  

对于高级内容,回复取消的效果会降低吗?

     

我们相信Windows Vista为应用程序提供了足够的信息,可以成功构建高质量的回声消除功能。

使用什么API对音频输出进行采样? Vista为访问当前音频输出流提供应用程序的访问权限是什么? WASAPI的功能和使用方法允许采样/捕获当前音频输出?

另见

1 个答案:

答案 0 :(得分:2)

我在MSDN中找到了thisLoopback Recording),还有thisCapturing a Stream)。

顺便说一下,根据MSDN,WASAPI不允许您捕获具有DRM保护的流:

  

Windows Vista提供数字版权管理(DRM)。 WASAPI不允许环回记录包含受DRM保护的内容的数字流。类似地,可信音频驱动程序不允许环回设备捕获包含受保护内容的数字流。 Windows Vista仅允许受信任的驱动程序播放受保护的内容。有关受信任驱动程序和DRM的详细信息,请参阅Windows DDK文档。