我有几个包含视频对象的 div。他们只需点击缩略图即可播放。但是,如果用户单击另一个选项,我会遇到视频继续“在幕后”播放的问题。所以,我从一个溢出者那里得到这个来“停止”视频,将其返回到第一帧,淡出,然后淡入并播放下一个选择的视频:
这是 jQuery 脚本:
$(function(){
$('div.video').hide();
$('.icon').click(function(){
var id=$(this).data('id'),
thisDiv=$("div.video[data-id='" + id +"']"),
thisVideo=$("div.video[data-id='" + id +"']").find('video');
$('video').each(function () {
this.pause();
this.currentTime = 0;
});
$('div.video').not(thisDiv).fadeOut();
thisDiv.fadeIn();
thisVideo.get(0).play();
});
});
以及视频对象的八个 div 之一的 html:
<div class="video" data-id="1" >
<video width="auto" height="100%" controls="controls">
<source src="videos/video.mp4" type="video/mp4" />
<source src="videos/video.ogv" type="video/ogg" />
<source src="videos/video.webm" type="video/webm" />
<object data="videos/video.mp4" width="auto" height="100%">
<embed src="videos/video.swf" width="auto" height="100%" />
</object>
</video>
</div>
而且它有效……大多数时候。有时,我得到错误:
this.currentTime = 0; Uncaught Error: INVALID_STATE_ERR: DOM Exception 11
在 Chrome 的错误日志中。IE8 显示相同的错误。
有谁知道这是怎么一回事?我能做些什么来解决它?