我已经包含了 SPSessionPlaybackDelegate 并包含了该方法:
-(void)sessionDidEndPlayback:(SPSession *)aSession {
NSLog(@"song ended");
}
然而,当歌曲自然结束播放时,这不会被调用。我应该做些什么来实现这个委托吗?其他此类方法正在适当的时候被调用:
-(void)sessionDidLoginSuccessfully:(SPSession *)aSession; {
}
    我已经包含了 SPSessionPlaybackDelegate 并包含了该方法:
-(void)sessionDidEndPlayback:(SPSession *)aSession {
NSLog(@"song ended");
}
然而,当歌曲自然结束播放时,这不会被调用。我应该做些什么来实现这个委托吗?其他此类方法正在适当的时候被调用:
-(void)sessionDidLoginSuccessfully:(SPSession *)aSession; {
}
    sessionDidEndPlayback:是SPSessionPlaybackDelegate协议的一部分,而不是SPSessionDelegate. 它会在设置为playbackDelegate会话对象的任何对象上调用。
但是,如果您SPPlaybackManager用于音频播放,则该类会playbackDelegate在您创建它时将其设置为会话,并要求它保持这种状态。
目前,SPPlaybackManager没有为轨道结束提供委托方法,因此在当前版本的 CocoaLibSpotify 中执行此操作的方法是观察SPPlaybackManager的currentTrack属性——当它发生时nil,你知道播放已经结束。
CocoaLibSpotify的dev分支刚刚将该方法添加playbackManagerIsFinishingPlayback:到SPPlaybackManager的委托协议中。