Est Android CameraInfo.l'orientation correctement documentées? Incorrectement mis en œuvre?

Dans Android, vous pouvez obtenir une description des propriétés d'un Camera par la récupération d'un CameraInfo. Je suis intéressé dans l'orientation, comme décrit à http://developer.android.com/reference/android/hardware/Camera.CameraInfo.html#orientation

Toutefois, la documentation semble incompatible avec la façon dont tous les quatre de mes appareils se comportent, et, j'ai des nouvelles d'un cinquième périphérique pour lequel cette convenable fixe les changements de la valeur.

En particulier, la documentation dit:

La valeur de l'angle que l'image de la caméra doit être tourné
dans le sens horaire de sorte qu'il affiche correctement sur l'écran dans son environnement naturel
de l'orientation. ... Par exemple, supposons qu'un appareil a naturellement de haut
de l'écran. L'arrière face à la caméra capteur est monté dans le paysage. Vous êtes
en regardant l'écran. Si le côté supérieur du capteur de la caméra est aligné
avec le bord droit de l'écran en orientation naturelle, la valeur
90. Si le côté supérieur d'un appareil photo de face du capteur est
aligné avec la droite de l'écran, la valeur doit être de 270.

Mais dans l'déclaré exemple, c'est l'image de la caméra qui est tourné de 90 degrés dans le sens horaire par rapport à l'naturellement tall orientation, et non pas l'inverse. C'est, à l'image, dont le sommet est aligné avec le côté droit de l'appareil, les besoins de 270 degrés de rotation dans le sens horaire pour aligner avec le côté supérieur de l'appareil.

Au moins, tous les quatre de mes périphériques rapport "90" pour cette valeur, et agissent comme si la caméra est en haut est le côté droit de l'appareil lorsqu'on le tient en orientation naturelle. Cela signifie que l'image doit être une rotation de 270 degrés dans le sens horaire, pas 90, pour correspondre à l'orientation naturelle. L'exemple semble correcte; la première ligne ne fonctionne pas.

Cette exemple de code semble à l'appui de ma conclusion à laquelle il ne donne le bon résultat lors de l'orientation est interprétée comme ci-dessus.

Étrangement, j'ai du journal des preuves à partir d'un périphérique de l'utilisateur qu'il montre cette déclaration de valeur comme 90 à la fois, et de 0 à d'autres moments! Il devrait être une propriété physique de la façon dont la caméra est installée dans l'appareil, à droite?

  1. Quelqu'un peut confirmer que la première ligne de la documentation est en fait faux, et que l'exemple est le droit?
  2. Quelqu'un a observé une évolution de la valeur de CameraInfo.orientation? Est-il prouvé dans les docs que c'est légal, comportement, ou est-il susceptible d'un bug dans l'appareil?
  3. D'autres observations, des expériences, des pièges, j'ai pas encore?
InformationsquelleAutor Sean Owen | 2012-01-29