我正在写一个音乐播放应用程序,它在每首歌曲之间执行任务。即使应用程序在后台,我也需要这样做,所以我需要知道歌曲何时完成。目前我正在使用AVPlayer
即使应用程序在后台也发送通知,但无法播放用户的iCloud中的歌曲。 MPMediaPlayerController
可播放iCloud歌曲,但在应用处于后台时不会发送通知(这对我的应用至关重要)。
那么,有没有人知道
AVPlayer
播放iCloud歌曲或MPMusicPlayerController
播放的歌曲何时完成?答案 0 :(得分:2)
您是否尝试过使用NSNotification Center和这两个观察者之一?
MPMusicPlayerControllerPlaybackStateDidChangeNotification
或MPMusicPlayerControllerNowPlayingItemDidChangeNotification
。
此外,您需要在beginGeneratingPlaybackNotifications()
或MPMusicPlayerController.applicationMusicPlayer()
MPMusicPlayerController.systemMusicPlayer()
答案 1 :(得分:1)
以@Kim的答案为基础。您可以使用div
并添加NSNotificationCenter
。我为我的应用程序使用了ObserverEvents
类,并且我已经注册了应用程序以使用MPMusicPlayerController
属性,因此我可以在不同的事件期间调用某些方法。
例如,在退出并终止应用程序进程时使用NSNotificationCenter
属性时,音乐会继续播放。如果用户想要停止音乐,当他们exityou可以称之为:
SystemMusicPlayer
您看到的-(void) registerMediaPlayerNotifications {
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter addObserver:self
selector:@selector(stopMusicWhenApplicationQuits)
name:UIApplicationWillTerminateNotification
object:[UIApplication sharedApplication]];
[musicPlayer beginGeneratingPlaybackNotifications];
}
是应用程序收到@selector
事件时将触发的方法。您可以在UIApplicationWillTerminateNotification
中说出
musicPlayer
因此,对于您遇到的问题,您仍然可以使用[self.musicPlayer stop];
框架,使用MediaPlayer
类并使用MPMusicPlayerController
属性在不同的应用程序运行时阶段调用各种方法。
希望这有帮助,如果您有任何其他问题,请与我们联系。