Javascript 如何强制html5视频完全加载?
我在一个页面上有一些html5视频。当我第一次进入页面时,它们加载正确-我可以看到正确的帧大小,播放视频等。转到另一个页面并返回视频页面后,帧不够高,视频无法播放,无法全屏播放等 在我看来,这与视频加载有关。我尝试使用onloadeddata,但没有成功(这里的新手,我可能用错了) 有没有办法强制加载视频?像一个循环检查视频是否加载,如果没有-加载它们 更新:这是代码Javascript 如何强制html5视频完全加载?,javascript,jquery,html,video,Javascript,Jquery,Html,Video,我在一个页面上有一些html5视频。当我第一次进入页面时,它们加载正确-我可以看到正确的帧大小,播放视频等。转到另一个页面并返回视频页面后,帧不够高,视频无法播放,无法全屏播放等 在我看来,这与视频加载有关。我尝试使用onloadeddata,但没有成功(这里的新手,我可能用错了) 有没有办法强制加载视频?像一个循环检查视频是否加载,如果没有-加载它们 更新:这是代码 var content = ''; var index; $.post('api/getVideo.php',
var content = '';
var index;
$.post('api/getVideo.php', {id: id}, function(data) {
//console.log(data);
for (index = 0; index < data.length; index++) {
content = content + '<div class="col-md-6 video-col"> <button id="play" class="full-play-button"><i class="fa fa-play"></i></button>' +
'<video id="video1" class="video-small"> <source src="'+data[index]["Path"] + '"type="video/'+data[index]["Typ"]+'" class="video-file"> </video><h3 class="video-title">'+
data[index]["Tytul"]+'</h3></div>';
}
}, "json");
var内容=”;
var指数;
$.post('api/getVideo.php',{id:id},函数(数据){
//控制台日志(数据);
对于(索引=0;索引
来自文档
媒体API还包含一个load()
方法,该方法:“使元素复位,并从头开始选择和加载新媒体资源。”(
加载元素(使浏览器运行)
您可以在从新页面返回时触发加载。简而言之,这不完全可能。对于短视频,可以将设置为“自动”或空字符串“”。这意味着您希望浏览器整体预加载源 不幸的是,对于长视频,大多数浏览器并没有完全下载视频。如果是移动浏览器,则显示iOS。“预加载”属性不起作用。因此,实现这一目标的方法如下:
<video preload="" controls="">
<source src="my-video.mp4" type="video/mp4" />
<source src="my-video.webm" type="video/webm" />
</video>
您的源标记可能有输入错误。尝试将“type=“video/”更改为“type=video/”。现代浏览器不再需要type属性,所以请尝试完全删除“type=”video/'+data[index][“Typ”]+”。我没有足够的信息来测试您的代码,但它看起来像是语法错误。Post updated。正如我所说,我尝试了onloaddata,还尝试了检查readyState==4(不过还是新手)。您是如何使用onloadeddata
??这不是jQuery函数吗?我现在记不清了,我昨天试过了,但它是关于全屏制作的——只在加载时制作video1.play()数据,以防止在未加载视频的情况下全屏播放。谢谢你的回答。如何确定“从新页面返回”?凭借我对javascript的了解,我认为我应该能够添加一个事件侦听器,比如:当“comingBackToPage”load()时,我很难说这是否有效。我问了一个更高级的同事,他设法找到了一个解决方案——我真的不明白为什么这么不幸,我不能在这里描述它+1虽然让我意识到load()可能意味着两件不同的事情,但答案并不正确。如果您构造一个视频并将其插入dom中,load方法实际上会做同样的事情。在这之后调用load不会加载视频,它会重置并重新解析视频元素。如果您更改子源元素,这是有用的。