如何从 HTML5 多个视频中获取时长?
How to get duration from HTML5 Multiple video?
我在单个屏幕上有多个具有绝对位置的视频标签,我想从多个视频中获取更长的视频,当更长的视频结束时想要执行代码。
<div id="#p0">
<div style="width:1320px;height:1080px;position:absolute;left:0px;top:0px;z-index:0;">
<video preload="auto" autoplay>
<source src="1.mp4" type="video/mp4">
<source src="1.ogv" type="video/ogg">
</video>
</div>
<div style="width:600px;height:1080px;position:absolute;left:1321px;top:0px;z-index:0;">
<video preload="auto" autoplay>
<source src="2.mp4" type="video/mp4">
<source src="2.ogv" type="video/ogg">
</video>
</div>
<div style="width:1000px;height:600px;position:absolute;left:200px;top:200px;z-index:5;">
<video preload="auto" autoplay>
<source src="3.mp4" type="video/mp4">
<source src="3.ogv" type="video/ogg">
</video>
</div>
</div>
我尝试了下面的代码,但在记录持续时间时得到 NaN
$('#p0 div video').each(function() {
console.log($(this));
alert($(this).duration);console.log("dur "+$(this).duration);
if (longestVid == "" || longestVid.duration < $(this).duration)
longestVid = this;
});
如何获取持续时间?
您可能需要等到视频的元数据加载后才能获取持续时间(否则持续时间将报告 'undefined')。此外,您可能需要请求 $(this)[0].duration
而不是 $(this).duration
.
$('#p0 div video').each(function() {
var $el = $(this);
console.log('pre-load, duration is', $el[0].duration);
$el.one('loadedmetadata play', function () {
console.log('loaded, duration is now', $el[0].duration);
});
}
我在单个屏幕上有多个具有绝对位置的视频标签,我想从多个视频中获取更长的视频,当更长的视频结束时想要执行代码。
<div id="#p0">
<div style="width:1320px;height:1080px;position:absolute;left:0px;top:0px;z-index:0;">
<video preload="auto" autoplay>
<source src="1.mp4" type="video/mp4">
<source src="1.ogv" type="video/ogg">
</video>
</div>
<div style="width:600px;height:1080px;position:absolute;left:1321px;top:0px;z-index:0;">
<video preload="auto" autoplay>
<source src="2.mp4" type="video/mp4">
<source src="2.ogv" type="video/ogg">
</video>
</div>
<div style="width:1000px;height:600px;position:absolute;left:200px;top:200px;z-index:5;">
<video preload="auto" autoplay>
<source src="3.mp4" type="video/mp4">
<source src="3.ogv" type="video/ogg">
</video>
</div>
</div>
我尝试了下面的代码,但在记录持续时间时得到 NaN
$('#p0 div video').each(function() {
console.log($(this));
alert($(this).duration);console.log("dur "+$(this).duration);
if (longestVid == "" || longestVid.duration < $(this).duration)
longestVid = this;
});
如何获取持续时间?
您可能需要等到视频的元数据加载后才能获取持续时间(否则持续时间将报告 'undefined')。此外,您可能需要请求 $(this)[0].duration
而不是 $(this).duration
.
$('#p0 div video').each(function() {
var $el = $(this);
console.log('pre-load, duration is', $el[0].duration);
$el.one('loadedmetadata play', function () {
console.log('loaded, duration is now', $el[0].duration);
});
}