如何使用camera2 API同时为照片和视频设置相机预览?

时间:2015-09-16 14:14:43

标签: android video camera photo camera2

我的应用程序提供了一个摄像头,允许用户拍照或录制视频。我无法知道用户将选择哪个动作。所以我需要为这两个动作提供相机预览。使用旧的相机API完全没有问题,但我不确定camera2 API。

我仔细查看了两个Google示例: Camera2Basic Camera2Video ,我注意到拍摄照片时预览构建器使用 CameraDevice.TEMPLATE_PREVIEW

mPreviewRequestBuilder = mCameraDevice.createCaptureRequesT(CameraDevice.TEMPLATE_PREVIEW);

对于视频录制,它使用 CameraDevice.TEMPLATE_RECORD ;

mPreviewBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);

我已经检查了 CameraDevice 类中所有模板的描述,但仍然不确定在我的情况下哪种方法正确。我曾尝试将 TEMPLATE_PREVIEW 设置为视频录制,但它运行正常,但我是否理解正确,在这种情况下,视频质量可能会降低?文档中的原因如下:

  

具体而言,这意味着高帧率优先于最高质量的后处理。

1 个答案:

答案 0 :(得分:1)

模板只有各种CaptureRequest设置的默认值。每个模板都针对某个特定用例。

但为了简单起见,在开始录制之前预览TEMPLATE_PREVIEW应该没问题;我建议在实际录制时切换到TEMPLATE_RECORD。然后在用户停止录制后切换回TEMPLATE_PREVIEW。