0

在 Spotify HTML5 应用程序(1.0 版)中,每次播放器的当前位置发生变化(models.player.position)时,我如何调用一个函数?我的意思是,就像一个 setInterval 毫秒函数,但与播放器同步。我尝试过“change:track”和“change”,它们在轨道改变和播放器暂停时(分别)完美触发。

models.player.addEventListener('change:track', updateCurrentTrack);
models.player.addEventListener('change', updateStatus);

在此先感谢并为我的英语不好感到抱歉!

编辑:每秒或 500 毫秒触发的函数将是完美的。

4

1 回答 1

0

在我的桌面上,每 850-950 毫秒打印一次。

require(['$api/audio', '$api/models'], function (audio, models) {
    var analyzer = audio.RealtimeAnalyzer.forPlayer(models.player);

    var last_position = -1;
    analyzer.addEventListener('audio', function (evt) {
        models.player.load('position').done(function() {
            if(models.player.position != last_position) { 
                console.log(models.player.position + ", " + (models.player.position-last_position)); 
                last_position = models.player.position;
            }
        });
    });
});

当然,这不是最好的解决方案。

OTOH,实时分析器应该通过音乐可靠地报告信息,我怀疑你可以只计算呼叫并假设你非常接近 256 毫秒的倍数。

于 2013-11-04T16:47:24.310 回答