首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QT: DirectShowPlayerService::doSetUrlSource:未决错误代码0x8007007b ()

QT: DirectShowPlayerService::doSetUrlSource:未决错误代码0x8007007b ()
EN

Stack Overflow用户
提问于 2020-05-25 03:13:27
回答 2查看 1.5K关注 0票数 2

我使用的是Qt版本5.14.1。

当我试图播放一个视频(.mp3)时,程序停止工作了。

给定的错误是DirectShowPlayerService::doSetUrlSource:未决错误代码0x8007007b ()

代码语言:javascript
运行
复制
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();
    }
}

输出如下

代码语言:javascript
运行
复制
QMediaPlayer(0x3987eb0)
DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x8007007b ()

我搜索互联网和添加LAV过滤器到QT安装目录,我也重新启动了计算机,但是没有changes.So怎么办?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-25 17:08:20

您在QUrl::fromLocalFile(":/music/8bitDungeonLevel.mp3")中的路径似乎已关闭,AFIK没有使用:开始路径的路径命名方案(至少不常见)。

更新:

我被告知:/指的是已编译成Qt应用程序的资源,我认为使用Qt资源编译器(rcc)

票数 0
EN

Stack Overflow用户

发布于 2021-01-07 17:15:38

使用此代码从资源加载mp3:

代码语言:javascript
运行
复制
m_mediaPlayer.setMedia(QUrl("qrc:/Audio/MouseOver.mp3"));

(不要忘记删除fromLocalFile)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61995191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档