AVAssetWriter finishWritingWithCompletionHandler Fehlermeldung mit unbekannter Fehler
Ich habe zu kämpfen mit diesem problem seit über einer Woche. Ich hoffe jemand sieht, was ich falsch mache. Ich bin versucht, finishWritingWithCompletionHandler: Methode, da die finishWriting Methode ist jetzt veraltet. Ich habe nicht hatte keinen Erfolg mit der neuen Methode. Es tritt ein unbekannter Fehler -11800. Kann ich meine MOV-Datei mit der deprecated Methode in Ordnung, aber wenn ich den Gegenwert mit der neuen Methode scheitert es jedes mal.
Hier ist mein original code:
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];
});
}
}];
Meine neue Methode ist wie folgt:
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];
});
}
}];
}];
Ich glaube nicht, dass ich nichts übersehen habe und bin ich nicht immer viel aus den Fehler wirft. Jede Hilfe wird sehr geschätzt.
Dank,
Rob
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich endlich die Antwort gefunden. Die
finishWritingWithCompletionHandler:
war ein Fehlschlag weil ich nicht denmarkAsFinished
auf dieAVAssetWriterInput
Objekte. Einmal lief ich denmarkAsFinished
Methoden vor diefinishWritingWithCompletionHandler:
wurde der Prozess in der Lage, komplett ohne Fehler.Ich hatte ähnliches problem und festgestellt, dass der handler nicht aufgerufen werden, weil ich veröffentlicht die
AVAssetWriter
sofort nach dem AufruffinishWritingWithCompletionHandler:
z.B.Um es zu beheben, bewegen Sie einfach die Freigabe-line-innen-Abschluss-handler:
War die Antwort für mich zu entfernen aufrufen
finishWritingWithCompletionHandler
. Anscheinend wurde die Funktion bereits einmal aufgerufen.