我们目前正在将Deezer iOS SDK
集成到播客播放器应用中。
我们正在通过DZRPlayer
播放专辑(DZRAlbum),并且在应用程序内以及当应用程序处于后台而不锁定屏幕的情况下,播放效果都很好。
但是一旦我们激活了锁定屏幕,曲目就会继续播放约10-30秒,然后停止播放。
我们还将Spotify和Apple Music集成到了我们的应用程序中,并且当我们锁定屏幕时,两者都可以继续播放。
为使音频在后台保持活动状态,我们目前正在执行以下操作:
1-我们已在应用程序功能中将我们的应用程序标记为在后台播放音频
Capabilities -> Background modes -> 'Audio, AirPlay and Picture in Picture' is checked
2-我们正在使用AVAudioSession来标记何时开始/停止播放音频,方法是:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
和
[[AVAudioSession sharedInstance] setActive:NO error:nil];
3-当应用进入后台时,我们正在appDelegate中启动后台任务:
- (void)applicationDidEnterBackground:(UIApplication *)application {
UIBackgroundTaskIdentifier bgTask = 0;
UIApplication *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
}];
}
由于 Spotify的背景和锁定屏幕播放没有中断(通过Spotify iOS SDK)和Apple Music播放(通过MPMusicPlayerController.applicationMusicPlayer)而不会中断,我不是确定是什么原因导致Deezer中断。
有什么想法吗?
这已在iOS 11
和iOS 12
上进行了测试。