我想知道什么时候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();
}
}
}
发布于 2016-04-05 02:29:11
我认为最初的OP已经有了解决方案,因为这是一个老问题,但我发布它是为了帮助任何有同样问题的人。据我所知,加载媒体后,您可以检查任何元数据属性:
Video{
id: metaData
source: "your source here...";
onStatusChanged: {
if(status === MediaPlayer.Loaded){
console.log(metaData.duration);
}
}
}
希望能帮助到一些人。
https://stackoverflow.com/questions/31705800
复制相似问题