我尝试播放资源中声明的 mp3 文件,但它显示:
Btn clicked
current media: "qrc://sound/sound/FarAway.mp3"
Error : QMediaPlayer::FormatError
Media state : QMediaPlayer::InvalidMedia
这是我设置媒体的方法:
player = new QMediaPlayer(this);
player->setMedia(QUrl(mediaFilePath));
qDebug() << "current media: " << player->currentMedia().canonicalUrl().toString();
connect(player, SIGNAL(stateChanged(QMediaPlayer::State)), SLOT(handleStateChanged(QMediaPlayer::State)));
connect(player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)), SLOT(handleMediaStateChanged(QMediaPlayer::MediaStatus)));
connect(player, SIGNAL(error(QMediaPlayer::Error)), SLOT(handleError(QMediaPlayer::Error)));
根据这个帖子 http://qt-project.org/forums/viewthread/26136它说QMediaPlayer
需要被调用play()
回调后mediaStatusChanged()
,这正是我所做的。所以有什么问题???
附:我可以播放 mp3 文件QMediaPlayer 示例 http://qt-project.org/doc/qt-5/qtmultimediawidgets-player-example.html作为本地文件。
更新 1:我可以将 mp3 文件作为本地文件播放...
你的问题现在不再是问题了,你可以在QMediaPlayer中播放Qt资源了。找到答案here https://stackoverflow.com/a/30085625/353094,我在这里确认一下,以防人们正在寻找。
在我的本地项目中进行测试时,此代码适用于我。
player->setMedia(QUrl("qrc:/audio/audio/Revival_Song01.mp3"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)