Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.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_Html_Google Chrome_Webkit_Html5 Video - Fatal编程技术网

Javascript HTML5视频-等待事件未触发

Javascript HTML5视频-等待事件未触发,javascript,html,google-chrome,webkit,html5-video,Javascript,Html,Google Chrome,Webkit,Html5 Video,我在胡闹HTML5视频和自定义控件,我希望使用等待事件来理想地显示加载图像,但现在只需向控制台写入即可 等待事件 播放已停止,因为下一帧不可用,但 用户代理希望该框架在适当的时候可用 我在这里树立了一个榜样-> 以下是视频代码减去控件: <video controls preload="meta"> <source src="http://www.tools4movies.com/dvd_catalyst_profile_samples/The%20Amazing%20S

我在胡闹HTML5视频和自定义控件,我希望使用等待事件来理想地显示加载图像,但现在只需向控制台写入即可

等待事件

播放已停止,因为下一帧不可用,但 用户代理希望该框架在适当的时候可用

我在这里树立了一个榜样->

以下是视频代码减去控件:

<video controls preload="meta">
   <source src="http://www.tools4movies.com/dvd_catalyst_profile_samples/The%20Amazing%20Spiderman%20tablet.mp4" />
   This is video fallback
</video>

有人知道为什么这个没有运行吗?等待事件听起来像是我需要的。

您是否希望在第一次使用视频缓冲时显示等待的图像?如果是这样的话,您可能不是在寻找
等待

请看这个演示:

如果在没有任何预加载的情况下调用
play()
,应该会看到
正在等待
激发,即使是在缓存的副本上。如果在
play()
之前调用
load()
,您可能永远不会看到
正在等待
触发,因为下一帧可能始终可用

最好的方法是显示图像,调用
load()
,然后监听并等待
canplay
canplaythrough
。此时,隐藏图像并启动
play()

更新


在这个提琴中查看视频:Chrome没有发送
等待
事件,而是在视频冻结后不久发送
暂停
事件。您可能需要检查您支持的每个浏览器的工作方式。请记住,像VideoJS这样的播放器非常庞大(约142KB),因为它们处理大量浏览器不一致的问题。

这里有一个很好的图表,它试图记录“缓冲区不足”场景中不同浏览器的行为,我想这正是您想要的

不幸的是,浏览器是非常不一致的,所以虽然我相信“等待”事件是你想要的,但Chrome并没有启动它


我一直在尝试“猜测”播放器何时根据视频经过的时间进行缓冲,检查播放/暂停等事件,以便我知道时间何时应该增加。

否,只是当我们加载的视频用完并且在等待更多视频时不得不停下来时。等待似乎是正确的选择,但我很高兴被证明是错误的。在这种情况下,等待是有意义的。你确定它没有开火吗?演示报告
正在Chrome、Safari和Firefox上等待我。是的,没有控制台条目、警报或任何东西。早上我会打电话给你。更新答案。在本例中,Chrome似乎使用了
stalled
事件。你完全正确。这并不是为了生产,只是为了尝试和了解更多关于它(和JavaScript)的信息而在它周围乱搞。
 var video = document.getElementsByTagName('video')[0];   

    video.addEventListener('waiting', function() {
        console.log('waiting');
    }, false);