如何控制扬声器平衡或禁用一个扬声器?

如何控制扬声器平衡或禁用一个扬声器?

我有一台带有两个扬声器的笔记本电脑:一个扬声器坏了,发出令人不快的失真声音。

我如何永久停用它或使用余额来控制它?

我认为,最好使用终端命令。

另外,我使用 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如果你想让辅助控制(例如耳机)正常工作。

您可以通过以下方式使脚本在启动时运行:

  1. 将其放入文件中,例如~/.bin/alsa-fix
  2. 授予文件运行权限:chmod +x ~/.bin/alsa-fix,以及
  3. 将该行添加~/.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
转到“输出设备”选项卡,
单击挂锁以解锁频道,设置频道级别

相关内容