В Android вы можете получить описание свойств Camera
, получив CameraInfo
.Меня интересует ориентация, как описано в http://developer.android.com/reference/android/hardware/Camera.CameraInfo.html#orientation
. Однако документация кажется несовместимой с поведением всех четырех моих устройств, и у меня есть новости о пятом устройстве, для которого это фиксированное значение изменяется.
В частности, в документации сказано:
Значение - это угол, на который необходимо повернуть изображение с камеры по часовой стрелке, чтобы оно правильно отображалось на дисплее в его естественной ориентации.... Например, предположим, что устройство имеет естественно высокий экран.Датчик обратной камеры установлен в ландшафте.Вы смотрите на экран.Если верхняя сторона датчика камеры выровнена с правым краем экрана в естественной ориентации, значение должно быть 90. Если верхняя сторона сенсора камеры, расположенного спереди, выровнена по правой стороне экрана, значение должнобыть 270.
Но в приведенном примере изображение с камеры поворачивается на 90 градусов по часовой стрелке относительно естественной высоты, а не наоборот.То есть изображение, верхняя часть которого выровнена по правой стороне устройства, нуждается в повороте на 270 градусов по часовой стрелке для выравнивания по верхней стороне устройства.
По крайней мере, все четыре моих устройства отображают "90"для этого значения, и все действуют так, как если бы верх камеры находился на правой стороне устройства, когда он находится в естественной ориентации.То есть изображение должно поворачиваться на 270 градусов по часовой стрелке, а не на 90, чтобы соответствовать естественной ориентации.Пример кажется правильным;первая строка - нет.
Этот пример кода , кажется, подтверждает мой вывод, поскольку он дает правильный результат только тогда, когда ориентация интерпретируется, как указано выше.
Странно, у меня естьрегистрируйте данные с устройства одного пользователя, которые показывают, что он сообщает об этом значении как 90 время от времени, так и 0 в другое время!Это должно быть физическое свойство того, как камера установлена в устройстве, верно?
- Кто-нибудь может подтвердить, что первая строка документации на самом деле неверна, а пример верен?
- Кто-нибудь наблюдал изменение значения
CameraInfo.orientation
?Есть ли в документации доказательства того, что это законное поведение, или это, скорее всего, ошибка в устройстве? - Любые другие комментарии, опыт, ошибки, с которыми я еще не сталкивался?