iphone - 检测歌曲何时停止播放

标签 iphone ios objective-c mpmusicplayercontroller

这似乎很基础,但是当歌曲结束时如何执行功能?我一次播放一个项目,当它结束时(或者,如果可能的话,在结束前10秒),我想调用一个从Web服务获取下一首歌曲的函数。

我认为它是在MPMusicPlayerControllerPlaybackStateDidChangeNotification通知中处理的,但不确定。为了进行记录,仅在歌曲结束(不暂停)时才需要此通知。

我所拥有的就是上面观察者的功能:

- (void) handle_PlaybackStateChanged: (id) notification
{
    MPMusicPlaybackState playbackState = [musicPlayer playbackState];
}

我如何确定歌曲是否结束?另外,当歌曲还剩10秒时,是否可以创建观察者/功能?

最佳答案

收到通知后,您可以查找MPMusicPlayerController的playbackState属性。

至于在歌曲结束前10秒钟执行功能,您可以设置一个计时器,以根据歌曲的长度减去10秒钟来在将来执行,如果用户更改playbackState或选择一个,则需要取消该计时器不同的歌曲。

关于iphone - 检测歌曲何时停止播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18497500/

相关文章:

iphone - 为什么在 switch...case 中不省略 "case"在 XCode 中抛出错误或警告?

ios - 在 swift iOS 9 中以编程方式将行添加到静态 TableView

objective-c - 无法更改 UITableView 中的单元格大小

objective-c - 好奇号: executing code in another thread inside the same method?

iphone - 我可以安全地将 UInt32 存储到 NSInteger 吗?

iphone - 保留授权对象

iphone - 如何在 iOS 5 中运行多个循环和条件检查?

iphone - 自动调整 subview 大小 : resize seems to happen absolute instead of proportional

iphone - 开发者拒绝状态?

c# - Unity AdMob 广告未显示