Javascript 不播放视频的HTML5视频持续时间
我试图在HTML5中获得视频持续时间,而不播放视频,或者在播放视频之前在视频拇指上显示视频,就像你在YouTube或任何其他视频网站上看到的那样 任何帮助都将不胜感激Javascript 不播放视频的HTML5视频持续时间,javascript,css,html,Javascript,Css,Html,我试图在HTML5中获得视频持续时间,而不播放视频,或者在播放视频之前在视频拇指上显示视频,就像你在YouTube或任何其他视频网站上看到的那样 任何帮助都将不胜感激 提前感谢。对于HTML5,加载文件元数据后,您应该能够使用视频标记的持续时间属性。请参阅以下答案,以获得一个好方法: 引用Mikushi的anwser: myVideoPlayer.addEventListener('loadedmetadata', function() { console.log(videoPlaye
提前感谢。对于HTML5,加载文件元数据后,您应该能够使用视频标记的持续时间属性。请参阅以下答案,以获得一个好方法: 引用Mikushi的anwser:
myVideoPlayer.addEventListener('loadedmetadata', function() {
console.log(videoPlayer.duration);
});
通过侦听“loadedmetadata”事件,您将确保已加载持续时间值
有关loadedmetadata的更多详细信息,请参见:
编辑
根据@lucas vasques的评论,您可以使用durationchange
来代替loadmetadata
事件,该事件描述为
元数据已加载或已更改,表示持续时间已更改
媒体。例如,当加载介质时,会发送此消息
足够使持续时间已知
函数getDuration(){
var s=document.getElementById('a');
警报(持续时间)
}
获取持续时间
视频元素上会触发一个名为“loadedmetadata”的特殊事件。一旦触发此选项,视频元素上的属性(如持续时间)将可用
以下是所有HTML5视频事件的详尽列表:我认为不启动电影并不总是可能的。我还怀疑youtube是否会这样做,然后他们会在服务器上预处理电影以获得持续时间。这是可以的,但我希望在页面加载时不显示任何单击事件。这不是onclick事件,这是视频元数据加载时(在任何单击事件之前)更多信息:+1,感谢您提供的有用代码。它不应该是回调中的
myVideoPlayer
而不是videoPlayer
吗?+1,当同一视频元素(作为源元素)中使用同一视频的多个版本时,它也可以工作。有一个更新:使用durationchange
而不是loadedmetadata
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function getDuration() {
var s = document.getElementById('a');
alert(s.duration)
}
</script>
</head>
<body>
<div>
<video src="2.mp4" id="a" controls="controls"></video>
<button onclick="getDuration()">get duration</button>
</div>
</body>
</html>
// Assume "video" is the video node
var i = setInterval(function() {
if(video.readyState > 0) {
var minutes = parseInt(video.duration / 60, 10);
var seconds = video.duration % 60;
// (Put the minutes and seconds in the display)
clearInterval(i);
}
}, 200);