当前位置: 代码迷 >> 综合 >> Qt播放音乐报错DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80070002 ()
  详细解决方案

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

热度:82   发布时间:2023-12-02 03:56:07.0

需求:在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版本相关,同样的代码有时候"\"也可以通过,不过最好"\\",加上转译保险一点

 

  相关解决方案