【问题标题】:QMediaPlayer resource errorQMediaPlayer 资源错误
【发布时间】:2013-08-08 19:43:05
【问题描述】:

我在 Windows 8 Pro x64 上使用 Qt Creator 2.7.2 (Qt 5.1)。我在使用 QMediaPlayer 时遇到问题。我的电脑上有一些 MP3 文件在 Windows Media Player 上运行良好,但 QMediaPlayer 无法播放它们。以下声明:

void MainWindow::onPlayerStateChanged(QMediaPlayer::State state)
{
    qDebug() << "onPlayerStateChanged" << state
             << media_player.error() << media_player.errorString();
    // ....
}

是连接到媒体播放器的插槽stateChanged 信号抛出以下输出:

onPlayerStateChanged QMediaPlayer::PlayingState QMediaPlayer::NoError "" 
DirectShowPlayerService::doRender: Unresolved error code 80040266
onPlayerStateChanged QMediaPlayer::StoppedState QMediaPlayer::ResourceError "" 
DirectShowPlayerService::doRender: Unresolved error code 80040266

知道有什么问题吗?

【问题讨论】:

  • 你是说mp3吗?和音频一样?
  • @Bart:是的,MP3 作为音频文件。 Windows Media Player 播放良好。
  • 好的,因为 doRender 让我觉得我们在这里处理的是视频,我可以想象授权在其中发挥作用。但那不是它。
  • 这听起来像这里的问题:bugreports.qt-project.org/browse/QTMOBILITY-1461
  • Donotalo,你的问题解决了吗?我还收到带有 mp3 文件的 ResourceError。但是他们在出现错误后开始播放。完全混乱

标签: c++ qt


【解决方案1】:

这可能与文件的 ID3 标签有关。

我遇到了类似的问题:我试图用 QMediaPlayer 播放一些 MP3 文件。其中一个文件产生了该错误,而其他文件运行良好(在 Windows 7 上)。但在 Linux 上,它们都运行良好。

所以我对我的 MP3 文件运行了“文件”命令,发现有问题的 MP3 文件的 ID3 版本为 2.4.0,而所有其他文件的 ID3 版本为 2.3.0。我使用 ID3 标签编辑器完全删除了该文件的 ID3 标签,然后文件成功播放。

这里有一个疯狂的猜测:DirectShow,被 QMediaPlayer 用作 Windows 上的后端,在 ID3 版本 2.4 上阻塞并且只识别旧版本。而 Linux 上的 QMediaPlayer 使用 GStreamer 作为后端,没有这个问题。

【讨论】:

  • 有没有办法在 Qt 中更详细地检索实际信息源?我试过打电话给errorString(),但它是空的。
猜你喜欢
  • 2023-03-06
  • 2015-07-17
  • 2014-08-14
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 2014-04-06
  • 2011-10-31
相关资源
最近更新 更多