Qt 5.5:何时从媒体播放器中加载视频设置持续时间?



我想知道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);
        }
    }
}

希望能有所帮助

最新更新