debian - pulseaudio - 用c ++设置麦克风输入音量

时间:2016-05-29 16:10:47

标签: c++

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

请有人帮忙吗?

感谢

1 个答案:

答案 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()