对于raspberrry应用我需要设置麦克风的输入音量
在c ++中,我可以读取实际值(如果我在pa混音器中更改它会改变),但是正如我设置的那样,它似乎不起作用...在我启动我的代码后,我检查了pa面板混合器,音量不变
下面,有他们的chanels和卷的来源
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: %d\n",currentVolume.values[0]);
pa_operation_unref(o);
}
请有人帮忙吗?
感谢
答案 0 :(得分:1)
https://www.mail-archive.com/pulseaudio-discuss@lists.freedesktop.org/msg16025.html
问题是您为"源输出设置了音量"宁 而不是一个"来源"。源输出表示记录流,而a source是一种设备,如麦克风。使用
pa_context_set_source_volume_by_index()
或pa_context_set_source_volume_by_name()
。