我使用的是Qt版本5.14.1。
当我试图播放一个视频(.mp3)时,程序停止工作了。
给定的错误是DirectShowPlayerService::doSetUrlSource:未决错误代码0x8007007b ()
AudioPlayer::AudioPlayer(QObject *parent)
: QObject(parent)
, m_backgroundMusic(NULL) //QMediaPlayer * m_backgroundMusic
{
QUrl backgroundMusicUrl = QUrl::fromLocalFile(":/music/8bitDungeonLevel.mp3");
if (QFile::exists(backgroundMusicUrl.toLocalFile()))
{
m_backgroundMusic = new QMediaPlayer(this);
QMediaPlaylist * backgroundMusicList = new QMediaPlaylist();
QMediaContent media(backgroundMusicUrl);
backgroundMusicList->addMedia(media);
backgroundMusicList->setCurrentIndex(0);
backgroundMusicList->setPlaybackMode(QMediaPlaylist::CurrentItemInLoop);
m_backgroundMusic->setPlaylist(backgroundMusicList);
}
}
void AudioPlayer::startBGM()
{
if (m_backgroundMusic)
{
qDebug() << m_backgroundMusic;
m_backgroundMusic->play();
}
}输出如下
QMediaPlayer(0x3987eb0)
DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x8007007b ()我搜索互联网和添加LAV过滤器到QT安装目录,我也重新启动了计算机,但是没有changes.So怎么办?
发布于 2020-05-25 17:08:20
您在QUrl::fromLocalFile(":/music/8bitDungeonLevel.mp3")中的路径似乎已关闭,AFIK没有使用:开始路径的路径命名方案(至少不常见)。
更新:
我被告知:/指的是已编译成Qt应用程序的资源,我认为使用Qt资源编译器(rcc)
发布于 2021-01-07 17:15:38
使用此代码从资源加载mp3:
m_mediaPlayer.setMedia(QUrl("qrc:/Audio/MouseOver.mp3"));(不要忘记删除fromLocalFile)
https://stackoverflow.com/questions/61995191
复制相似问题