HTML :
<video id="player" class="video-js vjs-default-skin" controls
preload="auto" width="400" height="264"
data-setup="{}">
<source src="http://video-js.zencoder.com/oceans-clip.mp4" type='video/mp4'>
<source src="http://video-js.zencoder.com/oceans-clip.webm" type='video/webm'>
</video>
<a href="#">Click to play video</a>
<br>
<code></code>JS :
var player = _V_("player");
var pasue_check = false;
$("a").click(function() {
player_play();
});
function player_play() {
$("#player").fadeIn();
$("a").fadeOut();
player.ready(function(){
player.play().addEvent("ended",player_ended);
player.addEvent("pause",player_pause);
player.play().addEvent("play",player_resume);
});
}
function player_ended() {
$("#player").fadeOut();
$("a").fadeIn();
if(pasue_check== true) {
clearInterval(countInterval);
pasue_check = false;
}
pasue_check = false;
}
function player_pause() {
count = 1;
countInterval = setInterval(function() {
$("code").html(count);
pasue_check = true;
if (count==5) {
player_ended();
}
count++
}, 1000);
}
function player_resume() {
if(pasue_check== true) {
clearInterval(countInterval);
pasue_check = false;
}
}现场测试:http://jsfiddle.net/973gT/
我试着使用setInterval & clearInterval,但是当我计数和暂停计数时,它就不那么好用了。
有时数得像2-4-6 .或cant
有人能帮助我吗,我所做的失败?
发布于 2012-09-06 08:50:00
player.ready侦听器被添加到player_play中,这意味着第二次按下play,所有事件侦听器都将再次绑定。因此,player_pause被绑定到pause事件两次,以便在第二个暂停之后启动两个间隔。
如果您提取要在player.ready上添加的DOMReady侦听器,而不是在每个player_play中,您将解决这个问题。
演示
另一个问题是在间隔内将pasue_check (拼写错误,但至少是一致的)设置为true。最好在间隔之前设置它,因为就像现在一样,从单击“暂停”按钮到pasue_check为真为止,会有一秒的延迟。如果在那一秒过去之前单击了简历,那么clearInterval将不会执行。所以也要把它移出间隔。
演示
你的视频之所以自动播放,是因为你在player.ready上打电话给player.ready。如果这不是你想要的,就把它去掉。
演示
https://stackoverflow.com/questions/12296178
复制相似问题