为什么我的音频(声音)输出不起作用?


58

我无法运行音频。我什么也听不到,也听不到。

有启用音频的解决方案吗?


7
请添加更多信息,以使其在将来成为更有用的问题,即使已经回答了。
ramblinjan 2012年

需要发行代码。以及您要使用的音频输出。
Jivings 2012年

1
指南:stackoverflow.com/questions/how-to-ask 幸运的是,当前的最佳答案足够广泛,可以解决您的问题。但是,如果您提供特定的设置以允许特定的答案,则对站点的未来用户会更好。
ramblinjan 2012年

我的问题是主输出的音量低。

Answers:


66

声音不适用于HDMI监视器

这是由于某些计算机监视器即使连接了HDMI电缆也选择了DVI模式引起的。即使其他HDMI设备在同一台显示器(或电视)上正常工作,也可能需要此修复程序!编辑配置文件-请参阅Raspberry-Pi配置文件中的说明
将以下行添加到配置文件:

hdmi_drive=2

声音根本不起作用,或者在某些应用程序中不起作用

默认情况下,声音是禁用的,因为R-Pi上的ALSA声音驱动程序仍为“ alpha”(未经充分测试)。要尝试声音,请在“ startx”之前的命令提示符下键入

 sudo apt-get install alsa-utils
 sudo modprobe snd_bcm2835
 sudo aplay /usr/share/sounds/alsa/Front_Center.wav

默认情况下,输出将是自动的(如果hdmi支持音频,则为hdmi,否则为模拟)。您可以通过以下方式强制使用:

sudo amixer -c 0 cset numid=3 <n>

其中n是0 =自动,1 =耳机,2 = hdmi。(来源)如果您正在运行Debian,请尝试

cd /opt/vc/src/hello_pi
 make -C libs/ilclient
 make -C libs/vgfont
cd hello_audio
 make
 ./hello_audio.bin

测试模拟输出。并测试HDMI。

./hello_audio.bin 1

还要注意,您可能必须将用户添加到“音频”组才能获得访问声卡的权限。

使更改永久生效

sudo apt-get install alsa-utils是永久性的,但sudo modprobe snd_bcm2835仅初始化当前会话的驱动程序。为了确保模块在启动时被初始化,请添加snd_bcm2835/etc/modulessource)。


4
aplay -l也是一个有用的命令,用于枚举是否存在任何ALSA设备。
stsquad 2012年

2
截至2013年1月,此信息已过时。默认情况下已安装alsa-utils,lsmod显示snd_bcm2835在此处而无需执行任何操作。
CaptSaltyJack

也许是这样,但是问题可能仍然存在于旧设备和某些发行版上
Itay Grudev13 2013年

1
snd-bcm2835/etc/modules的时候它应该是snd_bcm2835。一旦我更改了它,它就会起作用。
daviewales 2013年

1
如果未在带有GUI控件的桌面环境中运行,则可能还需要更改混音器的音量。我不知道这是我的pi还是常见问题,但我的音量设置为-25dB,这几乎听不见。 amixer cset numid=1 0将其设置回合理的水平。
Jules

9

我想我有一种解决您的问题的方法,请尝试键入omxplayer -o local xxx.mp3(对于mp3文件)或omxplayer -o local xxx.mp4(对于mp4文件)以通过耳机从raspi听到声音。您也可以输入omxplayer --help有关omxplayer的更多用法。


9

我的Raspberry Pi 2也遇到了同样的问题。我通过HDMI电缆将Pi连接到高清电视。我的解决方案:

使用以下命令设置音频输出:

amixer cset numid=3 2

我使用以下命令测试了声音输出,但没有听到声音:

speaker-test -c2 -t wav

要启用HDMI声音,我按照此处的说明进行操作

sudo [your favourite editor] /boot/config.txt

取消注释行 #hdmi_drive=2

使用以下命令重新启动Pi:

sudo shutdown -r 0

我并不需要做前两个步骤,我不知道,他们甚至需要在答案,但其余的工作对我来说与树莓派2
詹姆斯Skemp

4

这是一个常见的错误。我认为突破ALSA的是PulseAudio。如果要使用ALSA(默认,由Tux推荐)使用sudo apt-get remove PulseAudio

有关其他修复,请尝试Wiki。一切取决于。首先尝试一下(因为这是最常见的)


您指的是什么错误?你有参考吗?
bzeaman

这为我解决了。我使用PuleAudio向蓝牙耳机播放声音。当我尝试使用模拟音频端口时,无法正常工作,并且配置中的所有内容均正确。我删除了PulseAudio,并且模拟音频端口正常工作。太糟糕了,我必须取消安装并重新安装软件包才能在蓝牙和3.5毫米插孔之间切换。
MidnightJava


2

我目前的工作假设是,至少对我而言,音频某种程度上取决于桌面环境。我从NOOBS安装了运行Raspbian的Raspberry Pi 2。我已经将它擦干净并重新安装了Raspbian数十次。第一次安装Raspbian时,声音有效。我惯常做的下一件事是删除LXDE桌面环境,并将其替换为XFCE桌面环境,之后的某个时候,我注意到声音已停止工作。切换桌面环境必须破坏我的音频。我不知道是要删除LXDE还是要安装破坏它的XFCE。

暗示罪魁祸首的人也许是正确的,而安装XFCE会安装PulseAudio。现在,已安装“ lxde”,未安装“ xfce4”,未安装“ pulseaudio”,并且声音正在工作。


1

我遇到了一个问题,声音不起作用或无法静态播放而不是录音。但这是我的方法的问题,而不是Pi本身。我正在使用Raspbian 3.6.11(2013-02-09-wheezy-raspbian)。

最初,我尝试使用播放MP3文件aplay,该文件似乎仅支持WAV。另外,我使用的某些MP3文件可能尚未使用兼容的编解码器创建。为了测试Pi上的声音输出,我发现最好是Raspbian OS随附的示例音频文件。另外,请确保使用适合音频格式的播放器。例如:

  • 使用aplay的.wav文件。例如:aplay /usr/share/scratch/Media/Sounds/Vocals/Singer2.wav(/ usr / share / scratch / Media / Sounds中有很多示例音频文件)。
  • 对.mp3文件使用omxplayermpg123。例如:使用omxplayer /usr/share/scratch/Media/Sounds/Effects/WaterDrop.mp3或替代mpg123 /usr/share/scratch/Media/Sounds/Effects/WaterDrop.mp3(如果尚未安装mpg123,则应该可以使用命令安装它sudo apt-get install mpg123)。
  • 使用amixer控制音量输出。例如:amixer cset numid=1 50%将耳机插孔的音量输出设置为百分之五十。

有关音频输出命令的更多信息,我发现以下网站很有用:http : //blog.scphillips.com/2013/01/sound-configuration-on-raspberry-pi-with-alsa

就其价值而言,当音频开始和停止时,我还遇到了由电压跳变引起爆裂声。该问题现已在Pi固件中修复。


AFAIK该错误应该已在音频驱动程序更新之一中得到修复...
Itay Grudev13年

1
你是对的。我可能做错了,但是其他人可能也遇到了同样的问题,所以我用自己的发现更新了我的帖子。谢谢Itehnologic!
史蒂夫HHH


1

我自己在模拟音频输出方面遇到问题。来到这个话题中尝试解决。最后,事实证明,我只需要右键单击工具栏中的音频图标,然后将选择从HDMI更改为Analog。这可能无法解决您的问题,但可能会帮助那些听不到声音并且错过了该简单解决方案的人。



0

我在尝试使Amazon Voice Services在Raspberry Pi 3/3 +上运行时遇到了此问题。我确保选择了模拟音频。还可以使用游戏。

事实证明,AVS使用了autoaudiosink元素,该元素依次选择了omxhdmiaudiosink元素,该元素的优先级高于alsasink元素。在文件/etc/xdg/gstomx-rpi.conf中,有一个omxhdmiaudiosink的部分,我只是将其注释掉了。这样做之后,AVS运行良好(在大多数情况下,响应被缩短了约0.25秒)。

我想我也可以更改优先级。


-1

如果您想要一个简单的答案,则有3种选择:

  1. HDMI: omxplayer -o hdmi filename.mp4
  2. 都: omxplayer -o both filename.mp4
  3. 本地: omxplayer -o local filename.mp4

如果您想通过显示器来播放

omxplayer -o hdmi

如果两者都想要

omxplayer -o both

如果您有耳机并且想将其插入Raspberry,

omxplayer -o local

然后添加您的文件名,然后就可以了;就这么简单


如果您阅读了可接受的答案,则问题在于未在板级启用声音,因此程序特定的设置将不起作用。其次,omxplayer与原始问题有什么关系?
史蒂夫·罗比拉德

这对我有用,我可以播放wav文件,但是mp3无法与omxplayer命令一起使用。我把-o本地标志放上了。仍在弄清楚为什么...因为我已经将输出设置为耳机并尝试了所有其他操作
Taran J
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.