我按照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>
关于如何保持自动播放并听取已结束事件的任何想法?
答案 0 :(得分:1)
好吧,我不确定这是否是最正确的实现,但是:
<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初始化视频对象的方式。可以找到更多详细信息here。
希望它可以帮助一些碰碰:)
答案 1 :(得分:0)
实际上更好的方法是使用setTimeout函数启动videoLoaded函数,因为你无法控制你的播放器(如果你需要它)。