将 HDMI 插入笔记本电脑时切换到 HDMI 音频 (14.04)

Kin*_*ick 12 sound pulseaudio hdmi 14.04

我试图让我的笔记本电脑在插入时将音频切换到 HDMI,当它被移除时切换回标准模拟。

我设置了一个 udev 规则来触发脚本来执行切换,但是我在让它工作时遇到了问题:

  • 似乎直到我在声音设置中选择 HDMI 音频输出,它才会被识别为可用的接收器,而且一旦选择了 HDMI 音频输出,模拟输出就不再列出。

请参阅以下内容:

# 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.
$ 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 之前触发它时,脚本给出了一个关于没有这样的接收器的错误。

小智 10

基于此链接和此链接...我测试过并且可以正常工作 ubuntu 14.04

你应该在 /etc/udev/rules.d/100-hdmi_sound.rules

这个内容

SUBSYSTEM=="drm", ACTION=="change", RUN+="/lib/udev/hdmi_sound_toggle.sh"
Run Code Online (Sandbox Code Playgroud)

然后创建

sudo -H gedit /lib/udev/hdmi_sound_toggle.sh
Run Code Online (Sandbox Code Playgroud)

你的内容

sudo -H gedit /lib/udev/hdmi_sound_toggle.sh
Run Code Online (Sandbox Code Playgroud)

我希望可以帮助..对不起我的英语我说西班牙语


use*_*.dz 9

  1. 检查可用的卡片和个人资料

    pactl list cards
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在设置默认接收器和移动流之前,将以下命令添加到脚本中以更改配置文件

    pactl [options] set-card-profile  CARD PROFILE
    
    Run Code Online (Sandbox Code Playgroud)

(因此无需从声音设置手动切换)

参考:

pactl -h & man pactl