Запуск AVAssetExportSession в фоновом режиме - PullRequest
9 голосов
/ 24 марта 2012

Мое приложение выполняет некоторую обработку, и в какой-то момент ему нужно вызвать AVAssetExportSession.

Если сессия уже началась, а затем я запускаю приложение в фоновом режиме, все завершается нормально. Однако, если я справлюсь с приложением, прежде чем позвонить exportAsynchronouslyWithCompletionHandler. Я получаю эту ошибку:

AVAssetExportSessionStatusFailed Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo=0x1e550db0 {NSLocalizedFailureReason=An unknown error occurred (-12985), NSUnderlyingError=0x1e574910 "The operation couldn’t be completed. (OSStatus error -12985.)", NSLocalizedDescription=The operation could not be completed}

Можно ли запустить AVAssetExportSession в фоновом режиме?

Ответы [ 3 ]

5 голосов
/ 01 июля 2012

Это на самом деле невозможно из-за того, что вы не можете начать новый поток в фоновом режиме.Если вы хотите сделать много вещей в фоновом режиме, вам придется запускать их все асинхронно прямо перед фоном приложения.

4 голосов
/ 26 января 2013

Вы можете начать AVAssetExportSession в фоновом режиме. Единственные ограничения в AVFoundation для выполнения работы в фоновом режиме, это использование AVVideoCompositions или AVMutableVideoCompositions. AVVideoCompositions используют графический процессор, и графический процессор нельзя использовать в фоновом режиме.

0 голосов
/ 05 сентября 2014

Я нашел решение, которое работает для аудио, я не пробовал видео

Если вы обновили настройку «Фоновые режимы» в возможностях проекта, чтобы включить аудио.Это позволит экспортировать.

Предназначен для воспроизведения музыки в фоновом режиме.

...