【问题标题】:Set audio input level using portaudio使用 portaudio 设置音频输入电平
【发布时间】:2014-04-29 01:19:47
【问题描述】:

我正在处理在 Windows 上使用 portaudio 的遗留代码。该代码从桌面麦克风获取音频并能够配置输入音量。它在 windows xp 下完美运行,但在 windows 7 下调整音频输入电平被破坏,更改参数对输出音频流没有影响。 代码执行以下调整音量

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

我发现,winmme 的底层功能在 Windows Vista 和更新版本中不起作用。我已更新到最新版本的 portaudio pa_stable_v19_20140130,其中混音器功能不再可用。我找不到在 portsound 中调整输入音量的替代方法,有吗?

【问题讨论】:

  • 为什么不能手动调整?循环遍历数据并将缓冲区中的每个值相乘。无论如何,这就是混音器所做的所有事情,只需将这些值乘以一定程度即可。
  • @benjgorman 你确定吗?输入增益有单独的概念。这在采样前控制模拟前置放大器。它会对您的信噪比产生很大影响。

标签: windows audio multimedia portaudio directsound


【解决方案1】:

我认为您将不得不使用音频端点设备 API。 http://msdn.microsoft.com/en-us/library/windows/desktop/dd370793(v=vs.85).aspx

正如你所说,不再支持 WMME 混音器 API。

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

【讨论】:

  • 有人可能应该向 portaudio 开发人员提出问题。由于他们的目标是提供跨平台 API,因此他们想知道这一点。
猜你喜欢
  • 2012-11-19
  • 2016-02-05
  • 1970-01-01
  • 2019-07-30
  • 2010-09-20
  • 1970-01-01
  • 2020-12-12
  • 1970-01-01
  • 2017-11-22
相关资源
最近更新 更多