Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt:在linux上没有播放_C++_Linux_Qt_Audio - Fatal编程技术网

C++ Qt:在linux上没有播放

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

我尝试过(我认为)在Qt项目中播放音频的所有可能方法,但没有一种有效:

  • QSound::play(…)
  • QMediaPlayer
  • QAudioOutput,来自
这些解决方案都不播放WAV或MP3,我尝试过从资源(
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"