Ubuntu拒绝通过HDMI输出音频。

我将我的个人电脑连接到扬声器和显示器上。此外,它还连接到我的Vizio 37英寸液晶电视上。在Windows 7上,我可以选择通过HDMI输出声音。在Ubuntu上,我也有这个选项,但没有声音输出。有什么建议吗?我不知道如何在Ubuntu上获取系统规格,所以如果你需要的话,请告诉我如何获取它们。 aplay -l 的输出结果:
**** PLAYBACK硬件设备列表 **** 卡0:Intel [HDA Intel], 设备0:ALC887模拟 [ALC887模拟] 子设备:0/1 子设备#0: 子设备#0 卡0:Intel [HDA Intel],设备3:ALC887数字 [ALC887数字] 子设备:1/1 子设备#0:子设备#0 卡1:HDMI [HDA ATI HDMI],设备3:HDMI 0 [HDMI 0] 子设备:1/1 子设备#0:子设备#0

我不知道如何提供更多的数据。 - Michael
至少我们需要知道您使用的声卡类型:aplay -l - RobotHumans
有没有一些简单易用的程序可以提供这样的信息? - Michael
**** PLAYBACK 硬件设备列表 **** 卡 0:Intel [HDA Intel],设备 0:ALC887 模拟 [ALC887 模拟] 子设备:0/1 子设备 #0:子设备 #0 卡 0:Intel [HDA Intel],设备 3:ALC887 数字 [ALC887 数字] 子设备:1/1 子设备 #0:子设备 #0 卡 1:HDMI [HDA ATI HDMI],设备 3:HDMI 0 [HDMI 0] 子设备:1/1 子设备 #0:子设备 #0 - Michael
你有检查过在alsamixer中是否被静音了吗?Crunchbang是基于Ubuntu的,有报道说它可能会被意外地静音。 - RobotHumans
你是否在使用ATI显卡的二进制驱动程序?如果没有的话,你应该使用。 - RobotHumans
二进制驱动程序?嗯...那是什么东西? - Michael
"jockey-gtk"并选择fglrx建议的驱动程序 - RobotHumans
我只看到了图形驱动程序。我会激活它们,因为我确定我需要它们。 - Michael
是的,Linux ATI视频驱动程序中包含了与HDMI音频输出兼容的组件。 - RobotHumans
当我运行这个命令 sudo ubuntu-drivers autoinstall 来更新声卡驱动程序时,我才解决了我的Ubuntu声音问题。 - Tiago Oliveira de Freitas
6个回答

使用HDMI线连接后,运行以下实用程序:
speaker-test --channels 2 --rate 48000 --device hw:0,3

(对于其他人,hw:x,y是x = 卡,y = 设备)
这只是一个静态来回弹跳的声音测试。一旦每个扬声器都播放完毕,请按Ctrl+c停止,并在声音设置中检查HDMI输出是否现在列在内部设备下。
这就是我所做的一切来使其工作。如果对你不起作用,请查看此教程以升级alsa到ppa版本。

35这太荒谬了,但效果非常出色。谢谢。 - Pedro Werneck
3根据@gsdej的帖子建议,我升级了alsa并安装了pavucontrol,这对我起到了作用。 - nariknahom
这对我没有起作用。安装失败了。请参考http://askubuntu.com/questions/512482/hdmi-audio-not-working-on-tv - faizal
谢谢这个,我之前尝试过pavucontrol,但音频仍然无法通过电视播放。在运行了这个小测试之后,突然就开始播放了...真奇怪。 - smac89
1// 这个方法有效,但是火狐浏览器仍然没有使用 HDMI,而 Chromium 现在可以,在 Ubuntu 16.04 上。 - Nathan Basanese

你可以尝试安装程序 "PulseAudio Volume Control"(sudo apt-get install pavucontrol
在“配置”选项卡中选择提到 HDMI 的配置文件。
桌面音频输出应立即切换到 HDMI。

1谢谢,这对我来说在12.10版本的Intel HD 4000上有效。对我来说,在系统的声音设置中,HDMI并没有被列为输出设备。但是一旦我在“Pulse Audio Volume Control”的配置选项卡中选择了HDMI配置文件,通过HDMI播放声音就可以正常工作,并且HDMI甚至出现在标准声音设置中的输出设备列表中。Bryan的方法对我无效。 - Tobias
这对我也起作用 - ALSA可以看到它,但Ubuntu的桌面却看不到。 - Tom Dalton
114.04上没有pavucontrol - That Brazilian Guy
@ThatBrazilianGuy刚刚在14.04上下载了它。apt-cache policy pavucontrol的输出为:pavucontrol: 已安装:2.0-2 候选版本:2.0-2 版本表: *** 2.0-2 0 500 http://ca.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages 100 /var/lib/dpkg/status - blo0p3r
1在我的配置选项卡中没有HDMI配置文件。 - cboettig
15.04版的配置文件中也没有HDMI。 - tchakravarty
你能复制lspciaplay -l的输出吗?你是否碰巧有连接到HDMI的独立GPU(AMD/NVIDIA)?它可能被关闭了... - gsedej
声音设置允许你切换到“环绕音效”,但却不允许你切换回去,这很奇怪。pavucontrol可以解决这个问题(在Debian 8上)。 - marcelocra
1对我来说很有效!Ubuntu 16.04 - Ponsuyambu

安装GNOME alsa mixer,它位于宇宙软件源中(通过运行“软件和更新”并确保顶部的第二个框已选中来激活宇宙软件源),然后通过Ubuntu软件进行安装。

gnome-alsamixer

运行它,你会看到一个像这样的屏幕:

gam

取消静音复选框以解除所有静音,然后勾选“IEC958”复选框。

7虽然这个回答在理论上可能解决了问题,但它过于模糊而无法提供实用性。请扩展回答,包括完成你所建议的步骤。有经验的用户可能知道如何操作,但新用户很可能不知道;它需要对所有用户都有用。 - TrailRider
5有什么不清楚的呢?我从Ubuntu商店安装了GNOME alsa mixer,运行它后,发现有一个标有IEC958的复选框。 - AaronF
使用 m 键来静音/取消静音。音量条下的 MM 表示已静音,高亮的 OO 表示已启用。 - anps
3如果您有三个 IEC958 而没有 IEC958PCM,该怎么办? - Zelphir Kaltstahl

我曾经遇到类似的问题,所有我能找到的论坛都在讨论PulseAudio和AlsaMixer。那些解决方案对我都不起作用。

最后,我在更新与HDMI电缆连接的显卡驱动程序上找到了解决方案,具体步骤可以参考这里

你可能没有相同的显卡,但可以尝试更新你的驱动程序。


我有Debian和LXDE,但这可能适用于其他情况。
打开PulseAudio音量控制。

enter image description here

起初我以为我需要升级一些东西,因为我在这里看不到HDMI。

enter image description here

但是在进入配置并选择一个带有HDMI的配置文件后

enter image description here

你可以前往“输出”选项,查看你的HDMI端口。现在声音通过HDMI电缆传输。无需安装/更新/调整(在我的情况下)。

enter image description here


哇塞,这是怎么回事啊。当然需要更改HDMI设置,但为什么没有单独的HDMI输出音频设备呢,天哪。 - Tarick Welling

对我来说,有效的方法是通过以下命令终止 pulseaudio 守护进程。
pulseaudio -k

我从这个链接中获得了灵感。