如何在html5视频播放器中获取视频的持续时间..?

时间:2015-07-10 09:03:12

标签: javascript html5 video html5-video

您好我使用的是html5视频播放器,我想在播放列表数组中获取每个视频的持续时间。 下面是我使用的代码,但它在控制台中显示了NaN。 请帮助我...感谢所有人的进步。

        $.each(self._playlist.videos_array, function(key ) {
        if(1) {
            self.dummy_video = $("<video />");  
            console.log(self._playlist.videos_array[key].Levels[0].mp4);
            self.dummy_video.attr('src', self._playlist.videos_array[key].Levels[0].mp4);
            //self.dummy_video.load();
            //self.dummy_video[0].play();
             //self.dummy_video[0].pause();         
             var video = self.dummy_video.get(0);
             console.log(video.duration);               
        }           
      });   

2 个答案:

答案 0 :(得分:0)

有两种解决方法:

使用setInterval:Problem retrieving HTML5 video duration

使用事件:current/duration time of html5 video?

答案 1 :(得分:0)

来自W3C#mediaevents

事件loadedmetadata的描述:

  

用户代理刚刚确定了媒体资源的持续时间和维度,文本轨道已准备就绪。

您可以收听该活动,在此之前,视频的有效期为NaN

演示如下:

$(function() {
    var video = $("<video>");
    video[0].addEventListener("loadedmetadata", function() {
      // Here you will get a valid duration now.
      console.log("Video duration now: " + video[0].duration);
    });
    video.attr("controls", "controls").attr("src", "https://avvimeo-a.akamaihd.net/68093/485/101309641.mp4?token2=1436525964_a8966f84e4a514fdb7a406a9ee6f1e30&amp;aksessionid=6475e4121b60d4cf");
    video.appendTo($("#playblock"));

    // Here's the position of your console.log, it'll put NaN here.
    console.log("Video duration now: " + video[0].duration);
     
     
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div id="playblock"></div>