4

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

我已经彻底浏览了这两个谷歌示例:Camera2BasicCamera2Video ,我注意到预览构建器使用CameraDevice.TEMPLATE_PREVIEW拍照:

mPreviewRequestBuilder = mCameraDevice.createCaptureRequesT(CameraDevice.TEMPLATE_PREVIEW);

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

mPreviewBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);

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

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

4

1 回答 1

1

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

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

于 2015-09-18T19:34:30.113 回答