Fokus (Autofokus) funktioniert nicht in der Kamera (AVFoundation AVCaptureSession)

8

Ich verwende Standard-AVFoundation-Klassen, um Videos aufzunehmen und eine Vorschau anzuzeigen ( Ссылка ) )

Hier ist mein Code:

%Vor%

Alles funktioniert, aber manchmal hat es einige Probleme:

  • Der Kamera-Fokus funktioniert nicht - Es funktioniert gelegentlich, manchmal nicht. Ich habe auf verschiedenen Geräten sowohl iPhone 4 und 3GS versucht. Ich habe versucht, es zu googeln, aber keine Ergebnisse. Die Leute erwähnen nur kaputte Geräte, aber ich habe auf 3 iPhone 4 und einem iPhone 3GS überprüft. Das Problem ist überall.
  • Die Kamera lädt ziemlich lange. Ich benutze die ScannerKit API, die aus denselben Gründen auch eine Kamera benutzt und sie wird etwa zweimal schneller geladen als meine Implementierung.

Irgendwelche Ideen, was ein Problem sein kann? Das erste Thema ist definitiv wichtiger.

    
woojtekr 22.03.2011, 12:28
quelle

2 Antworten

9

Die alte Frage könnte trotzdem jemanden frustrieren. Bevor Sie setFocusMode aufrufen, ist es wichtig, den gewünschten Punkt festzulegen, andernfalls wird die Kamera den Fokus auf den vorherigen Fokuspunkt setzen. Denken Sie an setFocusMode als COMMIT . Gleiches gilt für setExposureMode .

AVCam Probe von Apple ist völlig falsch und kaputt.

    
Andy 20.01.2014 20:13
quelle
1

Einige Punkte, ich habe festgestellt, dass Video-Voreinstellungen länger als die Foto-Voreinstellung initialisieren.

Machst du Videos oder machst du Fotos?

Ich habe festgestellt, dass Sie eine mittlere Qualitätseinstellung haben, aber mit 32BGRA könnte es besser sein, den Aufnahmemodus auf Foto zu setzen und das Bild nach der Aufnahme zu verkleinern. Stellen Sie auch AVVideoCodecJPEG statt 32BGRA ein.

%Vor%

Anstelle von:

%Vor%

Sie können sich auch für Benachrichtigungen an registrieren subjectAreaChangeMonitoring und Erzwingen einer Neuausrichtung, wenn Sie den Fokusmodus zu irgendeinem Zeitpunkt auf AVCaptureFocusModeAutoFocus ändern.

Sie können auch Code hinzufügen, um den Autofokus manuell einzustellen und ihn auf automatisch zurückzusetzen, wie dies manchmal erforderlich ist.

Ich habe den Code geändert, um einen Fokuspunkt von Interesse zu setzen und die Kamera-Konfigurationsfehlerausgabe an eine Delegate-Methode zu protokollieren.

%Vor%     
Adam Roberts 21.10.2012 23:48
quelle