1

我已经包含了 SPSessionPlaybackDelegate 并包含了该方法:

-(void)sessionDidEndPlayback:(SPSession *)aSession {
NSLog(@"song ended");

}

然而,当歌曲自然结束播放时,这不会被调用。我应该做些什么来实现这个委托吗?其他此类方法正在适当的时候被调用:

-(void)sessionDidLoginSuccessfully:(SPSession *)aSession; {

}
4

1 回答 1

3

sessionDidEndPlayback:SPSessionPlaybackDelegate协议的一部分,而不是SPSessionDelegate. 它会在设置为playbackDelegate会话对象的任何对象上调用。

但是,如果您SPPlaybackManager用于音频播放,则该类会playbackDelegate在您创建它时将其设置为会话,并要求它保持这种状态。

目前,SPPlaybackManager没有为轨道结束提供委托方法,因此在当前版本的 CocoaLibSpotify 中执行此操作的方法是观察SPPlaybackManagercurrentTrack属性——当它发生时nil,你知道播放已经结束。

CocoaLibSpotify的dev分支刚刚将该方法添加playbackManagerIsFinishingPlayback:SPPlaybackManager的委托协议中。

于 2013-01-03T10:06:58.337 回答