安卓相机角度返回π

3

我需要获取一个应用程序中相机的水平和垂直视角。我采用了stackoverflow网站上这个问题第二个答案中的方法,而不是被采纳的答案,这个方法一直运行良好。我执行以下操作:

Camera.Parameters p = Camera.open().getParameters();

然后可以调用

Math.toRadians(p.getVerticalViewAngle());

或等效的水平方法来获取视角。

这在我的Nexus 4和Samsung平板电脑上起作用,但我决定在我的Nexus 7上尝试该应用程序,但是水平和垂直角度都返回为pi。显然,这些属性的值是荒谬的。您有什么想法,为什么我会在这个设备上获得这些值?

此外,在一个可能相关的注意事项上,android.hardware.Camera已被弃用并被 android.hardware.Camera2取代。我无法找到使用Camera2实现相同目标的方法,但欢迎任何关于如何实现此目标的建议。

1个回答

2

p.getVerticalViewAngle() 可能返回任何可能相机的最大值。

π的答案意味着它具有360°的视野,虽然不太可能但是可能性存在,并且会是摄像机可以拍摄到的理论上的最大值。

因此,建议尝试使用ID打开:

Camera.Parameters p = Camera.open(/**cameraNumber**/).getParameters();

同时要检查cameraDevice不为null。

至于另一个问题,使用camera2 api没有办法获取垂直和水平视角,但是使用原始camera API可以(至少对我来说可以)。


很抱歉,这是错误的 - Nexus 4也有两个摄像头,并且没有参数的open()会打开设备上第一个背面摄像头,而不是唯一的摄像头(请参见文档)。 - rbennett485

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接