ALSA 设置麦克风音量

ALSA 设置麦克风音量

我有一个 USB 手机,我想用它来录音,根据设置,我想让设备静音。amixer 提供的唯一控件是:

amixer -D hw:1 Simple mixer control 'PCM',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on]

可以看出,这款手机的控制装置并不多,手机一端是扬声器,另一端是麦克风,就像老式电话听筒一样。

我知道我可以使用 PCM 设备控制音量 type softvol,但这只允许控制扬声器音量。我需要一种使麦克风静音的方法,类似于调低录音音量。有没有办法在 asound.conf 中做到这一点?我能找到的唯一示例是使用输出上的 softvol 而不是输入上的 softvol。那么,是否可以根据设备告诉其控件的内容使麦克风静音,或者在输入上有等效的 softvol?

答案1

插件softvol可以很好地完成此操作,但您必须告诉 ALSA 它应该控制录音音量。具体操作方法尚未记录,但如果您Capture Volume在名称后附加(前面的空格和大写字母很重要),它将被解析为softval控制麦克风录音音量的插件。

结合将得到的设备折叠成default,这是我得到的.asoundrc

pcm.!default
{
    type asym
    playback.pcm
    {
        type plug
        slave.pcm "dmix"
        slave.rate 48000
    }
    capture.pcm
    {
        type plug
        slave.pcm "mic_control"
    }
}

pcm.mic_control {
    type            softvol
    slave {
        pcm         "hw:2,0"
    }
    control {
        name        "Softmute Capture Volume"
        card        2
    }
    max_dB 10.0
    min_dB -100.0
}

请注意,后缀已被删除,因此它显示如下Softmute内容amixer

$ amixer -c 2 scontrols
Simple mixer control 'Softmute',0

相关内容