Question

J'utilise la fondation AV pour capturer des images en continu après qu'Apple ait publié iOS 4.0 en suivant les codes donnés par,http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html

Cependant, lorsque j'appelle [Session StarTrunning];" Il faut environ 1 à 2 secondes pour démarrer l'aperçu de la caméra. Donc, c'est frustrant pour l'utilisateur final car il a besoin d'attendre un certain temps.

Existe-t-il un moyen de mettre en pause la session au lieu de l'arrêter car je peux initier la session au lancement du programme et la faire en sorte que l'utilisateur navigue vers l'écran de la caméra et de commencer à l'exécuter là-bas? Merci pour toute aide.

Était-ce utile?

La solution

Il n'y a aucun moyen de "faire une pause" la session, mais vous pouvez démarrer la session de capture en cours d'exécution à tout moment et de le laisser fonctionner. Si vous capturez des images fixes, appelez simplement CaptureRestilLImageasynchronely à partir de la connexion lorsque vous êtes prêt. Si vous capturez une vidéo, vous pouvez avoir votre CaptureOutput: DidOutputsampleBuffer: FromConnection: Méthode dans le délégué, jetez les cadres jusqu'à ce que vous vouliez faire quelque chose avec eux. Vous pourriez même être en mesure de démarrer la session de capture sans périphérique de sortie jusqu'à ce que vous soyez prêt (je n'ai pas essayé cela).

Autres conseils

Au lieu de faire une pause de votre session, vous pouvez plutôt désactiver la connexion d'entrée.

par exemple

<your_video_preview_layer>.connection.enabled = NO;

afin qu'il ne consomme pas les données du périphérique d'entrée.

J'espère que c'est ce que vous recherchez.

C'est ce que j'ai fait pour empêcher l'interface utilisateur de verrouiller les 1-2 secondes initiales lors de l'appel -strunrunning.

1) Add UIActivityIndicator
2) Add observer to AVCaptureSession
3) call -startRunning in a background thread
4) Resume the UI in the notification callback
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top