1、前言
? ? ? ? 在一次項目過程中,因項目需求,需要將windows開發的Qt項目遷移到ubuntu系統中,且在某個功能項中需要播放音頻,在windows系統中能夠正常運行,但在ubuntu系統中卻顯示defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"錯誤,在網上查找資料后解決問題,在此進行記錄。
2、問題原因
? ? ? ? 根據查找的多篇參考文章,考慮可能為QT的MultiMedia依賴于Gstreamer的,因此需要裝好gstreamer的幾個庫,但是經過查找發現已經存在gstreamer相關庫,之后打開調試開關:在~/.bashrc文件的最后添加export?QT_DEBUG_PLUGINS=1,通過source ~/.bashrc命令生效后,在命令行運行Qt生成的可執行程序,發現在查找/usr/lib/aarch64-linux-gnu/qt5/plugins/mediaservice的庫出錯,經過排查,發現不存在該目錄,最終確定問題原因為ubuntu系統中Qt安裝時默認沒有安裝MultiMedia模塊導致。
3、解決方法
通過命令行
sudo apt-get install libqt5multimedia5-plugins
安裝MultiMedia模塊后,重新打開Qt,成功解決問題
4、參考文章
解決QT no service found for – org.qt-project.qt.mediaplayer問題
Qt: defaultServiceProvider::requestService(): no service found for - “org.qt-project.qt.mediaplayer“
qt-no-service-found-for-org-qt-project-qt-mediaplayer