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