2012-03-23 10 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を使用しており、GPUをバックグラウンドで使用することはできません。あなたがオーディオを含めるには、プロジェクトの能力に設定あなたの「バックグラウンドモード」を更新した場合

+0

バックグラウンドでオーディオをエクスポートできませんサンプルまたはリンクがありますか? –

-1

私はオーディオのために働く解決策を発見した、私はビデオ

を試していません。それは輸出を許可します。

これはバックグラウンドで音楽を再生するためのものです。

+0

I think * iOS 8では、バックグラウンドでもGPU処理が可能になることさえあります。 – Dex

+0

これはIOS 7と同様に8でも動作しますが、以前のバージョンでテストしていません –

+0

この質問を開いたときは間違いありませんでした; – Dex

関連する問題