ALSA 无法在 HDMI 上播放

ALSA 无法在 HDMI 上播放

我在迷你 PC Gigabyte GB-BXBT-2807 上安装了 Ubuntu 14.04.3,内核为 3.16.0-48。该芯片组还集成了Realtek ALC283音频控制器。我一直在努力通过 HDMI 播放音频,但没有成功。

首先,我按照网上多篇文章的建议删除了 PulseAudio 并重新安装了 ALSA:

% dpkg -l | grep alsa
ii  alsa-base  1.0.25+dfsg-0ubuntu4 ...
ii  alsa-utils 1.0.27.2-1ubuntu2 ...

重新启动后,所有模块似乎都存在:

% lsmod | grep snd
snd_hda_codec_hdmi     47548  1
snd_hda_codec_realtek    77561  1
snd_hda_codec_generic    69011  1 snd_hda_codec_realtek
snd_hda_intel          30469  0
snd_soc_rt5640         93042  0
snd_soc_rl6231         13037  1 snd_soc_rt5640
snd_hda_controller     30228  1 snd_hda_intel
snd_hda_codec         139719  5 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_intel,snd_hda_controller
snd_hwdep              17698  1 snd_hda_codec
snd_soc_core          200204  1 snd_soc_rt5640
snd_compress           19200  1 snd_soc_core
snd_pcm_dmaengine      15172  1 snd_soc_core
snd_pcm               104112  7 snd_soc_rt5640,snd_soc_core,snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_controller,snd_pcm_dmaengine
snd_seq_midi           13564  0
snd_seq_midi_event     14899  1 snd_seq_midi
snd_rawmidi            30876  1 snd_seq_midi
snd_seq                63074  2 snd_seq_midi_event,snd_seq_midi
snd_seq_device         14497  3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer              29562  2 snd_pcm,snd_seq
snd                    79468  13 snd_hda_codec_realtek,snd_soc_core,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_compress
soundcore              15047  2 snd,snd_hda_codec
snd_soc_sst_acpi       13007  0
%

% aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC283 Analog [ALC283 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
%

我也将我的帐户添加到audio群组中。以下是 PCM 列表:

% aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=PCH
    HDA Intel PCH, ALC283 Analog
    Default Audio Device
sysdefault:CARD=PCH
    HDA Intel PCH, ALC283 Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC283 Analog
    Front speakers
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, ALC283 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, ALC283 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, ALC283 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, ALC283 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, ALC283 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
hdmi:CARD=PCH,DEV=0
    HDA Intel PCH, HDMI 0
    HDMI Audio Output
dmix:CARD=PCH,DEV=0
    HDA Intel PCH, ALC283 Analog
    Direct sample mixing device
dmix:CARD=PCH,DEV=3
    HDA Intel PCH, HDMI 0
    Direct sample mixing device
dsnoop:CARD=PCH,DEV=0
    HDA Intel PCH, ALC283 Analog
    Direct sample snooping device
dsnoop:CARD=PCH,DEV=3
    HDA Intel PCH, HDMI 0
    Direct sample snooping device
hw:CARD=PCH,DEV=0
    HDA Intel PCH, ALC283 Analog
    Direct hardware device without any conversions
hw:CARD=PCH,DEV=3
    HDA Intel PCH, HDMI 0
    Direct hardware device without any conversions
plughw:CARD=PCH,DEV=0
    HDA Intel PCH, ALC283 Analog
    Hardware device with all software conversions
plughw:CARD=PCH,DEV=3
    HDA Intel PCH, HDMI 0
    Hardware device with all software conversions
%

发生的情况是,我可以通过连接到音频插孔的耳机播放声音,但无法通过连接到电视的 HDMI 链接来播放声音。我尝试aplay -D为上面列出的标记为 DEV=3 的不同设备运行,但它们都不起作用。另外,它在 FireFox 中不起作用。

是否有特殊配置可以设置 HDMI 上的音频播放?我还应该尝试什么?

答案1

老问题了。当我连接电脑-雅马哈接收器-电视时我看到了这个。之前用的是数字线(10米),后来换了新主板,我设法弄到了一条10米长的HDMI线(大约5英镑,也许大约10美元)。

最终我只是让 Pulse 保持原样 - 使用“export AE_ENGINE=SOFT”通过 ALSA 打开声音并阻止 Pulse 接管。我的音频现在显示 PLEX 中的实际电视型号以供选择...

我提出这个问题的原因是,一旦我弄清楚了 Audacious 直接播放 ALSA 的设置(这样我就可以直接播放 DTS、AC3、WAV 或其他多通道录音)并且让我的 PLEX 播放器正常工作,没有太多需要实际删除 Pulse。

很难说你还可以尝试什么 - Audacious 提供 PCM 设备:使用“HDMI 音频输出”,但后来的“hw:0,7 - HDMI 1”选项也有效。

为了将声音从电视切换到耳机(请记住,我首先通过 HDMI 连接到接收器,然后 HDMI 又为电视供电),我点击任务栏中的音量小程序(当 Pulse 未运行时不起作用)...然后我可以从“HDMI/DisplayPort2 内置”切换声音(如果您希望 DTS 不受干扰,必须将其设置为数字立体声 (HDMI) 输出),然后选择“耳机内置音频”。

它并不完美,我在尝试解决这个问题时感到头疼……但目前已经足够好了。

相关内容