【发布时间】:2015-03-11 02:26:45
【问题描述】:
我真的很想看到一个独占模式音频应用程序的明确示例,该应用程序在一定的输入电平(音量)下从线路输入(不是麦克风)获取输入,并尽最大努力实现这一目标。 (首选 C++,但有总比没有好)
这听起来应该很简单,但找出其中的原因却非常困难。
例如,来自 Microsoft 的 Device Topologies 文档听起来好像您拥有简单的通用音频硬件(如在大多数台式 PC 上)并且只想设置音量、静音或选择频道,那么您不会需要担心设备拓扑,因为设备拓扑 API 适用于更复杂的设备。
这太棒了,但它没有说明如何做,并提出了其他问题:是否有一个标准用于似乎总是提供扬声器输出、线路输入和麦克风输入的常见桌面 PC 音频?由于这样的标准,线路输入和麦克风是否总是混合或多路复用? Device Topologies 文档中的图表表示多路复用;我有旧的mixerXXX() 代码我正在尝试升级,表明混合。
此外,进一步阅读有关Endpoint Volume Controls 的信息表明,使用IAudioEndpointVolume 接口可以做到这一点,但Win 7.1 SDK 中的音频示例没有提供IAudioEndpointVolume 与输入设备的示例。关于各个IAudioEndpointVolume 函数的文档表明支持输入和输出(“进入或离开音频端点设备的音频流”),但这些函数似乎都不支持多路复用,并且再次表明线路输入和麦克风信号的混合。
【问题讨论】: