我已经包含了 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
的委托协议中。