如何获得对当前波形输出样本流的访问权?
在2006年12月的social.microsoft.com问题(How to record from 'Wave' or 'Stereo Mix' in Vista?)中,yjslash问道:
在Windows XP或更早版本中,我可以将音频流捕获到扬声器。换句话说, DirectSoundCapture 能够从选定的源代码行捕获。如果选择“Wave Out Mix”或“Stereo Mix”或类似的东西作为录制源行,DirectSoundCapture能够将音频流录制到扬声器。
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的功能和使用方法允许采样/捕获当前音频输出?
答案 0 :(得分:2)
我在MSDN中找到了this(Loopback Recording),还有this(Capturing a Stream)。
顺便说一下,根据MSDN,WASAPI不允许您捕获具有DRM保护的流:
Windows Vista提供数字版权管理(DRM)。 WASAPI不允许环回记录包含受DRM保护的内容的数字流。类似地,可信音频驱动程序不允许环回设备捕获包含受保护内容的数字流。 Windows Vista仅允许受信任的驱动程序播放受保护的内容。有关受信任驱动程序和DRM的详细信息,请参阅Windows DDK文档。