2011-11-17 121 views
1

基本上,m試圖建立一個服務,用戶根據視頻消耗的分鐘數收費。但是,如果視頻被緩衝,用戶不會收費vimeo時間使用率計算

所以我需要計算視頻播放的秒數。計數器只能在視頻播放時才增加,而不是暫停/緩衝/停止。假設用戶觀看5分鐘5次,總計數器應顯示25分鐘。

這裏是我的代碼..但問題是,在快速連續和櫃檯eventlistner火災獲取unproportionately不會增加的視頻播放時間

看一看網上運行的代碼在這裏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

+1演示網站! –

回答

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); 
    } 
} 
+0

thnx ..也嘗試過..後來發生的概率是視頻混蛋問題.. vimeo已經因爲某些未知的原因而倒帶幾秒鐘的視頻......最後在getcurrenttime()func的邏輯之上使用以獲得工作做.. –