我需要为我正在编写的应用程序获取相机的水平和垂直视角。我在this question上的第二个(不是被接受的)答案中使用了这种方法,它工作得很好。我有:
Camera.Parameters p = Camera.open().getParameters();然后可以调用
Math.toRadians(p.getVerticalViewAngle());或者等效的水平方法来获得视角。
这在我的Nexus 4和三星平板电脑上都有效,但我决定在我的Nexus 7上试用这个应用程序,水平和垂直角度都以pi的形式返回。显然,对于这些属性来说,这是一个荒谬的值。你知道为什么我要为这个设备获取这些值吗?
另外,也许与此相关的是,android.hardware.Camera2已经取代了android.hardware.Camera。我一直无法找到一种方法来实现与Camera2相同的目标,但欢迎任何关于如何做到这一点的建议。
发布于 2015-08-10 22:39:11
p.getVerticalViewAngle()可能会为任何可能的摄影机返回最大值。
圆周率的答案意味着它有360°的视野,这是不太可能的,但却是可能的,这将是相机可以拍摄的理论最大值。
因此,我建议尝试使用ID打开:
Camera.Parameters p = Camera.open(/**cameraNumber**/).getParameters();并检查cameraDevice是否不为空。
至于另一个问题,没有任何方法可以使用camera2 api获得垂直和水平视角,但使用原始的camera API确实可以(至少对我来说是有效的)。
https://stackoverflow.com/questions/30349205
复制相似问题