相机API 1和相机API 2返回不同的传感器方向信息

时间:2019-06-22 08:56:28

标签: android android-camera2

我试图找出在具有硬件级别支持LEGACY的设备上使用camera2的局限性。从official docs for android camera2 api:

  

LEGACY:这些设备通过Camera API2接口向应用程序公开功能,这些功能与通过Camera API1接口向应用程序公开的功能大致相同。传统框架代码从概念上将Camera API2调用转换为Camera API1调用;旧版设备不支持Camera API2功能,例如每帧控件。

我发现这是错误的...实际上,我希望通过Camera.CameraInfo camInfo-> camInfo.orientationdocs)获得的传感器方向与{{1}相同}(docs

但是事实并非如此!

  • 相机API 1返回90°的定向角
  • 相机API 2返回的定向角为270°

请注意,这是完全不同的!横向=逆横向!例如,它将完全破坏从屏幕预览坐标到相机传感器空间的Matrix变换。

我想念什么吗?这是预期的行为吗? 我正在将小米Redmi 5 plus与Android 8.1配合使用(这是制造商的问题吗?)

谢谢

1 个答案:

答案 0 :(得分:1)

如果两个查询都适用于同一台相机,那肯定是一个错误,小米负责。即使在主流设备上也确实会发生错误,并且相机API适应层往往比其他API更具错误。

对于LEGACY设备,您可能会发现 camera2 层会带来额外的开销,反之亦然。如果您通过不推荐使用的LEGACY设备的Camera API并通过其他设备的camera2 API来获得最佳性能。 我知道同时支持两个版本的代码很痛苦,但是当您需要以最佳方式使用设备时,就必须为此付出代价。