Это возможно, но не без толики с пропуском при воспроизведении - видео автоматически остановится, но так как ваше приложение в основном по-прежнему работает в фоновом режиме вы можете запустить видео снова вручную:
В вашем вид контроллера, который управляет игрок добавить:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidEnterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil];
Затем добавьте следующий метод:
- (void)applicationDidEnterBackground:(NSNotification*)note {
if (!_callCenter.currentCalls && self.currentPlayer.continuePlaybackInBackground == YES) {
double delayInSeconds = 0.1;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
// call play on your MPMoviePlayerController
});
}
}
я обнаружил, что я должен был использовать dispatch_after
, потому что в противном случае он попытался бы запустить воспроизведение фильма еще до того, как ОС остановится.
Вы можете воспроизводить только аудиофайлы (mp3, wav и т. Д.) И не воспроизводить видеофайлы в фоновом режиме. Воспроизведение видео в фоновом режиме не имеет смысла. Какой смысл, если их никто не увидит? Если вы пытаетесь просто воспроизвести звук, вам нужно либо получить звуковой файл из фильма, либо воспроизвести статический аудиофайл. –
Ya, я знаю, это не имеет смысла. Это просто наш поток видео/звука - поток HLS, насколько я знаю, я не могу просто взять звук из этого. – Jonovono
Эта ссылка показывает, как вы можете воспроизводить аудио в фоновом режиме. http://stackoverflow.com/questions/15540726/ios-mpmovieplayercontroller-playing-audio-in-background – user2874682