2015-02-23 76 views
0

我想跟踪用户何时开始播放歌曲。我的问题是,它只能跟踪播放按钮(在我看来)。但是我只想要歌曲的开始,而不是每个播放按钮的点击(当用户暂停歌曲并继续播放时)。Deezer API - 获取当前位置

因此,我想检查歌曲的当前位置,并只在当前位置低于1秒时跟踪。有谁知道如何获得当前播放歌曲的位置?关于我找到的玩家位置唯一的事情是player_position事件,当歌曲中的位置改变时触发事件。

任何想法?最后我想要做的是存储一个变量,记住,如果歌曲已经被追踪或者什么的。

回答

0

要知道用户何时开始播放歌曲的唯一方法是使用“player_position”,如您所说。与使用“DZ.player.play”动作时执行的“player_play”不同。如果你愿意,你可以在这里看到一个例子http://developers.deezer.com/sdk/javascript/example-invisible,它显示了它的工作原理。

0

基于Fred_Dzr的提示我做了一个解决方案,它的工作原理相当不错:

DZ.Event.subscribe('player_position', function(positionArray) { 
    var track = DZ.player.getCurrentTrack(); 
    var position = Math.floor(positionArray[0]); 
    if(position === 1) { 
     if(!track['tracked']) { 
      console.log('TRACKING: play: ' + track.id + ' | ' + track.artist.name + ' - ' + track.title); 
      track['tracked'] = true; 
     } 
    } else { 
     track['tracked'] = false; 
    } 
}); 

随着附加标志每个轨道上的“跟踪”,我相信这首歌是不是跟踪了两次,当“player_position”事件在位置1.1593044475699572和1.4754669253862243和1.7916924465679582或别的东西上被触发。

跟踪位置0不适用于我,因为“player_position”事件在玩家负载上被触发,但位置1足够了。同样,当用户寻找歌曲的开始时,跟踪被触发。那没关系,因为在这种情况下,他再次听歌。

用这种方法我也能跟踪歌曲的中点。

谢谢!