2013-06-24 162 views
2

我正在創建一個視頻文件,並在上面創建圖像動畫。我跟蹤導出進度和狀態,但導出進度達到1.0後,不會調用完成回調,並且導出狀態仍等於「AVAssetExportSessionStatusExporting」。AVAssetExportSession:導出完成後未調用完成回調

AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:movieAsset presetName:AVAssetExportPresetMediumQuality]; 
self.session = exportSession; 
[exportSession release]; 
session.videoComposition = self.videoComposition; 
NSString *filePath = NSTemporaryDirectory(); 
NSString *fileName = [[@"Output_" stringByAppendingString:number] stringByAppendingString:@".mov"]; 
filePath = [filePath stringByAppendingPathComponent:fileName]; 
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) { 
    [[NSFileManager defaultManager] removeItemAtPath:filePath error:nil]; 
} 
session.fileLengthLimit = 1024 * 1024 * 10; 
session.outputURL = [NSURL fileURLWithPath:filePath]; 
session.outputFileType = AVFileTypeQuickTimeMovie; 
[session exportAsynchronouslyWithCompletionHandler:^{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [self exportDidFinish]; 
    }); 
}]; 

它實際上是創建一個輸出文件,它是不可讀的。我想看到的是一些錯誤消息,但導出會話的error屬性保持空白。

+0

所以,你收到一些回調與AVAssetExportSessionStatusExporting?你檢查所有的出口狀態嗎? – birukaze

+0

我有一個重複計時器,它將會話的'progress','status'和'error'屬性記錄到控制檯。但是上述代碼中的函數'exportDidFinish'永遠不會被調用。 '進度'達到1.0後'status'等於'AVAssetExportSessionStatusExporting' – pckill

回答

0

顯然,視頻文件本身存在問題。我從Apple samples下載了一個示例視頻sample_iPod.m4v,並且所有內容均按預期工作。奇怪的是我的文件和樣本都是用H.264編碼的。是什麼讓我感到困惑的是,未顯示任何錯誤 - 無論是在控制檯也不AVExportSession對象error屬性:

2013-07-02 12:56:06.521 test[2330:907] Export running - [progress: 0.838969, error: nil]

2013-07-02 12:56:09.020 test[2330:907] Export running - [progress: 0.932188, error: nil]

2013-07-02 12:56:11.519 test[2330:907] Export running - [progress: 0.999630, error: nil]

2013-07-02 12:56:14.023 test[2330:907] Export running - [progress: 1.000000, error: nil]

2013-07-02 12:56:16.519 test[2330:907] Export running - [progress: 1.000000, error: nil]

...

+0

我遇到同樣的問題,但只在IOS7上。然而,我的文件被導出,是我生成的一個視頻文件,因此IOS7發生了損壞。你知道爲什麼文件被損壞嗎?我可以將輸出更改爲不同的輸出文件格式,並且偶爾會工作。 – kungfoo

+0

不,我不知道視頻文件有什麼問題,對不起。 – pckill