用QML的MediaPlayer控件配合VideoOutput对可以对音频文件和视频文件进行播放,代码如下:
VideoOutput {
id: video_out
anchors.fill: parent
source: mediaPlayer
}
MediaPlayer {
id: mediaPlayer
source: "file:///"+root.ctrl.srcPath
autoPlay: false
volume: voice_val.value/100
onPositionChanged: {
if ((mediaPlayer.position === mediaPlayer.duration) && (mediaPlayer.duration>0))
{
//stop
play_btn.cur_img = "./image/Chat/pause.png";
mediaPlayer.stop();
mediaPlayer.seek(0);
mediaPlayer.position = 0;
}
}
}
但是在Windows系列(Windows XP、Windows 7、Windows 8)平台上,用QML的MediaPlayer控件配合VideoOutput对音频文件和视频文件进行播放,运行时会报错:
DirectShowPlayerService::doRender: Unresolved error code 80040266
解决方法,安装LAV Filters
Qt 中的多媒体播放,底层是使用DirectShowPlayerService,所以安装一个DirectShow解码器。Qt在