私はこの問題に1週間以上苦労しています。誰かが私が間違っていることを理解してくれることを願っています。finishWriting メソッドは非推奨になったため、finishWritingWithCompletionHandler: メソッドを使用しようとしています。私は新しい方法を使用して成功したことはありません。不明なエラー -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];
});
}
}];
}];
私は何も見逃していないと思いますし、スローされたエラーからあまり得られていません。どんな助けでも大歓迎です。
ありがとう、ロブ