gpt4 book ai didi

c++ - debian - pulseaudio - 在 C++ 中设置麦克风输入音量

转载 作者:行者123 更新时间:2023-11-30 05:27:09 25 4
gpt4 key购买 nike

对于树莓派应用程序,我需要以编程方式设置麦克风的输入音量

在 C++ 中,我可以读取实际值(如果我在 pa 混合器中更改它,则会更改),但是当我设置它时,它似乎不起作用......在我启动我的代码后,我检查了 pa面板调音台,音量不变

下面是来源及其 channel 和数量

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, &currentVolume, NULL, NULL)))
{
printf("pa_context_set_source_output_volume() failed");
return;
}
printf("new volume: %d\n",currentVolume.values[0]);
pa_operation_unref(o);
}

有人可以帮忙吗?

谢谢

最佳答案

有人在邮件列表中回复了我:

https://www.mail-archive.com/pulseaudio-discuss@lists.freedesktop.org/msg16025.html

The problem is that you set the volume for a "source output" rather than for a "source". A source output means a recording stream, while a source is a device such as a microphone. Use pa_context_set_source_volume_by_index() or pa_context_set_source_volume_by_name().

关于c++ - debian - pulseaudio - 在 C++ 中设置麦克风输入音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37512113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com