Android Camera2前置摄像头

YOY*_*OYO 16 android android-5.0-lollipop android-camera2

我最近注意到不推荐使用Camera API,我找到了名为Camera2的新API.

我已阅读文档,但我并不理解.

所以我的问题是:如何使用新的相机api预览前置摄像头?

只是一个预览,而不是录制.

我想使用这个新API,因为将来我猜测当前的Camera API将被替换并停止工作.

所以我想做好准备,坐下来观看,每个人都会恐慌.XD

use*_*770 20

首先,找出你的前置摄像头的ID(如果它有一个当然)

    CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);
            try {
                return manager.getCameraIdList();
            } catch (CameraAccessException e) {
                return null;
            }
Run Code Online (Sandbox Code Playgroud)

然后找到这样的faceCamera:

CameraCharacteristics cameraCharacteristics = manager.getCameraCharacteristics(cameraId);

        if (cameraCharacteristics == null)
            throw new NullPointerException("No camera with id " + cameraId);

        return cameraCharacteristics.get(CameraCharacteristics.LENS_FACING) == CameraCharacteristics.LENS_FACING_FRONT;
Run Code Online (Sandbox Code Playgroud)

最后,您必须使用该ID设置相机:

CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);
   try {
       characteristics = manager.getCameraCharacteristics(mCameraId);
   }  catch (CameraAccessException e) {
       e.printStackTrace();
   } 
Run Code Online (Sandbox Code Playgroud)

请注意,这些只是如何做你想做的事情的提示.有关如何开始预览的详细信息,请参阅:http: //developer.android.com/samples/Camera2Basic/index.html


Luf*_*ffy 10

前面的后面1为0

对于Back Camera,我们必须在openCamera方法中执行此操作:

cameraId = manager.getCameraIdList()[0];

对于Facing Front相机,我们必须在openCamera方法中添加以下行:

cameraId = manager.getCameraIdList()[1];

在这里添加了所有代码和屏幕截图

在此输入图像描述