【问题标题】:Detecting When An Apple Music Song Has Finished Playing检测 Apple Music 歌曲何时播放完毕
【发布时间】:2018-01-03 09:11:24
【问题描述】:
我正在编写一个应用程序,该应用程序需要在歌曲播放完毕后执行一个动作。我使用 MPMusicPlayerController.applicationQueuePlayer() 作为我的音乐播放器来播放用户的苹果音乐。我想知道是否有一种方法可以检测用户歌曲何时播放完毕或队列何时结束(两者都有帮助)
【问题讨论】:
标签:
ios
swift
mpmusicplayercontroller
apple-music
apple-musickit
【解决方案1】:
MPMusicPlayerController 有一个实例方法beginGeneratingPlaybackNotifications()。将向订阅者发送三个Notifications:
MPMusicPlayerControllerNowPlayingItemDidChange
MPMusicPlayerControllerPlaybackStateDidChange
MPMusicPlayerControllerVolumeDidChange
要检测歌曲播放或队列何时结束,您可以使用MPMusicPlayerControllerNowPlayingItemDidChange。
当您收到该通知时,请检查MPMusicPlayerControllers nowPlayingItem(请参阅Documentation)。如果歌曲完成并播放另一首歌曲,nowPlayingItem 将发生变化。如果整个队列完成并且没有播放内容,nowPlayingItem 将具有值 nil。