【问题标题】:Android front camera安卓前置摄像头
【发布时间】:2011-08-31 05:18:46
【问题描述】:

我需要一个函数来检查前置摄像头是否存在,如果存在 - 显示预览。 我找到了一些链接,但每个链接都在谈论特定的设备:

谁能为此提供通用代码?或者可能是适用于所有设备的组合代码?

【问题讨论】:

    标签: android camera


    【解决方案1】:

    对于 API >=9,您可以使用 Camera 类:http://developer.android.com/reference/android/hardware/Camera.html 来查看它是否有多个摄像头,并查询 CameraInfo

    • getNumberOfCameras

    • getCameraInfo:

    http://developer.android.com/reference/android/hardware/Camera.CameraInfo.html

    常量

    int CAMERA_FACING_BACK 相机的朝向与屏幕的朝向相反。

    int CAMERA_FACING_FRONT 摄像头朝向与屏幕朝向一致。


    对于 >=5 的 API,一个选项是读取 public List<Camera.Size> getSupportedPictureSizes ()。前置摄像头的最大分辨率通常比后置摄像头低得多。

    http://developer.android.com/reference/android/hardware/Camera.Parameters.html

    【讨论】:

      【解决方案2】:

      这是由kcoppock 发布的,但我想有时也会有人看到这条消息。我亲自测试过,在 Froyo 上效果很好。

      PackageManager pm = getPackageManager();
      boolean frontCam, rearCam;
      
      //It would be safer to use the constant PackageManager.FEATURE_CAMERA_FRONT
      //but since it is not defined for Android 2.2, I substituted the literal value
      frontCam = pm.hasSystemFeature("android.hardware.camera.front");
      
      rearCam = pm.hasSystemFeature(PackageManager.FEATURE_CAMERA);
      

      【讨论】:

      • 不错的提示。您还可以对前置摄像头使用常量,而不是对值进行硬编码。那就是 PackageManager.FEATURE_CAMERA_FRONT
      【解决方案3】:

      在 2.3 中是可能的。 http://developer.android.com/sdk/api_diff/9/changes/android.hardware.Camera.html

      但在此之前,Android sdk 并没有任何通用 api 用于查找和使用第二个前置摄像头。

      【讨论】:

        【解决方案4】:

        我认为您可以遍历手机上的可用摄像头并检查facing 摄像头信息以找到一个(但它仅适用于 API 级别 9)

        这个答案可以帮助你:How do I open the "front camera" on the Android platform?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-05-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-06-06
          • 1970-01-01
          相关资源
          最近更新 更多