AVCaptureOutput captureStillImageAsynchronouslyFromConnection wird auf dem iPhone5 nicht abgeschlossen

8

In meiner Anwendung wird ein AVCaptureVideoPreviewLayer angezeigt und anschließend ein Standbild erfasst, wenn der Benutzer mit captureStillImageAsynchronousFromConnection in AVCaptureOutput auf eine Schaltfläche klickt . Das hat mir bis zum iPhone 5 gut getan, auf dem es nie endet.

Mein Setup-Code lautet:

%Vor%

Meine Aufnahmemethode ist:

%Vor%

captureStillImageAsynchronouslyFromConnection wird für mich niemals mit einem iPhone5 abgeschlossen

Ich habe getestet:

  • Es ist nicht OS 6, da dieser Code sowohl auf einem iPhone 4s als auch auf einem iPod (iPod touch der 4. Generation) funktioniert, die aktualisiert wurden

  • Die captureSession wird ausgeführt

  • videoConnection ist nicht null

  • imageOutput ist nicht nil

Auch:

  • Ich verwende diese Methode und nicht UIImagePickerController, weil ich die Vorschau als Unteransicht einfügen muss.

  • Das Aufrufen von stopRunning in der Aufnahmesitzung dauert ebenfalls einige Sekunden auf dem iPhone 5

piltdownman7 25.09.2012, 20:10
quelle

1 Antwort

0

Nun, dieser Code funktioniert gut. Getestet für iPhone 4 und 5, (BaseSDK 7.1, unter ARC).

Wenige Dinge, die Sie beachten müssen.

1) Vergewissern Sie sich, dass Sie den Parameter "rearFacingDeviceInput" richtig eingestellt haben,

%Vor%

2) als Vincent erwähnt, es wird ein Fehler auftreten, versuchen Sie, sowohl einen Fehler als auch imageSampleBuffer

zu protokollieren >

3) Die Operationen -startRunning und -stopRunning der session nehmen lange Zeit in Anspruch (Sekunden, sogar 5-6s). Diese Methoden kehren erst zurück, wenn sie alle Arbeit erledigt haben. Um blockierte UI zu vermeiden, sollten Sie diese nicht aufrufen Methoden auf Haupt-Thread, eine Möglichkeit ist die Verwendung von GCD

%Vor%

Wenn captureStillImageAsynchronous immer noch nicht abgeschlossen ist (um sicherzustellen, dass Sie einen Haltepunkt im Block hinzufügen und alles protokollieren), sollten Sie die Kamera Ihres Geräts überprüfen. Ich glaube, dass dein Code auf allen iPhone 5 Geräten funktioniert. Hoffe das hilft, viel Glück.

    
Seryozha 06.05.2014 08:37
quelle

Tags und Links