2012-03-23 3 views
9

Мое приложение выполняет некоторую обработку и в какой-то момент ему нужно вызвать AVAssetExportSession.Запуск 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 в фоновом режиме?

+0

Я не могу заставить его работать в фоновом режиме вообще. Даже если сеанс запускается перед входом в фоновый режим, он немедленно прерывается. Вы используете _backgroundTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{... чтобы запустить его в фоновом режиме? – eddy

+0

@eddy Да, я использую что-то вроде этого – Dex

+0

У меня такая же проблема. Есть ли решение? –

ответ

5

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

4

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

+0

Я не могу экспортировать аудио в фоновом режиме, у вас есть образец или ссылка? –

-1

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

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

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

+0

I * think * iOS 8 может даже разрешить обработку GPU в фоновом режиме. – Dex

+0

Это работает на IOS 7, а также 8, я не тестировал предыдущие версии –

+0

Это определенно не было, когда я открыл этот вопрос;) Какая боль была! – Dex

Смежные вопросы