我正在编写一个需要在歌曲播放完毕后制作动作的应用。我使用MPMusicPlayerController.applicationQueuePlayer()作为我的音乐播放器来播放用户的苹果音乐。我想知道是否有一种方法可以检测用户歌曲播放完毕或队列结束时(或者有用)
答案 0 :(得分:6)
MPMusicPlayerController
有一个实例方法beginGeneratingPlaybackNotifications()
。有三个Notification
将发送给订阅者:
MPMusicPlayerControllerNowPlayingItemDidChange
MPMusicPlayerControllerPlaybackStateDidChange
MPMusicPlayerControllerVolumeDidChange
要检测播放歌曲或队列的时间,您可以使用MPMusicPlayerControllerNowPlayingItemDidChange
。
收到该通知后,请检查MPMusicPlayerController
s nowPlayingItem
(请参阅Documentation)。如果歌曲结束而另一首歌曲播放nowPlayingItem
将会改变。如果整个队列完成且没有播放,nowPlayingItem
将具有值nil
。