Windows 使用portaudio设置音频输入电平

Windows 使用portaudio设置音频输入电平,windows,audio,multimedia,portaudio,directsound,Windows,Audio,Multimedia,Portaudio,Directsound,我正在处理一个在windows上使用portaudio的遗留代码。该代码从桌面麦克风获取音频,并能够配置输入音量。它在windows xp下工作得很好,但在windows 7下,音频输入级别的调整被中断,更改参数对输出音频流没有影响。 代码执行以下操作以调整音量 mp_mixer = Px_OpenMixer(mp_inputStream, m_dev_num); if(mp_mixer) Px_SetInputVolume(mp_mixer, m_volume); 我发现,在WindowsV

我正在处理一个在windows上使用portaudio的遗留代码。该代码从桌面麦克风获取音频,并能够配置输入音量。它在windows xp下工作得很好,但在windows 7下,音频输入级别的调整被中断,更改参数对输出音频流没有影响。 代码执行以下操作以调整音量

mp_mixer = Px_OpenMixer(mp_inputStream, m_dev_num);
if(mp_mixer) Px_SetInputVolume(mp_mixer, m_volume);

我发现,在WindowsVista和更新版本中,下面的winmme函数不起作用。我已经更新到portaudio pa_stable_v19_20140130的最新版本,其中混音器功能不再可用。我找不到其他方法来调整portsound中的输入音量,有吗?

我认为您必须使用音频端点设备API

正如您所说,WMME混合器API不再受支持


API还不错。只需确保使用portaudio API设备索引来识别混音器API中的设备。

为什么不能手动调整?循环遍历数据并将缓冲区中的每个值相乘。这就是混音器真正要做的一切,只是将这些值乘以一定程度。@benjgorman你确定吗?输入增益有一个单独的概念。这在采样前控制模拟前置放大器。它会对你的信噪比产生很大的影响。有人可能会向portaudio开发者提出一个问题。因为他们的目标是提供一个跨平台的API,所以他们想知道这一点。