複数のビデオをマージする必要がある 1 つのアプリケーションに取り組んでいます。マージされたビデオをエクスポートするために AVExportSession を使用しています。ビデオをエクスポートするための進行状況バーも表示しています。正常に動作しています。
この問題は、画面をロックするか、アプリケーションをバックグラウンド モードにすると発生します。今回は、エクスポートが進行中の場合、アプリケーションをバックグラウンド モードにした直後に失敗します。バックグラウンドタスクも使用しようとしました。以下のコードを確認してください。
if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]) {
if ([[UIDevice currentDevice] isMultitaskingSupported]) {
UIApplication *application = [UIApplication sharedApplication];
__block UIBackgroundTaskIdentifier background_task; /
background_task = [application beginBackgroundTaskWithExpirationHandler: ^ {
[application endBackgroundTask: background_task];
background_task = UIBackgroundTaskInvalid;
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//START EXPORT SESSION
[exporter exportAsynchronouslyWithCompletionHandler:^
{
dispatch_async(dispatch_get_main_queue(), ^{
[self exportDidFinish:exporter];
});
}];
NSLog(@"Running in the background!");
[application endBackgroundTask: background_task];
background_task = UIBackgroundTaskInvalid;
});
}
}
しかし、これはうまくいかないようです。私は何を間違っていますか?どんな助けでも大歓迎です。
バックグラウンドで AVExportSession を実行できることはわかっています。アプリ ストアでこれを実行できるアプリを多数見つけたからです。
前もって感謝します。