我正在编写一个脚本,该脚本将禁用我的两个显示器并在打开投影仪时切换到投影仪屏幕。到目前为止,它运行完美,只是我必须将音频输出更改为投影仪的音频输出。在脉冲音频音量实用程序中,我可以通过在我的 GPU(Ellsmere Radeon RX 580)的配置下选择“数字立体声(HDMI 6)输出(未插电)”,然后在播放选项卡中选择我的 GPU 来执行此操作。有没有办法可以自动执行此操作,以便所有操作都在后台自动处理?
答案1
基本上,您必须将音频流从一个输出移动到另一个输出。
列出可用的输出
$ pactl list short sinks
0 alsa_output.pci-0000_00_1f.3.analog-stereo module-alsa-card.c s16le 2ch 44100Hz RUNNING
1 alsa_output.pci-0000_67_00.1.hdmi-stereo-extra1 module-alsa-card.c s16le 2ch 48000Hz SUSPENDED
列出所有正在运行的音频流
$ pactl list short sink-inputs
1716 0 915 protocol-native.c s16le 1ch 44100Hz
1717 0 916 protocol-native.c s16le 1ch 44100Hz
1719 0 918 protocol-native.c s16le 1ch 44100Hz
2059 0 14 protocol-native.c float32le 2ch 48000Hz
2067 0 1152 protocol-native.c s16le 2ch 44100Hz
2078 0 14 protocol-native.c float32le 2ch 48000Hz
使用以下方法将每个流移动到新输出:
$ pactl move-sink-input <stream_id> <output_id>
享受 :)