Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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视频加载数据事件在IOS Safari中不起作用_Javascript_Jquery_Html_Html5 Video - Fatal编程技术网

Javascript HTML5视频加载数据事件在IOS Safari中不起作用

Javascript HTML5视频加载数据事件在IOS Safari中不起作用,javascript,jquery,html,html5-video,Javascript,Jquery,Html,Html5 Video,我试图在视频加载第一帧后触发事件。我使用的代码在我测试过的桌面浏览器中工作,但在IOS上的mobile safari中不工作。是否有一些代码在mobile safari上不受支持,或者是否有其他解决方案来实现我想要的 function loadvideo (vidsource){ var vid = document.createElement('video'); vid.src = vidsource; alert("Video about to load"); //This works

我试图在视频加载第一帧后触发事件。我使用的代码在我测试过的桌面浏览器中工作,但在IOS上的mobile safari中不工作。是否有一些代码在mobile safari上不受支持,或者是否有其他解决方案来实现我想要的

function loadvideo (vidsource){

var vid = document.createElement('video');
vid.src = vidsource;

alert("Video about to load"); //This works fine in mobile safari
vid.addEventListener('loadeddata', function() {
alert("Video Loaded!"); //This does not display in mobile safari
//Will do something else here
}, false);

}

尽量不要使用
addEventListener
如果是这种情况,请在设置事件侦听器后,在样式上使用较旧的
,并设置src:

...
vid.onloadeddata = function () {
    alert("Video Loaded!");
    // do something
}
vid.src = vidsource;
...

如果EventListener在处理事件时添加到EventTarget,则当前操作不会触发它,但可能会在事件流的后期阶段(如冒泡阶段)触发。-要了解更多信息-

在iOS上,除非用户点击“播放”,或者添加了“自动播放”属性(实际上并不是自动播放),否则视频似乎无法加载

以下内容适用于您:

var vid = document.createElement('video');
if (/iPad|iPhone|iPod/.test(navigator.userAgent))
    vid.autoplay = true;
vid.addEventListener('loadeddata', function() {[...]}, false);
vid.src = videosource;

或者,您可以收听
进度
事件,而不是
加载数据
,这在iOS Safari上似乎可以正常工作。

在桌面浏览器中工作,但在移动Safari浏览器中不工作。我正在制作一个移动web应用程序,所以它在移动safari浏览器上运行至关重要。请尝试检查您的视频mime类型,可能brouser无法理解。这段视频将在iPhone上播放-
-更多信息,这里是直接从个人摄像机拍摄的视频。用户上传它们。所以它们是100%兼容的,这是因为苹果在用户真正播放视频之前已经禁用了所有事件吗?真的,我不知道,但你可以试着检查一下,所有这些都是可能的。我猜你不是通过点击或触摸端事件手柄调用loadvideo。那么我有没有办法模仿这一点?由于视频不会显示在屏幕上(只有缩略图),因此用户无法启动Faik,只要用户在任何地方单击(不必单击视频),就可以加载视频,但自动播放不总是播放视频吗?不确定自动播放部分,但是,
progress
事件确实在任何地方都有效。您可以添加
{one:true}
而不是
false
来获取第一帧。