Ich habe eine Anwendung, die vor der Aufnahme eines Standfotos eine eigene Live-Vorschau erstellt. Die App muss einige Verarbeitungsschritte für die Bilddaten ausführen und kann sich daher nicht auf AVCaptureVideoPreviewLayer verlassen. Den ersten Stream zum Laufen zu bringen, geht mit dem Beispielcode von Apple recht gut. Das Problem tritt auf, wenn ich versuche, zu einem Bild mit höherer Qualität zu wechseln, um den Schnappschuss aufzunehmen. Als Reaktion auf einen Tastendruck versuche ich die Sitzung neu zu konfigurieren, um ein Foto mit voller Auflösung aufzunehmen. Ich habe viele Variationen ausprobiert, aber hier ist mein jüngstes Beispiel (die immer noch nicht funktioniert):So verwenden Sie AVCaptureSession, um Live-Vorschauvideo zu streamen, dann ein Foto aufzunehmen und dann zum Streaming zurückzukehren
- (void)sessionSetupForPhoto
{
[session beginConfiguration];
session.sessionPreset = AVCaptureSessionPresetPhoto;
AVCaptureStillImageOutput *output = [[[AVCaptureStillImageOutput alloc] init] autorelease];
for (AVCaptureOutput *output in [session outputs]) {
[session removeOutput:output];
}
if ([session canAddOutput:output]){
[session addOutput:output];
} else {
NSLog(@"Not able to add an AVCaptureStillImageOutput");
}
[session commitConfiguration];
}
ich konsequent bin immer eine Fehlermeldung direkt nach der commitConfiguration Linie, die wie folgt aussieht: (dh , ich bin ein AVCaptureSessionRuntimeErrorNotification meiner registrierten Beobachter geschickt bekommen)
Received an error: NSConcreteNotification 0x19d870 {name = AVCaptureSessionRuntimeErrorNotification; object = ; userInfo = { AVCaptureSessionErrorKey = "Error Domain=AVFoundationErrorDomain Code=-11800 \"The operation couldn\U2019t be completed. (AVFoundationErrorDomain error -11800.)\" UserInfo=0x19d810 {}";
die Dokumentation in XCode angeblich mehr Informationen für die Fehlernummer (-11.800), bietet „AVErrorUnknown - Grund für den Fehler ist unbekannt.“;
Zuvor hatte ich auch versucht, Anrufe zu stoppenRunning und startRunning, aber nicht mehr tun, nachdem WWDC Sitzung 409 zu sehen, wo es entmutigt ist. Als ich anhielt und anfing, bekam ich eine andere Fehlermeldung -11819, die "AVErrorMediaServicesWereReset - Der Vorgang konnte nicht abgeschlossen werden, da Mediendienste nicht verfügbar wurden.", Die viel netter als einfach "unbekannt" ist, aber nicht unbedingt noch hilfreicher.
Es fügt erfolgreich den AVCaptureStillImageOutput hinzu (d. H., Gibt die Protokollnachricht NICHT aus).
Ich teste auf einem iPhone 3g (w/4.1) und das iPhone 4.
Dieser Aufruf wird im Hauptthread geschieht, wo auch meine ursprüngliche AVCaptureSession Setup stattfand.
Wie kann ich den Fehler vermeiden? Wie kann ich zu der höheren Auflösung wechseln, um das Foto aufzunehmen?
Vielen Dank!
ich am gleichen Fehler bin stecken. Hast du die Problemumgehung gefunden? –