vimeo时间使用计算

时间:2011-11-17 12:25:11

标签: jquery video vimeo

基本上是在尝试构建一项服务,用户根据消费的分钟数收取费用。但是,如果视频是缓冲的,则用户不会收费

所以我需要计算视频播放的秒数。只有在播放视频而不是暂停/缓冲/停止视频时,计数器才会递增。假如用户观看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> 

1 个答案:

答案 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);
   }
}