edo*_*lin 8 javascript google-chrome html5-video
在Windows 7和Linux(Ubuntu 13.10)上的Chrome 31中,视频元素上的事件处理程序,注册canplay(和oncanplay,只是为了确保)永远不会触发.当我检查DOM节点时,没有oncanplay属性.该规范说,它应该存在.有没有人知道Chrome何时或是否支持此活动?
bri*_*rls 22
Chrome 确实支持此canplay
活动.您没有看到它,因为检查器仅显示所有元素上的属性,而不仅仅是媒体元素.它也没有显示loadedmetadata
,durationchange
等等,但Chrome肯定支持那些.
我没有看到你的代码,但我猜你可能会看到事件触发的原因(假设你正在正确地听它)是你错过了这个事件.除非你跳过视频很多,canplay
否则只会发射一次.因此,如果事件在您附加侦听器之前触发,则为时已晚.
相反,你可以检查状态,就像这样......
//assume you've already set up the video variable to point to your video element
if (video.readyState >= video.HAVE_FUTURE_DATA) {
console.log('video can play!');
} else {
video.addEventListener('canplay', function () {
console.log('video can play!');
}, false);
}
Run Code Online (Sandbox Code Playgroud)
(根据您要完成的任务,您可能希望以任一方式附加事件侦听器.readyState
如果您的缓冲数据用完,视频可以恢复,并canplay
可能在以后再次触发.
归档时间: |
|
查看次数: |
9788 次 |
最近记录: |