【问题标题】:Spotify Preview API: player.change event not fired on queued tracksSpotify Preview API:在排队的曲目上未触发 player.change 事件
【发布时间】:2013-06-06 10:34:04
【问题描述】:

从 Spotify 中的播放列表播放时,如果我从当前播放的播放列表以外的其他位置(例如来自搜索结果)排队播放曲目,当排队的曲目开始播放时不会触发播放器的更改事件。

还有其他人遇到过这种情况吗?更改事件是否只应该在播放上下文中触发?如果是这样,播放排队曲目时如何获取曲目信息?

【问题讨论】:

  • 你是如何排队的?
  • 一步一步: 1:搜索“royals”(例如)。 2:右键单击其中一个结果,然后单击“队列”。 3:进入应用程序。 4:跳到下一首,不触发事件。如果您更改第 2 步,例如转到专辑,然后从那里将曲目排队,则在第 4 步中触发事件。您是否遇到相同的行为?

标签: spotify spotify-queue


【解决方案1】:

你做了什么?

试试这样的:

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

【讨论】:

  • 这正是我尝试过的。每当播放列表中的曲目发生更改时,都会调用 updateCurrentTrack(),但是当开始播放从搜索结果排队的曲目时,不会调用它。当排队的曲目播放完毕,从播放列表继续播放时,updateCurrentTrack() 会再次被调用。
【解决方案2】:

我知道这有点旧,但作为参考,你应该可以这样做:

models.player.addEventListener('change', updateCurrentTrack);

function updateCurrentTrack(){
    models.player.load('track').done(function (player) {
        if(player.track.uri != currentTrack.uri){
            currentTrack = player.track;
            //enter code here
        }
    }
}

【讨论】:

  • 问题是在播放从搜索结果中排队的曲目时不会触发“更改”事件。我已经在几台运行 Windows、OSX 和 Linux 的计算机上对其进行了测试。所有人的行为相同。
猜你喜欢
  • 1970-01-01
  • 2018-06-10
  • 1970-01-01
  • 1970-01-01
  • 2017-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多