AVAssetWriter finishWritingWithCompletionHandler的错误,我一直在努力解决这个问题了一个多星期。我希望有人看到我做错了什么。我试图使用finishWritingWithCompletionHandler:方法,因为finishWriting方法现在已经过时。我没有使用这种新方法取得任何成功。它失败并出现未知错误-11800。我可以使用弃用的方法保存我的MOV文件,但是当我使用新方法创建等价物时,它每次都会失败。与未知错误
这里是我的原代码:
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];
});
}
}];
我的新方法如下:
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];
});
}
}];
}];
我不认为我错过了什么,我没有从错误中也越来越多抛出。任何帮助将不胜感激。
感谢, 罗布
我将其标记为完成,它仍然会崩溃...... – SpaceDog