2016-06-10 153 views
0

没有播放我已经试过(我认为)在一个Qt项目播放音频无微不至,没有一个是有工作:Qt的:在Linux上

这些解决方案的播放WAV或MP3,我已经尝试从资源(qrc:media/file.wav)加载文件或简单地从盘(/full/path/to/file.wav)。

我认为问题是与编解码器。 QAudioDevice::supportedCodecs()返回一个空列表。我在一个没有问题的Linux系统上播放音频/视频(Ubuntu 14.04,通常使用VLC播放...使用自己的编解码器?)。

与QSound的(WAV & MP3)播放:

QSoundEffect(pulseaudio): Error decoding source 

QMediaplayer(WAV):什么也没发生

QMediaplayer(MP3):

GStreamer; Unable to play - "qrc:media/lowtone.mp3" 
+0

QAudioDevice :: supportedCodecs甚至不会返回'audio/pcm'? – UmNyobe

+0

@UmNyobe nope ... QStringList的size()返回0 – JorenHeit

回答

1

Qt使用specific media backends为每个平台(链接是qt5,但在Qt4中是一样的)。从错误它看起来像您的版本正在使用GStreamer

检查您的配置中的gstreamer dev软件包是否安装正确,因为QAudioDevice::supportedCodecsmust return at least audio/pcm。在包装设置上工作,直到您的测试程序显示pcm。请参阅https://wiki.qt.io/Building_Qt_for_Linux

在使用声子能够播放wav或mp3之前,您可能还需要安装插件(也称为开发包)。

+0

感谢您的回复。我得到'supported/codec'返回的'audio/pcm'。我注意到'QMediaPlayer :: play'在作为插槽调用时(通过发射信号)可以工作。显然它必须被异步调用才能正常工作,即使对象被分配到堆上并超出调用者的范围。我仍然不能使用'QSound :: play',尽管...应该阻止一个*,对吧? – JorenHeit

+0

不错。你正在取得进展。显示你的Qsound代码。 – UmNyobe