Qt播放音乐DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80070002 ()

在Qt中实现背景音乐的播放是常见的需求,使用QMediaPlayer即可实现

但是需要注意以下问题:

在使用QMediaPlayer需要在项目文件.pro加入QT += multimedia

Qt播放音乐DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80070002 ()_第1张图片

在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的播放,如果安装之后仍然无法播放,请尝试重启

Qt播放音乐DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80070002 ()_第2张图片

虽然很轻易的就能查到需要安装LAV Filters,但是大多数教程都说的模糊不清,令人疑惑不解,因此将自己的解决方法记录下来供大家参考

你可能感兴趣的:(Qt,Qt,播放音乐,LAV,Filters)