В настоящее время мы интегрируем Deezer iOS SDK
в наше приложение проигрывателя подкастов.
Мы воспроизводим альбомы (DZRAlbum) через DZRPlayer
, и воспроизведение отлично работает в приложении и когда приложение находится вфон без блокировки экрана.Однако как только мы активируем экран блокировки, трек продолжает воспроизводиться в течение 10-30 секунд, а затем останавливается.
Мы также интегрировали Spotify и Apple Music в наше приложение, и обаиз них продолжают играть, когда мы заблокируем экран.
Чтобы сохранить наше аудио активным в фоновом режиме, в настоящее время мы делаем следующее:
1 - мы пометили наше приложение как воспроизводящее аудио в фоновом режиме в приложении. Возможности
Возможности -> Фоновые режимы -> Проверено «Аудио, AirPlay и картинка в картинке»
2 - Мы используем AVAudioSessionпомечать, когда мы запускаем / останавливаем воспроизведение звука, используя:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
и
[[AVAudioSession sharedInstance] setActive:NO error:nil];
3 - мы запускаем фоновую задачу в нашем приложении Deegate, когдаприложение переходит в фоновый режим:
- (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
.