【问题标题】:sessionDidEndPlayback not being calledsessionDidEndPlayback 没有被调用
【发布时间】:2012-12-16 11:38:30
【问题描述】:

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

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

}

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

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

}

【问题讨论】:

  • 我有同样的问题,奇怪的是你今天问这个。服务有问题还是我们做错了什么?
  • 所以,该方法应该看起来像这样-(void)sessionDidEndPlayback:(id <SPSessionPlaybackProvider>)aSession {},但它仍然不适合我。
  • 我认为我们做错了什么,它从来没有为我工作过。我可能错误地实现了 SPSession 委托,因为来自该委托的其他一些回调也不起作用。我已经尝试了一些事情,但仍然没有深入了解它。

标签: spotify cocoalibspotify-2.0


【解决方案1】:

sessionDidEndPlayback:SPSessionPlaybackDelegate 协议的一部分,而不是SPSessionDelegate。无论哪个对象被设置为会话对象的playbackDelegate,都会调用它。

然而,如果您使用SPPlaybackManager 进行音频播放,则该类会在您创建它时将自己设置为会话的playbackDelegate,并要求它保持这种状态。

目前,SPPlaybackManager 不提供曲目结尾的委托方法,因此在当前版本的 CocoaLibSpotify 中执行此操作的方法是观察 SPPlaybackManagercurrentTrack 属性 — 当它变为 @987654330 @,你知道播放已经结束了。

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

【讨论】:

  • 你能告诉我在哪里可以找到playbackManagerIsFinishingPlayback 方法吗?找了好久都没找到
  • 正如答案所说,它位于 gitHub 上项目的 dev 分支上。它还没有稳定的版本。
猜你喜欢
  • 1970-01-01
  • 2011-11-15
  • 1970-01-01
  • 1970-01-01
  • 2018-11-25
  • 2019-03-31
  • 2015-03-28
  • 2012-12-04
  • 2016-06-10
相关资源
最近更新 更多