我有一些使用AVExportSession的相關問題。我很清楚,我可能會嘗試這個錯誤,但嘗試了幾個解決方案無濟於事。完成後AVExportSession更改視圖
我使用AVExportSession導出組合,然後使用完成處理程序在完成後觸發其他代碼(通常應在3秒內)。問題出現在我想完成視圖更改時。例如,我在觸發音頻導出的模式視圖中有一個按鈕,但我希望隨後在完成時關閉視圖。我收到的錯誤信息非常明顯 - 「這可能是從輔助線程調用UIKit的結果。」
NSURL *exportURL = [NSURL fileURLWithPath:saveSong];
exportSession.outputURL = exportURL;
exportSession.outputFileType = @"com.apple.m4a-audio";
[exportSession exportAsynchronouslyWithCompletionHandler:^{
if (AVAssetExportSessionStatusCompleted == exportSession.status) {
NSLog(@"AVAssetExportSessionStatusCompleted");
[[NSNotificationCenter defaultCenter]
postNotificationName:@"end"
object:self];
} else if (AVAssetExportSessionStatusFailed == exportSession.status) {
// a failure may happen because of an event out of your control
// for example, an interruption like a phone call comming in
// make sure and handle this case appropriately
NSLog(@"AVAssetExportSessionStatusFailed");
} else {
NSLog(@"Export Session Status: %d", exportSession.status);
}
}];
我目前的嘗試涉及發送NSNotification關閉視圖,試圖跳轉到主線程。
非常抱歉,如果這看起來不清楚 - 我在尋找解決方案的問題的一部分是在表達相當多的錯誤。我希望通過在描述中發佈我的失敗嘗試,有人可能有完全正確的問題來問我,從而找到答案的線索!
這也是我想解決的另一個問題的分支。當我開始導出時,我取消隱藏了動畫UIActivityView,但是當完成時隱藏,大約在完成之後20秒(NSLog-ed)UIActivityView最終隱藏了