基本上是在尝试构建一项服务,用户根据消费的分钟数收取费用。但是,如果视频是缓冲的,则用户不会收费
所以我需要计算视频播放的秒数。只有在播放视频而不是暂停/缓冲/停止视频时,计数器才会递增。假如用户观看5分钟5次,则总计数器应显示25分钟。
这是我的代码..但问题是,eventlistner会快速连续触发,而计数器会以不成比例的方式增加到视频播放时间
在这里查看在线运行代码http://guwahaticity.com/vimeotest.html
这是相同的代码
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script src="http://a.vimeocdn.com/js/froogaloop2.min.js"></script>
<script type="text/javascript">
var counter = 0;
jQuery(document).ready(function() {
var playerID = document.querySelector('iframe');
$f(playerID).addEvent('ready', ready);
function ready(playerID) {
Froogaloop(playerID).addEvent('playProgress', playProgress);
}
function playProgress() {
counter = counter + 1;
$(".playp").html(counter);
}
});
</script>
<iframe class="vimeo" id="player1" src="http://player.vimeo.com/video/3718294?api=1&player_id=player1" width="500" height="281" frameborder="0"></iframe>
<hr>
This video has been played for <div class="playp"></div>
答案 0 :(得分:0)
似乎playProgress事件每秒被触发超过一次。如果最后一个事件在一秒钟之前被触发,增加计数器怎么样,如下所示:
var last = new Date(0);
function playProgress() {
Date now = new Date();
if(now.getTime() - last.getTime() >= 1000){
counter = counter + 1;
last = now;
$(".playp").html(counter);
}
}