2012-03-23 18 views
9

La mia app esegue qualche elaborazione e ad un certo punto deve chiamare un AVAssetExportSession.Avvio di AVAssetExportSession in background

Se la sessione è già stata avviata e quindi eseguo lo sfondo dell'applicazione, tutto viene completato normalmente. Tuttavia, se faccio lo sfondo dell'app prima di chiamare exportAsynchronouslyWithCompletionHandler. Ottengo questo errore:

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}

E 'possibile avviare un AVAssetExportSession in background?

+0

Non riesco a farlo funzionare in background. Anche se la sessione viene avviata prima di andare in secondo piano, viene immediatamente interrotta. Stai usando _backgroundTaskId = [[Applicazione condivisa UIA] beginBackgroundTaskWithExpirationHandler:^{... per farlo funzionare in background? – eddy

+0

@eddy Sì, sto usando qualcosa del genere – Dex

+0

Ho lo stesso problema. C'è qualche soluzione? –

risposta

5

In realtà non è possibile a causa del fatto che non è possibile avviare un nuovo thread in background. Se vuoi fare un sacco di cose in background devi avviarle tutte in modo asincrono proprio prima degli sfondi delle app.

4

È possibile avviare AVAssetExportSession in background. Le uniche limitazioni in AVFoundation per l'esecuzione di lavori in background, utilizzano AVVideoCompositions o AVMutableVideoCompositions. AVVideoCompositions utilizza la GPU e la GPU non può essere utilizzata in background.

+0

Non riesco a esportare l'audio in background hai un campione o un link? –

-1

ho trovato una soluzione che funziona per l'audio, non ho provato il video

Se si aggiornano i "Modi di sfondo" impostazione nelle capacità del progetto di includere audio. Permetterà l'esportazione.

Questo è inteso per la riproduzione di musica in background.

+0

I * think * iOS 8 potrebbe anche consentire l'elaborazione della GPU anche in background. – Dex

+0

Funziona su IOS 7 e 8, non ho testato su versioni precedenti –

+0

Non è stato sicuramente quando ho aperto questa domanda;) Che dolore! – Dex

Problemi correlati