使用Qt版本5.4.2
返回错误代码:DirectShowPlayerService :: doSetUrlSource:未解决的错误代码800c000d
QML文件已使用Video QML类型编写,如下所示。我在项目文件(.pro)中添加了以下内容
Qt + =多媒体
QML文件中的代码片段。
Video {
id: video
width : 800
height : 600
source : "Video.mp4"
MouseArea {
anchors.fill: parent
onClicked: {
video.play();
}
}
focus: true
Keys.onSpacePressed: video.playbackState == MediaPlayer.PlayingState ? video.pause() : video.play()
Keys.onLeftPressed: video.seek(video.position - 5000)
Keys.onRightPressed: video.seek(video.position + 5000)
}
有关此错误的任何指示都会有所帮助。
答案 0 :(得分:3)
我遇到了同样的问题,修正了:
改变
source: "file://D:/Temp/video/ccc.wmv"
到
source: "file:///D:/Temp/video/ccc.wmv"
因为提到的消息doSetUrlSource
表示可能使用了错误的网址。
答案 1 :(得分:2)
您是否通过错误跟踪器进行了搜索?我找到了QTMOBILITY-1461,例如:
Windows7上的默认directshow过滤器不足以播放m4a文件。它不是AAC编解码器问题,但没有用于识别m4a容器的过滤器。
" K-Lite Codec Pack"提供" MPC - MP4 Splitter"滤波器可用于将m4a源连接到Microsfot编解码器滤波器" Microsoft DTV-DVD音频解码器"能够播放文件。
Windows7上的Windows Media Player 12使用Media Foundation而不是DirectShow播放.m4a .m2ts,.mp4和.mov格式(对于其使用DirectShow过滤器的其他格式)。这就解释了为什么我们不能在没有第三方过滤器的情况下使用QMediaPlayer的当前directshow后端实现。
我们可能会考虑在futrure中添加Media Foundation支持,但是现在您必须安装第三方过滤器才能在Windows7上运行。
因此,安装K-Lite Codec Pack可能有所帮助。
您还可以尝试this mailing list thread中的建议。