我想知道mediaplayer的持续时间字段何时由您要播放的视频更新。
例如,如果我加载视频并点击播放,我可以在播放视频时读取持续时间"onPressed"然而,如果我加载视频"onPressed",我可以播放它,但持续时间被设置为0。
何时更新此字段或如何动态加载加载视频并获取持续时间?
import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.Window 2.2
import QtMultimedia 5.0
ApplicationWindow {
title: qsTr("Hello Video")
width: 640
height: 480
visible: true
MediaPlayer {
id: mediaplayer
// if uncommented, can get duration of video onPressed
// source: "file:///Users/.../testVideo.mp4"
}
VideoOutput {
anchors.fill: parent
source: mediaplayer
}
MouseArea {
id: playArea
anchors.fill: parent
onPressed: {
// --- If video loaded here, duration is set to 0
mediaplayer.source= "file:///Users/...../test.mp4"
console.debug("main::MouseArea::onPressed() - Found media with duration:" + mediaplayer.duration)
mediaplayer.play();
}
}
}
我想原来的OP已经有了一个解决方案,因为这是一个老问题,但我发布,以帮助任何人谁有同样的问题。据我所知,您可以在加载媒体后检查任何元数据属性:
Video{
id: metaData
source: "your source here...";
onStatusChanged: {
if(status === MediaPlayer.Loaded){
console.log(metaData.duration);
}
}
}
希望能有所帮助