背景:项目中使用到了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就可以用起来了。