您好我使用的是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);
}
});
答案 0 :(得分:0)
有两种解决方法:
使用setInterval:Problem retrieving HTML5 video duration
答案 1 :(得分:0)
事件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&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>