C++ Qt:在linux上没有播放
我尝试过(我认为)在Qt项目中播放音频的所有可能方法,但没有一种有效:C++ Qt:在linux上没有播放,c++,linux,qt,audio,C++,Linux,Qt,Audio,我尝试过(我认为)在Qt项目中播放音频的所有可能方法,但没有一种有效: QSound::play(…) QMediaPlayer QAudioOutput,来自 这些解决方案都不播放WAV或MP3,我尝试过从资源(qrc:media/file.WAV)或仅从磁盘(/full/path/to/file.WAV)加载文件 我认为问题在于编解码器QAudioDevice::supportedCodecs()返回空列表。我使用的linux系统播放音频/视频没有问题(Ubuntu 14.04,通常用V
QSound::play(…)
- QMediaPlayer
- QAudioOutput,来自
qrc:media/file.WAV
)或仅从磁盘(/full/path/to/file.WAV
)加载文件
我认为问题在于编解码器QAudioDevice::supportedCodecs()
返回空列表。我使用的linux系统播放音频/视频没有问题(Ubuntu 14.04,通常用VLC播放…使用自己的编解码器?)
播放QSound(WAV和MP3):
QMediaplayer(WAV):什么都不会发生
QMediaplayer(MP3):
Qt用于每个平台(链接是qt5,但在Qt4中是相同的)。从错误中可以看出,您的版本正在使用GStreamer
检查发行版上的gstreamer dev包是否安装良好,因为QAudioDevice::supportedCodecs
。继续安装软件包,直到测试程序显示pcm。看
在使用phonon播放wav或mp3之前,您可能还需要安装插件(以及开发包)。QAudioDevice::supportedCodecs甚至不返回
音频/pcm
?@UmNyobe nope。。。QStringList的size()返回0感谢您的响应。我现在得到支持的编解码器
返回的音频/pcm
。我注意到QMediaPlayer::play
在作为插槽调用时(通过发出信号)确实可以工作。显然,它必须异步调用才能正常工作,即使对象是在堆上分配的,并且超出了调用者的范围。但是我仍然不能使用QSound::play
。。。那一个应该挡住,对吗?
QSoundEffect(pulseaudio): Error decoding source
GStreamer; Unable to play - "qrc:media/lowtone.mp3"