检测Apple音乐歌曲播放完毕

Ric*_*hes 3 mpmusicplayercontroller ios swift apple-music apple-musickit

我正在编写一个需要在歌曲播放完毕后制作动作的应用.我正在使用MPMusicPlayerController.applicationQueuePlayer()作为我的音乐播放器播放用户的苹果音乐.我想知道是否有一种方法可以检测用户歌曲何时播放完毕或队列结束时(或者有用)

nag*_*rrr 6

MPMusicPlayerController有一个实例方法beginGeneratingPlaybackNotifications().将有三个Notifications将交付给订阅者:

  1. MPMusicPlayerControllerNowPlayingItemDidChange
  2. MPMusicPlayerControllerPlaybackStateDidChange
  3. MPMusicPlayerControllerVolumeDidChange

要检测播放歌曲或队列的时间是否已完成,您可以使用MPMusicPlayerControllerNowPlayingItemDidChange.

收到该通知后,请检查MPMusicPlayerControllers nowPlayingItem(请参阅文档).如果歌曲结束而播放另一首歌nowPlayingItem则会改变.如果整个队列完成并且没有播放,nowPlayingItem则会有一个值nil.