Deezer API-获取当前位置

Deezer API - get current position

本文关键字:位置 获取 API- Deezer      更新时间:2024-04-11

我想跟踪用户何时开始播放歌曲。我的问题是只能跟踪播放按钮(在我看来)。但我只想要歌曲的开头,而不是每次点击"播放按钮"(以及当用户暂停歌曲并继续播放时)。

因此,我只想在当前位置低于1秒左右时检查歌曲和曲目的当前位置。有人知道如何获得当前播放歌曲的位置吗?我发现的唯一关于玩家位置的是player_position事件,当歌曲中的位置发生变化时会触发该事件。

有什么想法吗?我最后想做的是存储一个变量,如果歌曲已经被跟踪或其他什么,它会记住。

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

根据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;
    }
});

由于每首曲目上都有"tracked"的附加标志,我确信当"player_position"事件在位置1.1593044475699572和1.4754669253862243以及1.7916924465679582或其他位置启动时,歌曲不会被跟踪两次。

跟踪位置0对我不起作用,因为"player_position"事件是在玩家加载时触发的,但位置1已经足够了。此外,当用户寻找歌曲的开头时,跟踪被触发。没关系,因为在这种情况下,他又听了这首歌。

通过这种方法,我也能够追踪歌曲的中点。

谢谢!