我正在使用MPMusicPlayerController applicationMusicPlayer播放苹果音乐。(苹果音乐不支持AVPlayer和AVAudioPlayer。)
在后台时,我需要知道歌曲何时结束,以便播放下一首歌曲。不幸的是,当应用程序在后台时,不会被激活。
所以我创建了一个后台任务,使用beginBackgroundTaskWithExpirationHandler,它每秒触发一次NSTimer来检查歌曲的结尾。我设置了音频背景模式,但我的任务仍然只有3分钟。我的理解是,如果我使用音频背景模式,我的任务将获得无限的时间。这不是真的吗?如果不是,我该如何处理?当然,其他人也遇到过这种情况。
发布于 2017-06-23 07:15:18
供将来参考:
我发现MPMusicPlayerController从不使用音频UIBackgroundMode,无论是使用applicationMusicPlayer还是systemMusicPlayer。所以你永远不会得到超过3分钟的后台时间。但是,AVAudioPlayer确实支持音频背景模式。所以我的(丑陋的)解决方案是在后台使用AVAudioPlayer循环一个静默的MP3。我假设苹果不会抗议,这似乎是对无声音频的合法使用。请注意,要同时播放AVAudioPlayer和MPMusicPlayerController,您必须为AVAudioSession设置AVAudioSessionCategoryOptionMixWithOthers。
https://stackoverflow.com/questions/44687912
复制相似问题