Javascript HTML5视频加载时间
我试图计算HTML5视频的测量时间。我使用Javascript收听html5视频事件Javascript HTML5视频加载时间,javascript,html,video,dom-events,Javascript,Html,Video,Dom Events,我试图计算HTML5视频的测量时间。我使用Javascript收听html5视频事件loadstart和canplaythrough,使用: media.addEventListener('loadstart'getStartTime(){ startTime = new Date().getTime();}, false) 与endTime类似,事件设置为canplaythrough收听。 然而,我无法获得任何数据 有人可以指导我如何使用Javascript测量视频加载时间吗 感谢您的回
loadstart
和canplaythrough
,使用:
media.addEventListener('loadstart'getStartTime(){
startTime = new Date().getTime();},
false)
与endTime
类似,事件设置为canplaythrough
收听。
然而,我无法获得任何数据
有人可以指导我如何使用Javascript测量视频加载时间吗
感谢您的回复,但我相信解决方案是使用jQuery;但是,我想知道是否可以从Javascript实现。我已附上我的代码副本:
function loadVideo(){
var timeNow = Date.now(), timeStartLoad, timeFinishLoad;
myVideos = new Array();
myVideos[0] = "trailer.mp4";
myVideos[1] = "trailer.ogg";
myVideos[2] = "trailer.m4v";
var videoId = document.getElementById('idForVideo');
var video = document.createElement('video');
for(var i=0; i<myVideos.length; i++){
var source = document.createElement('source');
source.setAttribute('src', myVideos[i]);
video.appendChild(source);
}
video.load();
video.addEventListener('loadstart', function(){
timeStartLoad = Date.now() - timeNow;
}, false);
video.addEventListener('hasenoughdata', function(){
timeFinishLoad = Date.now() - timeStartLoad;
}, false);
idForVideo.appendChild(video);
newDiv = document.getElementById('newDiv');
newDiv.innerHTML = "BodyLoad: " + timeNow + " " + "; Video Load: " + timeStartLoad + "; Video Loaded: " + timeFinishLoad;
//alert(timeStartLoad);
}
函数loadVideo(){
var timeNow=Date.now(),timeStartLoad,timeFinishLoad;
myVideos=新数组();
myVideos[0]=“trailer.mp4”;
myVideos[1]=“trailer.ogg”;
myVideos[2]=“trailer.m4v”;
var videoId=document.getElementById('idForVideo');
var video=document.createElement('video');
对于(var i=0;i,您的代码存在一些(复制和粘贴)语法问题
var timeInit = Date.now(), timeLoad, timeCanPlay;
$("movie").addEventListener('loadstart', function(){
timeLoad = Date.now();
$("t1").innerHTML = "load: " + (timeLoad - timeInit) + " msecs";
});
$("movie").addEventListener('canplaythrough', function(){
timeCanPlay = Date.now();
$("t2").innerHTML = "canplay: " + (timeCanPlay - timeLoad) + " msecs";
});
$("movie").src = "http://ia600208.us.archive.org/12/items/FarSpeak1935/FarSpeak1935_512kb.mp4";
$("movie").play();
试试看::嘿,我想到了。
原因似乎是由于浏览器的快速响应,它甚至在捕获事件之前就获取数据。opera提供的解决方案似乎有效。在内联脚本中包含事件侦听器,并为窗口对象制作addEventListener。
详情请浏览:
虽然我无法发表评论,但我已经在@noiv发布的上面的小提琴上添加了一个叉子,因为小提琴有一些JS错误。感谢@noiv为我指明了正确的方向
值得注意的是,whatwg正试图在浏览器中实现视频指标的一致性,这样浏览器就可以支持一些共同的属性,尽管这项工作似乎已经在各方之间展开,Mozilla支持他们自己的指标,Chromium团队支持他们的指标,Apple Safari sup支持他们的指标移植他们的。感谢您的回复。我会尝试一下。对于帮助您达到第二级的答案,有什么奖励吗?
$("movie").addEventListener('loadstart', function(){
timeLoad = Date.now();
console.log("loadstart event time: " + timeLoad + ", delta: " + (timeLoad - timeInit));
// alert("loadstart event time: " + timeLoad + ", delta: " + (timeLoad - timeInit));
});