Pregunta

Estoy usando la base AV para capturar imágenes continuamente después de que Apple lanzó iOS 4.0 siguiendo los códigos dados por,http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html

Sin embargo, cuando llamo [Session StarTrunning];"; Se tarda alrededor de 1-2 segundos en iniciar la vista previa de la cámara. Entonces, esto es frustrante para el usuario final, ya que necesita esperar algún tiempo.

¿Hay alguna manera de pausar la sesión en lugar de detenerla, ya que puedo iniciar la sesión en el lanzamiento del 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.

¿Fue útil?

Solución

No hay forma de "detener" la sesión, pero puede comenzar la sesión de captura en cualquier momento y simplemente dejarla en ejecución. Si está capturando imágenes fijas, simplemente llame a CaptURESTILLIMAGEASYnChrony deComonnection cuando esté listo. Si está capturando videos, puede tener su captura de captura: didoutputsampleBuffer: fromconnection: método en el delegado simplemente tira marcos hasta que desee hacer algo con ellos. Incluso puede iniciar la sesión de captura sin un dispositivo de salida hasta que esté listo (no lo he probado).

Otros consejos

En lugar de detener 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 sea lo que estás buscando.

Esto es lo que hice para evitar que la interfaz de usuario bloquee los 1-2 segundos iniciales cuando llame 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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top