我有一台带有两个扬声器的笔记本电脑:一个扬声器坏了,发出令人不快的失真声音。
我如何永久停用它或使用余额来控制它?
我认为,最好使用终端命令。
另外,我使用 Gnome 的基本声音设置和 PulseAudio Manager。后者用于最大化音量,因为前者不允许我超过 150%。但是当我使用 PulseAudio Manager 时,它会自动将扬声器重新平衡为 50%/50%。因此,任何解决方案都必须足够持久,这样 PulseAudio Manager 才能改变平衡。
谢谢。
答案1
我不知道有什么方法可以用 ALSA 或 PulseAudio 锁定控制,但是这个小技巧应该可以起作用:
stdbuf -oL alsactl monitor | \
while read; do
amixer -D pulse sset Master 0,-
done
它使用以下命令监视音量变化alsactl monitor
(您可以自己运行此命令并更改音量以查看其作用),每次进行更改时,它都会将左声道的音量重置为 0。
您可能需要更改:
pulse
如果您使用其他音频设备,则请切换到其他内容。0,-
如果-,0
您想保持右声道静音。Master
类似于Speaker,0
如果你想让辅助控制(例如耳机)正常工作。
您可以通过以下方式使脚本在启动时运行:
- 将其放入文件中,例如
~/.bin/alsa-fix
, - 授予文件运行权限:
chmod +x ~/.bin/alsa-fix
,以及 - 将该行添加
~/.bin/alsa-fix &
到~/.profile
。
该脚本几乎不使用任何 CPU 或 RAM,但如果您想使其更加高效,您可以dash
通过将该行添加#!/bin/dash
到文件顶部来运行它。
答案2
GUI 界面中有一个用于控制声音的左右平衡控件。您的问题似乎表明您更喜欢终端命令,如果是这样的话,我无法帮助您。但是,如果您只是想让其中一个扬声器静音,您应该能够在声音设置中进行配置。只需单击屏幕顶部的扬声器图标一次,然后单击声音设置即可。
答案3
amixer 设置级别的常用命令有一个用于所有通道的值,但可以使用两个不同的值
例如:我在硬件上为单声道麦克风设置了线路输入捕获
amixer set -c 0 Line 42,0
使用 amixer 命令或 alsamixer 查找 -c 选项的设备 ID 号
和 ALSA 混音器元素的名称来替换“Line”
也可以使用百分比或 dB 值,
在这种情况下,使用“46%”或“0dB”而不是“42”可获得相同的结果
如果 Pulseaudio 仍然导致 ALSA 级别发生变化,
请使用 Pulseaudio 音量控制,pavucontrol
转到“输出设备”选项卡,
单击挂锁以解锁频道,设置频道级别