我的笔记本电脑(使用 12.04 LTS)使用 HDMI 连接显示器进行双屏设置。一切正常,但每次连接/断开电缆时,我都必须转到“声音”首选项并手动更改声音输出设备。
有什么方法可以在连接/断开电缆时更改声音输出设备,所以当我连接显示器时,声音输出设置为 HDMI,当我断开连接时,声音又回到笔记本电脑扬声器?
要切换到 HDMI 音频输出(显示器)并从系统音频插孔恢复正常音频输出(对于耳机,因为我的显示器没有音频输出),我发现自己每次都打开声音首选项并选择正确的频道。有什么办法可以在面板中创建一个切换按钮或分配一些快捷键来切换,因为我经常进行切换。
:aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 7: STAC92xx Digital [STAC92xx Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
Run Code Online (Sandbox Code Playgroud)

我有一台带 HDMI 端口的笔记本电脑。当我们无家可归并与朋友住在一起时,我一直在用 HDMI 电缆将其插入他们的环绕声接收器。为了让声音正常工作,我必须打开声音设置作业并将硬件配置文件从“模拟立体声输出”切换到“数字立体声(HDMI)输出”,以使声音来自环绕声而不是笔记本电脑的扬声器。
当我拔下插头时,我必须反过来做才能让声音从扬声器中传出。
我对这样做有点厌烦了。我想编写这个脚本。我已经看过这个问题及其答案,但是pacmd list-sinks当声音配置文件下拉列表显示多个选项时,只显示一个接收器。
是否有一个 udev 事件我可以将其挂钩,以便它可以在 HDMI 状态发生变化时运行脚本?
我试图让我的笔记本电脑在插入时将音频切换到 HDMI,当它被移除时切换回标准模拟。
我设置了一个 udev 规则来触发脚本来执行切换,但是我在让它工作时遇到了问题:
请参阅以下内容:
# HDMI plugged in, not selected in Sound settings.
$ pactl list short sinks
5 alsa_output.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
kingamajick@kingamajick-laptop: ~
# HDMI selected in sound settings
$ pactl list short sinks
7 alsa_output.pci-0000_00_1b.0.hdmi-stereo module-alsa-card.c s16le 2ch 48000Hz SUSPENDED
kingamajick@kingamajick-laptop: ~
# HDMI removed
$ pactl list short sinks
9 alsa_output.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 48000Hz SUSPENDED
Run Code Online (Sandbox Code Playgroud)
我使用切换输出的脚本如下:
# HDMI plugged in, not selected in Sound settings.
$ …Run Code Online (Sandbox Code Playgroud) 自从安装 Ubuntu 以来,我一直遇到声音问题。在启动时,我可以选择 HDMI 声音并且它可以工作,当显示器休眠时会发生两种情况之一。
要么声音恢复到另一个来源,我必须在设置中切换回它,这很烦人但不是不可恢复的,或者声音停留在 HDMI 源上,但我没有声音,必须重新启动才能恢复。
在整个过程中,HDMI 源始终可用,我可以选择它。但我总是有两个问题之一。
我现在很喜欢 Linux 的体验,但这开始成为一个交易破坏者,有人可以帮忙吗?
谢谢