检测 Apple Music 歌曲何时播放完毕

Detecting When An Apple Music Song Has Finished Playing

我正在编写一个应用程序,它需要在歌曲播放完毕后执行一个操作。我正在使用 MPMusicPlayerController.applicationQueuePlayer() 作为我的音乐播放器来播放用户的苹果音乐。我想知道是否有一种方法可以检测用户歌曲何时播放完毕或队列何时结束(两者都会有帮助)

MPMusicPlayerController 有一个实例方法 beginGeneratingPlaybackNotifications()。将向订阅者发送三个 Notification

  1. MPMusicPlayerControllerNowPlayingItemDidChange
  2. MPMusicPlayerControllerPlaybackStateDidChange
  3. MPMusicPlayerControllerVolumeDidChange

要检测歌曲播放或队列何时结束,您可以使用 MPMusicPlayerControllerNowPlayingItemDidChange

收到该通知后,请检查 MPMusicPlayerControllers nowPlayingItem(请参阅 Documentation)。如果歌曲播放完毕并播放另一首 nowPlayingItem 将会发生变化。如果整个队列结束并且没有任何播放,nowPlayingItem 将具有值 nil.