在Qt中实现背景音乐的播放是常见的需求,使用QMediaPlayer即可实现
但是需要注意以下问题:
在使用QMediaPlayer需要在项目文件.pro加入QT += multimedia
在UI设计界面添加一个pushbutton按钮,编辑其响应槽函数如下:
void MainWindow::on_pushButton_clicked()
{
music();
}
void MainWindow::music()
{
//音乐播放
QMediaPlayer *myPlayer= new QMediaPlayer;
myPlayer->setMedia(QUrl::fromLocalFile("../music/背景音乐.mp3"));
myPlayer->setVolume(80);
myPlayer->play();
}
但是在编译运行时,出现了错误提示:
DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80070002 ()
经过搜索得知:Qt 中的多媒体播放,底层是使用DirectShowPlayerService,需要一个DirectShow解码器,例如LAV Filters
参考链接如下:https://blog.csdn.net/qqwangfan/article/details/52469859
LAV Filters的下载地址如下:http://files.1f0.de/lavf/LAVFilters-0.65.exe
将文件下载之后,安装到Qt的安装目录,即可实现MP3的播放,如果安装之后仍然无法播放,请尝试重启
虽然很轻易的就能查到需要安装LAV Filters,但是大多数教程都说的模糊不清,令人疑惑不解,因此将自己的解决方法记录下来供大家参考