需求:在Qt中播放背景音乐,代码片段如下:
1、.pro添加组件 : QT += multimedia
2、使用 QMediaPlayer 对象实现播放音乐:
//循环播放背景音乐
void ClearApp::playBG()
{QMediaPlayer* player = new QMediaPlayer();player->setMedia(QUrl::fromLocalFile("D:\mySoftWare\Qt\Qt5.2.1\Tools\QtCreator\bin\clear\imgs\music\bgm.mp3"));player->setVolume(50);player->play();
}
报错: DirectShowPlayerService::doSetUrlSource: Unresolved error code 80070002
解决办法:
试过网上说的添加LAV Filters插件,还是报错,后来看错误提示,怀疑是否路径格式写错了,于是将"\"改为"\\",音乐播放成功,更改代码如下:
//循环播放背景音乐
void ClearApp::playBG()
{QMediaPlayer* player = new QMediaPlayer();player->setMedia(QUrl::fromLocalFile("D:\\mySoftWare\\Qt\\Qt5.2.1\\Tools\\QtCreator\\bin\\clear\\imgs\\music\\bgm.mp3"));player->setVolume(50);player->play();
}
总结:
在qt中文件路径有时候识别的是"\\",写"\"可能报url类错误,这个具体的与QT版本和win版本相关,同样的代码有时候"\"也可以通过,不过最好"\\",加上转译保险一点