如何更改Ubuntu调整音量混音器级别的方式?
我的声音现在已经有一段轻微的烦恼了,我终于决定是时候做点什么了。
每次我调整工具栏中的主音量滑块,或者在笔记本电脑上使用我的音量热键时,Ubuntu都会以一种奇怪的方式调整我的调音台音量。 当我打开GNOME ALSA Mixer时,我注意到我的SigmaTel STAC9200有三个输出滑块:Master,PCM和LFE。 Master和LFE都有Mute复选框。
当我按下我的音量热键一次,Master和LFE取消静音时,PCM和LFE的滑块大约跳了一半。 主滑块保持为零。 另一台印刷机使PCM和LFE达到约4/5,而Master仍然无动于衷。
在PCM和LFE最大化之前,Ubuntu不会移动Master,在主输出混音器上发生约15%-20%。
这样做的结果是,直到大约15%-20%才会得到任何声音(因为Master是零),当我超过该阈值时,我立即得到一个响亮的低音声音(显然来自LFE) 。 如果我使用耳机,我仍然没有得到任何声音,直到那个阈值,但至少它没有爆炸我发出声音。
在PulseAudio配置或其他任何可能改变输出混音器行为的地方有什么吗?
音频堆栈中有许多层可能导致此症状。 最直接的是PulseAudio默认的行为,你可以在http://pulseaudio.org/wiki/PulseAudioStoleMyVolumes上阅读。 您可以使用我在https://wiki.ubuntu.com/DebuggingSoundProblems/KarmicCaveats#Volume%20range%20anomalies上提供的说明解决某些情况:
体积范围exception
最新版本的PulseAudio尝试使用其混音器控件来控制声卡的音量。 通常这很好用,但在某些情况下这不能正常工作。 (这是PulseAudio还是ALSA的错误超出了这个wiki页面的范围。 这里有更多背景信息。)
诊断
您遇到以下任何情况:
- 音量跳跃,例如,如果低于20%的所有内容都被静音,21%的音量非常大。
- 如果音量设置在某个(低)电平以上,则会出现过载(失真声音)
- 部分范围内没有音量变化,例如,如果20%与70%一样大。
修复/解决方法
有一些变量可以控制PulseAudio控制音量的方式。 您可以编辑
/etc/pulse/default.pa
(您必须是root用户才能更改所有用户的行为),或将该文件复制到~/.pulse/default.pa
然后编辑该文件,仅更改当前用户的行为。打开上面提到的文件。 找到说
load-module module-udev-detect
并将其更改为:load-module module-udev-detect ignore_dB=1
要尝试更改,请使用以下命令重新启动PulseAudio:
killall pulseaudio
然后PulseAudio将自动生成(重启自己)。
您可能会发现上述解决方法不足,在这种情况下,您可以将PulseAudio配置为仅控制一个混音器控件,例如PCM(参见alsamixer)。 找到
#load-module module-alsa-sink
并将其更改为:load-module module-alsa-sink control=PCM
(记得删除行开头的#!)可选择用想要PulseAudio控制的混音器控件替换PCM。
然后你将需要如上所述
killall pulseaudio
并允许守护进程自动生成。
最后,这个exception是否真的是一个bug需要你使用ubuntu-bug alsa-base
。