Qt:在Linux上没有播放
Qt: no playback on linux
我已经尝试了(我认为)在Qt项目中播放音频的所有可能方式,但没有一种奏效:
-
QSound::play(...)
- QMediaPlayer
- QAudioOutput, from http://doc.qt.io/qt-4.8/qaudiooutput.html
这些解决方案都不播放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"
Qt为每个平台使用特定的媒体后端(链接是qt5,但在Qt4中是相同的)。从错误来看,您的版本似乎正在使用GStreamer
。
检查发行版上的 gstreamer 开发包是否安装良好,因为QAudioDevice::supportedCodecs
必须至少返回音频/pcm。进行包设置,直到测试程序显示pcm
。请参阅 https://wiki.qt.io/Building_Qt_for_Linux
您可能还需要安装插件(也是开发包),然后才能使用语音子播放 wav 或 mp3。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 在C++/Linux中设置单调时钟的一些技巧
- Linux的Cpp上的计时器
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 在Linux中哪里可以找到互斥、未来等的源代码
- 如何在linux终端中同时编译和运行c++代码
- 在Linux for Windows上编译C++代码时出错
- 如何找到锁定Linux futex的C++行
- 在linux上调试巨大的C++项目
- SFML纹理像播放器
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- c++方法参数只能在linux的发布模式下自行更改
- 在Linux和C++中的Windows上,散列字符串值会产生不同的输出
- GSTREAMER管道播放,但没有填充的回调(仅在Android上发生,在Windows和Linux上可行)
- 如何使用QT或Linux上的任何其他CPP框架播放WMA音频文件
- 当磁盘几乎完整时,使用C 流式播放器复制Linux中的文件也不例外
- 我如何在Linux上的C 中播放.wav文件
- Qt:在Linux上没有播放
- 使用 C++ 在 Linux 中播放.mp3或其他音频文件
- 在 Linux 中播放 wav 文件