2014-05-25 55 views
1

我试图让人们看一段视频的时间,或者甚至更好地每分钟做一次动作。我想要做的是每分钟付费解决方案。每分钟都必须从用户那里取消信用。jwplayer - 获得观看时间 - 按分钟付费 - 按时按时操作

如果这是不可能的,我怎样才能设置视频可以观看的最长时间,具体取决于用户拥有的积分数量?

我有一个许可的jw播放器,它是不可编辑的。

在此先感谢。

回答

2

您可以使用javascript setInterval函数。

window.setInterval(function(){ 
    /// call your function to deduct a point 
}, 60000); 
+0

jwplayer的onTime()函数会不会更适合?因为我只想每分钟都要扣除一点,所以视频正在播放。有了setInterval,即使视频暂停,它也会扣分...有更好的解决方案吗? – AlexanderCl

+0

@ user3674217您可以每隔一段时间设置一次间隔并检查视频是否正在播放,如果是添加1/60点 – viralpickaxe

1

我想你需要将它与你现有的用户数据库进行整合,以检查谁是谁以及他支付和消费了多少时间。如果我是对的,那你为什么不在服务器端实现呢?根据您使用的媒体流解决方案,您可以在服务器端构建该部分,并且在执行播放器时不可靠。

我喜欢JWPlayer,我个人尊重Jeroen Wijering(我甚至在会议上多次与他交谈过),但是您需要为此类任务选择更合适的工具集。

让我知道你使用哪个媒体服务器。

1

谢谢你的答案家伙。我目前的解决方案是这样的:在onTime函数中,我检查Math.floor(event.position)是否不同,如果是的话,我递增计数器。一旦计数器达到60,我就会使用当前用户ID在一个PHP脚本中运行ajax帖子,在该脚本中更改用户信用。

onTime: function(event) { 
      var time = Math.floor(event.position); 
      if(time != old_time){ 
       counter++; 
       old_time = time; 
      } 
      if(counter == 60) { 
       jQuery.ajax({ 
        type: "POST", 
        url: 'streaming_services.php', 
        data: {functionname: 'continuePlaying', id: <?php echo $_SESSION['wp_wallet_user_id']; ?>}, 
        success:function(result) {     
         var obj = jQuery.parseJSON(result); 
         $("span#wallet_stats span").text(obj.credits); 
         if(obj.credits <= 0) { 
          jwplayer('player').remove(); 
         } 
        }, 
        error:function(data) { 
         console.log("error"); 
        } 
       }); 
       counter = 0; 
      } 
     } 

如果有更好的解决方案,或者我的代码没有优化让我知道!我仍然在学习,所以我非常感谢任何帮助。 @Aquary @EthanJWPlayer