我有一个 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