2015-02-23 50 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足夠了。同樣,當用戶尋找歌曲的開始時,跟蹤被觸發。那沒關係,因爲在這種情況下,他再次聽歌。

用這種方法我也能跟蹤歌曲的中點。

謝謝!