Я искал ответ в течение 2 дней, но я не могу показаться, чтобы получить это право ...Остановка записи камеры и сохранить файл при входе фона
У меня есть пример приложение, которое записывает аудио и видео с устройства с использованием AVCaptureSession и AVCaptureMovieFileOutput.
Когда я начала записи я называю:
[self.movieFileOutput startRecordingToOutputFileURL:outputURL recordingDelegate:self];
И начинает запись в файл. Если я еще раз нажать на кнопку останавливает запись
[self.movieFileOutput stopRecording];
Все работает хорошо, но когда я вхожу фон (входящий вызов или HOME нажмите) Я получаю сообщение об ошибке в методе делегата: didFinishRecordingToOutputFileAtURL
Мое желаемое действие должно сохранять или заполнять файл при вводе фона. Если я вызову stopRecording на «applicationDidEnterBackground», он войдет в фон перед вызовом applicationDidEnterBackground. При входе в активное состояние он вызывается .... и генерирует ошибку и оставляет поврежденный файл фильма ...
Кажется, у него нет достаточно времени для сохранения файла.
Что мне здесь не хватает?
Это моя ошибка
Error Domain=AVFoundationErrorDomain Code=-11818 "Recording Stopped" UserInfo=0x17594e20 {NSLocalizedRecoverySuggestion=Stop any other actions using the recording device and try again., NSUnderlyingError=0x175d3500 "The operation couldn’t be completed. (OSStatus error -16133.)", NSLocalizedDescription=Recording Stopped}
AVErrorSessionWasInterrupted = -11818
Я также попробовал приложение Apple AVDemo, и он также дает ту же ошибку. Кажется, что ошибка все равно. Разница в том, что в коде Яблоков у них есть время для выполнения расширенного кода с использованием UIBackgroundTaskIdentifier – Michiel