La couche d'aperçu de la camera AV Foundation est agrandie, comment faire un zoom arrière?

L'application que j'utilise actuellement dispose d'une fonctionnalité principale pour parsingr en continu les codes QR / Bar à l'aide de la bibliothèque Zxing ( http://code.google.com/p/zxing/ ). Pour la capture de trame continue, j'ai utilisé pour initialiser AVCaptureSession et AVCaptureVideoOutput, AVCaptureVideoPreviewLayer décrit dans le Q & A Apple http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html .

Mon problème est que, lorsque j'ai lancé l'aperçu de la camera, l'image que je peux voir à travers le périphérique video est beaucoup plus grande (1.5x) que l'image que nous pouvons voir à travers l'appareil photo de l'iPhone. Notre client doit tenir l'iPhone à une distance d'environ 5 cm du code à barres lors de la numérisation, mais si vous tenez l'iPhone sur ce paramètre, tout le code QR ne sera pas visible et le déencoding échouera. Pourquoi la camera video de l'iPhone 4 agrandit-elle l'image (en regardant à travers AVCaptureVideoPreviewLayer)?

C'est une fonction du préréglage video AVCaptureSession, accessible en utilisant la propriété .sessionPreset. Par exemple, après avoir configuré votre captureSession, mais avant de le démarrer, vous appendiez

captureSession.sessionPreset = AVCaptureSessionPresetPhoto; 

Voir la documentation ici:

Document de reference iOS

Le préréglage par défaut pour la video est 1280×720 (je pense) qui est une résolution inférieure à la max prise en charge par la camera. En utilisant le préréglage "Photo", vous obtenez datatables brutes de l'appareil photo.

Vous voyez le même comportement avec l'application Caméra iPhone embeddede. Basculez entre les modes de capture fixe et video et vous remarquerez que le niveau de zoom par défaut change. Vous voyez une vue plus large en mode fixe, tandis que le mode video effectue un zoom sur un bit.

Ma conjecture est que la capture video continue doit utiliser une plus petite zone du capteur de la camera pour fonctionner de manière optimale. S'il utilisait le capteur entier, peut-être que le système ne pourrait pas supporter 30 fps. L'utilisation d'une zone plus petite du capteur donne l'effet de "zoomer" sur la scène.

Je répète ma propre question à nouveau. Cela n'a pas été répondu même dans le forum Apple Dev, par conséquent j'ai directement déposé une request de support technique d'Apple et ils ont répondu que c'est un problème connu et sera corrigé et publié avec une future version. Il n'y a donc rien que nous puissions faire de plus que d'attendre et de voir.