代碼很簡單,直接複製幫助裏的代碼:
#include <QtCore/QCoreApplication>
#include <QtMultimedia/QMediaPlayer>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QMediaPlayer * player = new QMediaPlayer;
player->setMedia(QUrl::fromLocalFile("D:/test.mp3"));
player->setVolume(50);
player->play();
return a.exec();
}
在VS裏運行也沒問題,但是直接點擊exe運行就開始報錯
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
很簡單的覺得應該是缺少插件,那麼去QT目錄複製mediaservice到exe目錄,再次運行還是報錯,就開始無語了
經過多次嘗試,終於知道少了什麼
使用QMediaPlayer需要如下組件:
插件:mediaservice 在QT安裝目錄的plugins文件夾下
Qt5Core.dll
Qt5Gui.dll
Qt5Multimedia.dll
Qt5Network.dll 雙擊運行時提示缺少
Qt5Widgets.dll 需要這個dll覺得很奇怪,但是缺少就會上面的錯誤,爲什麼雙擊運行時不提示!!!
本來只是想在windows下測試一下,然後在arm板上用的,相同的代碼,也按windows的加了相應的庫,但是還是一樣的報錯
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
沒辦法,最後只能用QSound類代替,但是QSound只能播放wav文件