Javascript Spotify在使用player.play(songURI)时崩溃

Javascript Spotify在使用player.play(songURI)时崩溃,javascript,spotify,Javascript,Spotify,我正在OSX机器上为Spotify(JavaScript)开发,当我试图播放歌曲时,应用程序崩溃 我对API的调用是:player.play(trackURI) Spotify客户端将播放歌曲约1/4秒,然后它将崩溃。我相信正是这种方法使客户端崩溃,因为我已经调试到了这一点 如果你需要任何其他信息,并有任何线索,为什么会发生这种情况,我期待着一个答复 更多信息: 所以,我成功地复制了它。发生的事情是我已经注册了EVENT\u CHANGE事件,就像这样player.observe(models

我正在OSX机器上为Spotify(JavaScript)开发,当我试图播放歌曲时,应用程序崩溃

我对API的调用是:
player.play(trackURI)

Spotify客户端将播放歌曲约1/4秒,然后它将崩溃。我相信正是这种方法使客户端崩溃,因为我已经调试到了这一点

如果你需要任何其他信息,并有任何线索,为什么会发生这种情况,我期待着一个答复


更多信息:

所以,我成功地复制了它。发生的事情是我已经注册了
EVENT\u CHANGE
事件,就像这样
player.observe(models.EVENT.CHANGE,function(e){

当歌曲结束,新歌曲开始播放时,我想播放假队列中的下一首歌曲。因此,当使用
e.data.curtrack==true触发EVENT.CHANGE时,我调用
player.play(nextSongId)


然后我猜Spotify尝试播放其队列中的下一首歌曲,但我想播放我自己的下一首歌曲,因此Spotify崩溃。

我认为问题在于,当你告诉Spotify播放下一首曲目时,你的观察者会被反复呼叫。每次你播放player.play,它都会触发另一个事件。更改,而你不会o尝试再次播放该曲目

要进行验证,请尝试输入一个
console.log(“播放下一首曲目”)
并观察js控制台是否发生了这种情况


如果是这样,请尝试检查player.track.uri==queue[index].uri是否为false,如果为false,则播放队列中的下一首曲目经过一些修复后,我想这是因为我调用了player.play(trackURI)几乎就在我之前调用过一次之后。发生这种情况是因为我正在更改一首歌曲,这触发了EVENT.CHANGE事件,然后我会再次调用player.play()。有关处理歌曲更改的好方法,请参阅代码片段

player.observe(models.EVENT.CHANGE, function (e) {

    // Only update the page if the track changed
    if (e.data.curtrack == true && !justChangedSong) {
        var songId = queue.shift();
        if (songId != null)
        {
            player.play(songId);
            justChangedSong = true;
        }
    }
    else if (justChangedSong)
    {
        justChangedSong = false;
    }
});
此外,如果您有一个名为“下一首歌”的按钮,请将其连接到
playNextSong()
方法:

function playNextSong()
{
    var songId = queue.shift();
    if (songId != null)
    {
        player.play(songId);
        justChangedSong = true;
    }
}

Spotify似乎不再崩溃了。干杯!

你能提供一个关于如何使用player对象的代码片段吗?你还可以提供客户端在执行时正在做什么的日志。在Spotify上运行console.app和filter。@pompa,它似乎不再崩溃了。我不确定我对“修复”做了什么这个。我可能正在调用player.play(trackuri)当一首曲目已经播放时。虽然不确定…@pompa,请参阅问题的更新描述以获取更多信息。干杯!是的,好主意。我也注意到了这一点,并使用bool变量解决了它。我将这样尝试。尽管如此,这不会真正导致问题。播放器应该反复播放同一首歌曲,但不是崩溃。