我正在使用Spotifyapi在Swift中构建一个个人应用程序,它需要做的一件事是在播放的歌曲结束后播放另一首歌曲。我有歌曲的ID都按照我想要的方式排序,我可以成功地播放它们。
我只需要知道是否有办法知道一首歌何时结束,这样我就知道什么时候开始播放下一首歌或做其他事情(每次歌曲结束时,我都会发出HTTP请求出于其他原因(。
您可以指出我的任何建议或任何资源都非常有帮助!无法通过谷歌搜索找到答案:(
Spotify API:有没有办法确定歌曲何时播放完毕?
这是一个类似的问题,但它是针对javascript的,从未得到回答。
您可以实现SPTAudioStreamingPlaybackDelegate
协议,设置 Spotify 播放器的 playbackDelegate
属性并实现didStopPlayingTrack
。示例类如下所示:
class MyClass: NSObject, SPTAudioStreamingPlaybackDelegate {
var player = SPTAudioStreamingController.sharedInstance()
func setup() { // Whatever function does the setup.
player?.playbackDelegate = self
}
func audioStreaming(_ audioStreaming: SPTAudioStreamingController!, didStopPlayingTrack trackUri: String!) {
playNextSong() // Or whatever else you wish to do here.
}
func playNextSong() {
// ...
}
}
(请注意,设置函数可以是任何内容 - 例如,如果观察播放器的对象是视图控制器而不是子类化NSObject
,则viewDidLoad
。
由于didStopPlayingTrack
是一个委托函数,Spotify SDK 应该在被调用时进行管理(更具体地说,播放器应该在其委托对象上调用它(——只要设置了玩家的委托,你就不需要自己调用它。