【问题标题】:How to setup camera preview with camera2 API for both photo and video at once?如何使用 camera2 API 同时为照片和视频设置相机预览?
【发布时间】:2015-10-28 10:55:53
【问题描述】:

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

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

mPreviewRequestBuilder = mCameraDevice.createCaptureRequesT(CameraDevice.TEMPLATE_PREVIEW);

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

mPreviewBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);

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

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

【问题讨论】:

  • 你有什么解决办法吗?我问了。链接是:stackoverflow.com/questions/36174807/…我被困在这里。如果你有任何想法,请帮助我。
  • 您好,我也遇到了同样的问题。我想要同一片段中的视频和图像。如果可能的话,你能分享一下代码吗?

标签: android video camera photo camera2


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回答,但是动态更改模板不会弄乱实际预览吗?我的意思是我需要在录制视频时在 TextureView 中显示预览。
  • 模板只是为捕获请求设置默认值。只要确保添加正确的目标表面,它就会正常工作。
  • @EddyTalvala 请检查下一个问题。视频稳定是否仅在使用TEMPLATED_RECORDING 时有效? stackoverflow.com/questions/71712448/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-17
相关资源
最近更新 更多