Frage

Ich benutze die AV -Grundlage, um Bilder kontinuierlich aufzunehmen, nachdem Apple iOS 4.0 veröffentlicht wurde, indem sie den gegebenen Codes folgen,http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html

Wenn ich jedoch [Sitzungsstarter] nenne; Es dauert ungefähr 1-2 Sekunden, um die Kameravorschau zu starten. Dies ist für den Endbenutzer frustrierend, da er einige Zeit warten muss.

Gibt es eine Möglichkeit, die Sitzung zu pausieren, anstatt sie zu stoppen, da ich die Sitzung beim Programmstart initieren und innehalten kann, bis der Benutzer zum Kamerabildschirm navigiert und dort anfangen kann? Danke für jede Hilfe.

War es hilfreich?

Lösung

Es gibt keine Möglichkeit, die Sitzung zu "innehalten", aber Sie können die Capture -Sitzung jederzeit ausführen und sie einfach laufen lassen. Wenn Sie Standbilder aufnehmen, rufen Sie einfach Capturestillimageasynchron von der Connection an, wenn Sie bereit sind. Wenn Sie Video aufnehmen, können Sie Ihren CaptureOutput: didoutputputSampleBuffer: Von der Konnection: Methode im Delegierten einfach Rahmen wegwerfen, bis Sie etwas mit ihnen anfangen möchten. Möglicherweise können Sie die Capture -Sitzung ohne Ausgabegerät bis zur Vorbereitung starten (ich habe das nicht ausprobiert).

Andere Tipps

Anstatt in Ihrer Sitzung inne, können Sie lieber die Eingabeverbindung deaktivieren.

z.B

<your_video_preview_layer>.connection.enabled = NO;

so dass die Daten nicht vom Eingabegerät konsumiert werden.

Hoffe das ist was du suchst.

Dies ist, was ich getan habe, um zu verhindern, dass die Benutzeroberfläche die ersten 1-2 Sekunden beim Aufrufen von Startrunning einsperrt.

1) Add UIActivityIndicator
2) Add observer to AVCaptureSession
3) call -startRunning in a background thread
4) Resume the UI in the notification callback
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top