Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何强制html5视频完全加载?_Javascript_Jquery_Html_Video - Fatal编程技术网

Javascript 如何强制html5视频完全加载?

Javascript 如何强制html5视频完全加载?,javascript,jquery,html,video,Javascript,Jquery,Html,Video,我在一个页面上有一些html5视频。当我第一次进入页面时,它们加载正确-我可以看到正确的帧大小,播放视频等。转到另一个页面并返回视频页面后,帧不够高,视频无法播放,无法全屏播放等 在我看来,这与视频加载有关。我尝试使用onloadeddata,但没有成功(这里的新手,我可能用错了) 有没有办法强制加载视频?像一个循环检查视频是否加载,如果没有-加载它们 更新:这是代码 var content = ''; var index; $.post('api/getVideo.php',

我在一个页面上有一些html5视频。当我第一次进入页面时,它们加载正确-我可以看到正确的帧大小,播放视频等。转到另一个页面并返回视频页面后,帧不够高,视频无法播放,无法全屏播放等

在我看来,这与视频加载有关。我尝试使用onloadeddata,但没有成功(这里的新手,我可能用错了)

有没有办法强制加载视频?像一个循环检查视频是否加载,如果没有-加载它们

更新:这是代码

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不会加载视频,它会重置并重新解析视频元素。如果您更改子源元素,这是有用的。