代码很简单,直接复制帮助里的代码:
#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文件
网友评论