如何在 Ubuntu 中交换立体声声道?

Aur*_*ron 33 audio stereo ubuntu

我目前正在运行 Ubuntu 9.04。我想交换立体声通道,但在音量控制首选项中找不到该选项。

有没有办法在不触及任何配置文件的情况下做到这一点?(我不允许在这台机器上以 root 身份登录)

Bri*_*ber 35

PulseAudio 方式(在 Ubuntu 10.04 上测试,应该适用于 9.04):

复制/etc/pulse/default.pa~/.pulse/default.pa,并在末尾添加以下两行:

load-module module-remap-sink sink_name=reverse-stereo master=0 channels=2 master_channel_map=front-right,front-left channel_map=front-left,front-right
set-default-sink reverse-stereo
Run Code Online (Sandbox Code Playgroud)

通过pactl exit在命令行运行来重新启动 PulseAudio 。

如果您不想默认使用反向立体声,请省略第二行。您可以在声音首选项的“输出”选项卡中在反向和正常立体声输出之间切换。如果您确实有 root 用户并希望在整个系统范围内使用,则只需添加这些行即可,/etc/pulse/default.pa而无需进行特定于用户的配置。

此配置做出了一些基本假设:您要反转通道的卡是卡 0;你只需要处理 2 个通道;并且这些通道被称为front-leftfront-right

如果您的显卡带有 HDMI 输出,则主板的模拟输出很可能是卡 1,而不是 0;所以大师=1。(此模拟通道上可能有前面板耳机)

有关更多信息,请参阅module-remap-sink 的 PulseAudio 文档

  • 如果您有更多接收器,则可以使用 pacmd list-sinks 来显示现有接收器及其索引的列表。比用 `master=IndexOfTheSinkToSwap` 替换 `master=0` (2认同)
  • 这在 Ubuntu 16.04 下也能完美运行。按预期重新启动。 (2认同)
  • 很好的答案!我遇到的唯一问题是重新映射的水槽的体积是基于基础水槽的。这意味着如果我切换到基础水槽并将音量调至 50%,则重新映射的水槽现在只能达到 50% 的音量(100% 将是“真实”的 50%)。有什么办法吗? (2认同)

uli*_*tko 15

基本上与 Brian 上面的方法相同,但不涉及任何配置文件:

pactl load-module module-remap-sink \
    sink_name=reverse-stereo \
    master=0 \
    channels=2 \
    master_channel_map=front-right,front-left \
    channel_map=front-left,front-right
Run Code Online (Sandbox Code Playgroud)

这将即时创建一个带有反向通道的额外 PA 接收器。(pulseaudio 重启后会消失)。要切换到它:

pactl set-default-sink reverse-stereo
Run Code Online (Sandbox Code Playgroud)

— 或者,您也可以通过声音控制面板手动切换:

脉冲音频音量控制窗口

当然,也可以来回切换,例如在试验时。


如果您想快速尝试一些东西而不是永久保存设置,这种方式会更好。

  • 令人惊讶的是,这个解决方案从 Ubuntu 19.10 开始仍然有效。只是在 `pactl set-default-sink reverse-stereo` 之后,你必须重新启动声音播放应用程序(如 Firefox),以便它们在重新启动时选择新的默认值。 (2认同)

Sat*_*hat 7

如果您使用的是 ALSA,请将其添加到您的 ~/.asoundrc文件中:

pcm.swapped {
    type         route
    slave.pcm    "cards.pcm.default"
    ttable.0.1   1
    ttable.1.0   1
}

pcm.default      pcm.swapped
Run Code Online (Sandbox Code Playgroud)

通过ALSA 常见问题解答