Debian - 脉冲音频 - 在 C++ 中设置麦克风输入音量
debian - pulseaudio - set microphone input volume in c++
对于raspberrry设备,我需要以编程方式设置麦克风的输入音量
在 c++ 中,我可以读取实际值(如果我在 pa mixer 中更改它,则会更改),但是当我设置它时,它似乎不起作用......启动代码后,我检查PA面板混音器,音量没有变化
下面,来源及其卷和卷
SOURCE : [0] 'alsa_output.usb-0d8c_C-Media_USB_Headphone_Set-00-Set.analog-stereo.monitor' 'Monitor of Audio Adapter Analog Stereo'
(0)= 65536
(1)= 65536
SOURCE : [1] 'alsa_input.usb-0d8c_C-Media_USB_Headphone_Set-00-Set.analog-mono' 'Audio Adapter Analog Mono'
(0)= 26281
SOURCE : [2] 'alsa_output.0.analog-stereo.monitor' 'Monitor of bcm2835 ALSA Analog Stereo'
(0)= 65536
(1)= 65536
所以我尝试更改源索引 #1 的音量
void setVolume(int index,int volume)
{
pa_operation* o;
currentVolume.values[0]=volume;
if (!(o = pa_context_set_source_output_volume(context, index, ¤tVolume, NULL, NULL)))
{
printf("pa_context_set_source_output_volume() failed");
return;
}
printf("new volume: %dn",currentVolume.values[0]);
pa_operation_unref(o);
}
请有人帮忙吗?
谢谢
有人
在邮件列表中回答了我:
https://www.mail-archive.com/pulseaudio-discuss@lists.freedesktop.org/msg16025.html
问题是您将音量设置为"源输出" 而不是"来源"。源输出表示录制流,而 源是麦克风等设备。用
pa_context_set_source_volume_by_index()
或pa_context_set_source_volume_by_name()
.
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 检查输入是否不是整数或数字
- 正在尝试了解输入验证循环
- 读取文件并输入到矢量中
- C++如何通过用户输入删除列表元素
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- 用户定义函数中的指针和输入
- 适用于 macOS 的 Xcode 应用程序。这就是我设置从USB麦克风输入获取音频的方式。一年前工作,现在没有了。为什么
- Debian - 脉冲音频 - 在 C++ 中设置麦克风输入音量
- C 麦克风输入
- C++麦克风输入作为随机种子
- Windows中的麦克风列表(输入设备列表)
- Ubuntu 中的 C/C++ 插座,用于接收来自 Android 麦克风输入的音频流