我在Windows8专业版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知道出什么问题了吗?
发布于 2014-03-25 05:36:44
它可能与文件的ID3标记有关。
我遇到了一个类似的问题:我试图用QMediaPlayer播放一些MP3文件。其中一个文件产生了这个错误,而其他文件运行正常(在Windows 7上)。不过,在Linux上,它们都运行得很好。
所以我在我的MP3文件上运行了' file‘命令,注意到有问题的MP3文件有一个ID3版本2.4.0标签,而所有其他的文件都有ID3版本2.3.0。我使用ID3标签编辑器完全删除了该文件的ID3标签,然后文件成功播放。
这里有一个大胆的猜测: QMediaPlayer在Windows上使用DirectShow作为后端,它在ID3 2.4版本上卡住了,并且只能识别旧版本。而Linux上的QMediaPlayer使用GStreamer作为后端,这就没有这个问题了。
https://stackoverflow.com/questions/18134724
复制相似问题