【问题标题】:vimeo time usage calculationvimeo 时间使用计算
【发布时间】:2011-11-17 12:25:10
【问题描述】:

基本上,我试图构建一项服务,根据用户使用的视频分钟数收费。但是,如果视频被缓冲,用户将不会收费

所以我需要计算视频播放的秒数。仅当播放视频且未暂停/缓冲/停止时,计数器才应递增。假设用户观看 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> 

【问题讨论】:

    标签: jquery video vimeo


    【解决方案1】:

    似乎 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);
       }
    }
    

    【讨论】:

    • thnx.. 也试过了.. 后来发生的问题是视频混蛋问题.. vimeo 由于某些未知原因一直在倒带视频几秒钟... 最后在 getcurrenttime 逻辑上方使用() 函数来完成工作..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多