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