2010-09-02 17 views
5

estoy usando la Fundación AV para capturar imágenes de forma continua después de que Apple lanzó iOS 4.0 siguiendo los códigos dados por, http://developer.apple.com/iphone/library/qa/qa2010/qa1702.htmlpausa de AVCaptureSession?

Sin embargo, cuando llamo "[sesión de startRunning];" toma aproximadamente 1-2 segundos comenzar la vista previa de la cámara. Entonces, esto es frustrante para el usuario final ya que necesita esperar un tiempo.

¿Hay alguna manera de Pausar la sesión en lugar de detenerla ya que puedo iniciar la sesión al iniciar el programa y mantenerla en pausa hasta que el usuario navegue a la pantalla de la cámara y comience a ejecutarla allí? Gracias por cualquier ayuda.

Respuesta

1

No hay forma de "pausar" la sesión, pero puede iniciar la sesión de captura en cualquier momento y dejarla en ejecución. Si está capturando imágenes fijas, simplemente llame a captureStillImageAsynchronouslyFromConnection cuando esté listo. Si está capturando video, puede hacer que su método captureOutput: didOutputSampleBuffer: fromConnection: en el delegado tire los marcos hasta que quiera hacer algo con ellos. Incluso podría iniciar la sesión de captura sin un dispositivo de salida hasta que esté listo (no lo haya intentado).

24

En lugar de pausar su sesión, puede deshabilitar la conexión de entrada.

p. Ej.

<your_video_preview_layer>.connection.enabled = NO; 

para que no consuma los datos del dispositivo de entrada.

Espero que esto es lo que estás buscando.

0

Esto es lo que hice para evitar que la UI bloqueara los primeros 1-2 segundos al llamar a -startRunning.

1) Add UIActivityIndicator 
2) Add observer to AVCaptureSession 
3) call -startRunning in a background thread 
4) Resume the UI in the notification callback 
Cuestiones relacionadas