Tôi đã đấu tranh với vấn đề này trong hơn một tuần. Tôi hy vọng ai đó nhìn thấy những gì tôi đang làm sai. Tôi đang cố sử dụng phương thức finishWritingWithCompletionHandler: vì phương thức finishWriting hiện không được chấp nhận nữa. Tôi đã không có bất kỳ thành công bằng cách sử dụng phương pháp mới. Nó không thành công với một lỗi không xác định -11800. Tôi có thể lưu tập tin MOV của tôi bằng cách sử dụng phương pháp không được chấp nhận tốt, nhưng khi tôi tạo ra tương đương với phương pháp mới nó không thành công mỗi lần.AVAssetWriter finishWritingWithCompletionHandler lỗi với lỗi không xác định
Đây là mã ban đầu của tôi:
dispatch_async(movieWritingQueue, ^{
if ([self.assetWriter finishWriting]) {
self.assetWriterAudioIn = nil;
self.assetWriterVideoIn = nil;
//[assetWriter release]; ARC will not allow this line.
self.assetWriter = nil;
self.readyToRecordVideo = NO;
self.readyToRecordAudio = NO;
[self.delegate movieReadyToSaveForMovieProcessor:self];
}
else {
[self displayError:[assetWriter error]];
dispatch_async(dispatch_get_main_queue(), ^{
[self resumeCaptureSession];
});
}
}];
phương pháp mới của tôi là như sau:
dispatch_async(movieWritingQueue, ^{
[self.assetWriter finishWritingWithCompletionHandler:^{
if (self.assetWriter.status != AVAssetWriterStatusFailed && self.assetWriter.status == AVAssetWriterStatusCompleted) {
self.assetWriterAudioIn = nil;
self.assetWriterVideoIn = nil;
self.assetWriter = nil;
self.readyToRecordAudio = NO;
self.readyToRecordVideo = NO;
[self.delegate movieReadyToSaveForMovieProcessor:self];
} else {
[self displayError:self.assetWriter.error];
dispatch_async(dispatch_get_main_queue(), ^{
[self resumeCaptureSession];
});
}
}];
}];
Tôi không nghĩ rằng tôi đã bỏ lỡ bất cứ điều gì và tôi không nhận được nhiều từ các lỗi nó ném. Chúng tôi rất trân trọng bất kỳ sự giúp đỡ nào.
Cảm ơn, Rob
Tôi đánh dấu nó là hoàn thành và nó vẫn đang bị treo ... – SpaceDog