问题描述
我的电脑旁边有一个扬声器,主要用作耳机放大器。有时我需要将它用作扬声器。是否可以快速将音频输出从立体声更改为单声道,system-wide或作为媒体播放器的插件?
最佳解决方案
-
通过运行查找音频接收器的名称
pacmd list-sinks | grep name:
-
然后运行此命令(注意删除有角度的括号):
pacmd load-module module-remap-sink sink_name=mono master=<name_of_audio sink_given_by_previous_command> channels=2 channel_map=mono,mono
或者将参数添加到
pacmd
到/etc/pulse/default.pa
以使其在启动时运行。 -
然后在声音首选项中选择”Mono”作为输出,但记得将音量减少一半,因为两个声道混合成一个,否则你会失真。要测试,请运行:
speaker-test -c 2 -t sine
单个命令中的相同内容:
pacmd load-module module-remap-sink sink_name=mono master=$(pacmd list-sinks | grep -m 1 -oP 'name:\s<\K.*(?=>)') channels=2 channel_map=mono,mono
-
要删除单声道,只需使用:
pacmd unload-module module-remap-sink
次佳解决方案
我已将答案1转换为perl-script,因此我不需要记住这两个命令:
#!/usr/bin/perl
use strict;
my @choices = ();
my $i = 0;
for (`pacmd list-sinks`) {
if( /name:.*<(.+)>/) {
$choices[$i++] = $1;
print "$i:\t$1\n";
}
}
my $choice = $choices[<>-1] or die "invalid choice";
exec (qw(pacmd load-module module-remap-sink sink_name=mono),
"master=$choice",
qw(channels=2 channel_map=mono,mono));
(我会注释那个答案,但我的业力是低的;-))
第三种解决方案
如果您使用的是jack,则可以使用patchage(可以使用apt-get install patchage
安装)来执行此操作。它有一个非常直观的界面。