m90*_*m90 6 javascript video events html5-video
<video>我的页面上有一个元素:
<video id="myVideo">
<source src="vid.mp4" type="video/mp4" />
<source src="vid.ogg" type="video/ogg" />
</video>
Run Code Online (Sandbox Code Playgroud)
在我的JS中,它读取:
var v = $('#myVideo')[0];
v.addEventListener('timeupdate',function(){
alert('I changed');
},false);
Run Code Online (Sandbox Code Playgroud)
现在我将启动我的控制台并键入:
$('#myVideo')[0].currentTime = 2;
Run Code Online (Sandbox Code Playgroud)
显示的帧将更改,但事件不会触发.根据规格timeupdate应该开火的时候currentTime was changed,所以我不认为我使用的是错误的事件?我正在使用的所有其他事件(即play&ended)工作得很好.
有很多类似的问题,但所有这些似乎都是过时的错误?这是另一个错误(我在Chrome 17和FF10中测试过)还是在事件结构中做了什么改变?还是我错过了一些完全不同的东西?
编辑: 我刚刚注意到这个问题只会在视频尚未播放时发生.所以当我这样做时:
$('#myVideo')[0].play();
$('#myVideo')[0].pause();
$('#myVideo')[0].currentTime = 2;
Run Code Online (Sandbox Code Playgroud)
事件会像它应该的那样发射.
因此,正如我的问题的编辑中已经指出的那样,我用一种简单且相当愚蠢的方法解决了这个问题。做就是了:
video.play();
video.pause();
Run Code Online (Sandbox Code Playgroud)
“初始化”播放头。timeupdate这样一来,即使没有人启动该视频,人们也应该能够获取事件。
附带说明:奇怪的是,设置preload为auto确实会触发视频的预加载,但它似乎没有初始化播放头。
| 归档时间: |
|
| 查看次数: |
15256 次 |
| 最近记录: |