【问题标题】:Android Camera Angle returning PiAndroid相机角度返回Pi
【发布时间】:2015-08-10 23:47:37
【问题描述】:

我需要为我正在编写的应用获取相机的水平和垂直视角。我在this question 的第二个(不是被接受的)答案中使用了这种方法,效果很好。我愿意:

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

然后可以调用

Math.toRadians(p.getVerticalViewAngle());

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

这适用于我的 Nexus 4 和三星平板电脑,但我决定在我的 Nexus 7 上试用该应用程序,水平和垂直角度都返回为 pi。显然,对于这些属性来说,这是一个荒谬的值。知道为什么我会为此设备获取这些值吗?

此外,在可能相关的注释中,android.hardware.Camera 已被弃用并由android.hardware.Camera2 取代。虽然我一直无法通过Camera2 找到实现相同目标的方法,但欢迎任何有关如何做到这一点的建议。

【问题讨论】:

    标签: android android-camera


    【解决方案1】:

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

    pi 的答案意味着它具有 360° 的视野,这是不可能但可能的,并且将是相机可以拍摄的理论最大值。

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

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

    并检查 cameraDevice 不为空。

    至于另一个问题,没有任何方法可以使用 camera2 api 来获取垂直和水平视角,但是使用原始相机 API 它确实可以工作(至少它对我有用)

    【讨论】:

    • 恐怕这是错误的 - Nexus 4 也有两个摄像头,open() 没有参数会打开设备上的第一个后置摄像头,而不是唯一的摄像头(参见 @ 987654321@)
    猜你喜欢
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多