我遵循了videojs的快速入门指南,并在我的html文档正文中放置了以下代码:
<video id="video" class="video-js vjs-default-skin" controls width="941"
height="531" autoplay preload="auto" data-setup="{}">
<source type="video/mp4" src="dummy_url">
</video>
一切都很好。自动播放和控制到位。
由于我需要在视频结束时删除视频,我将以下代码放在视频标签后面:
<script type="text/javascript">
_V_("video").addEvent("ended", videoEnd);
function videoEnd(){
$('#divId').slideToggle("slow");
setTimeout("$('#divId').remove()", 700);
}
</script>
问题是,每次我试图检测到一些视频时,自动播放都不起作用了。即使以下内容也不会触发自动播放:
<script type="text/javascript">
_V_("video").ready(function(){
var myPlayer = this;
// EXAMPLE: Start playing the video.
myPlayer.play();
});
_V_("video").addEvent("ended", videoEnd);
function videoEnd(){
$('#divId').slideToggle("slow");
setTimeout("$('#divId').remove()", 700);
}
</script>
你知道我如何保持自动播放并收听结束的事件吗?
嗯,我不确定这是否是最正确的实现,但:
<video id="video" class="video-js vjs-default-skin" controls
width="941" height="531" autoplay preload="auto" data-setup="{}">
<source type="video/mp4" src="dummy_url">
</video>
<script type="text/javascript">
interval = setInterval(videoLoaded, 100);
function videoEnd(){
$('#someid').slideToggle("slow");
setTimeout("$('#someid').remove()", 700);
}
function videoLoaded(){
if(!_V_.players.video){
return false;
}
_V_.players.video.play();
_V_.players.video.addEvent("ended", videoEnd);
clearInterval(interval);
}
</script>
根据我所读到的,另一种选择是只通过js加载视频。
这是videojs初始化视频对象的方式的一个问题。更多详细信息可以在这里找到。
希望它能帮助一些保险杠:)
实际上最好使用setTimeout函数启动videoLoaded函数,因为您无法控制您的播放器(如果您需要的话)。