2012-03-23 15 views
9

Mi aplicación realiza algún procesamiento y en algún momento necesita llamar a AVAssetExportSession.Iniciando AVAssetExportSession en el Fondo

Si la sesión ya ha comenzado y luego hago un fondo de la aplicación, todo se completa normalmente. Sin embargo, si guardo el fondo de la aplicación antes de llamar al exportAsynchronouslyWithCompletionHandler. Me sale este error:

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}

¿Es posible iniciar una AVAssetExportSession en el fondo?

+0

No puedo ejecutarlo en segundo plano. Incluso si la sesión se inicia antes de pasar a segundo plano, se interrumpe inmediatamente. ¿Está utilizando _backgroundTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{... para que se ejecute en segundo plano? – eddy

+0

@eddy Sí, estoy usando algo así – Dex

+0

Tengo el mismo problema. ¿Hay alguna solución? –

Respuesta

5

En realidad no es posible debido a que no puede iniciar un nuevo hilo en el fondo. Si desea hacer muchas cosas en segundo plano, deberá iniciarlas de manera asincrónica justo antes de los fondos de la aplicación.

4

Puede comenzar AVAssetExportSession en segundo plano. Las únicas limitaciones en AVFoundation para realizar el trabajo en segundo plano, son usar AVVideoCompositions o AVMutableVideoCompositions. AVVideoCompositions están usando la GPU, y la GPU no se puede usar en segundo plano.

+0

No puedo exportar audio en segundo plano ¿tiene una muestra o un enlace? –

-1

He encontrado una solución que funciona para audio, no he probado vídeo

Si actualiza los "Modos de fondo" en la configuración de las capacidades del proyecto para incluir audio. Permitirá la exportación.

Esto está destinado a reproducir música en segundo plano.

+0

I * think * iOS 8 podría incluso ahora permitir el procesamiento de GPU en segundo plano también. – Dex

+0

Esto funciona tanto en iOS 7 como en 8, no he probado en versiones anteriores –

+0

Definitivamente no lo hice cuando abrí esta pregunta;) ¡Qué dolor fue! – Dex