似乎其中一个原因是
musicPlayerController.prepend()
功能而不是
setQueue()
. 不幸的是,我被迫使用
prepend()
因为音乐播放器的限制。
以下是对我的应用程序需要执行的操作的简短描述:
-
用户开始播放歌曲列表。
-
在播放过程中,应用程序每5-10秒从后端获取一个新的歌曲列表,并将其设置为新的歌曲队列。这意味着它是相当动态的手段下发挥。
现在,当在回放过程中设置新队列时,
真的很不擅长。如果我打电话
设置队列()
然后什么也不会发生,老的队伍会留下来。不过,如果我打电话
play()
或
prepareToPlay()
设置队列()
然后将停止当前播放,并开始播放新队列的第一首歌曲。这不是我想要的,我需要更改“幕后”队列,以便当用户在应用程序或iOS锁定屏幕中点击“跳到下一个”时,新歌曲正在播放。所以我用
-工作正常,当前播放没有中断。另类呼叫
perform()
所以目前我只看到一个选项-手动存储一个状态,它将告诉你这是不是第一次运行。如果是,那么打电话
设置队列()
,否则调用
. 也没有办法让当前队列检查自己是否为空。
关于
播放()
播放()
设置队列()
设置队列()
播放()
,它什么也没做,但是每次我按下pause/play时,由于前面的“silent”,播放器都会跳到下一首歌
. 我不得不实施另一个解决办法
player.currentPlaybackRate = 1
player.play()
,看起来不太好。如果所有这些都被记录在案,那就太好了。