解决QT no service found for – org.qt-project.qt.mediaplayer问题

 

背景:项目中使用到了QMediaPlayer类播放音频文件,编译好后发现在X86-Linux上运行正常,但是到嵌入式系统运行时会报no service found for – org.qt-project.qt.mediaplayer,在网上找了一圈发现都没能解决我的问题,最后找到了以下的解决方法,希望对被同样问题困扰过的同学们有帮助。

参考:
https://nachega.com/2018/12/19/how-to-solve-defaultserviceproviderrequestservice-no-service-found-for-org-qt-project-qt-mediaplayer/

https://stackoverflow.com/questions/47524552/qt-no-service-found-for-org-qt-project-qt-mediaplayer

由于QT的MultiMedia依赖于Gstreamer的,因此需要装好gstreamer的几个库:
![d429468da865f33fae06098a772b6967.png](en-resource://database/1643:1)

https://samwhelp.github.io/note-ubuntu-18.04/read/howto/install-tool/gstreamer/
安装好ffmpeg

安装好后,如果还是找不到服务,打开调试开关:

export QT_DEBUG_PLUGINS=1

运行程序,看报什么错误

如果还是找不到,还要确保QT的plugins目录下,如下有几个目录有需要的库文件:
plugins/audio/
libqtaudio_alsa.so  libqtmedia_pulse.so
plugins/mediaservice/
libgstaudiodecoder.so  libgstcamerabin.so  libgstmediacapture.so  libgstmediaplayer.so
plugins/playlistformats/
libqtmultimedia_m3u.so

这些安装好后,Qt mediaplayer就可以用起来了。

你可能感兴趣的:(嵌入式环境搭建,嵌入式,qt5)