gpt4 book ai didi

android - 如何在 Android 中使用 Camera2 API 录制视频时以编程方式拍摄照片

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:02:02 25 4
gpt4 key购买 nike

我想在使用 camera2 API 录制视频时捕获图像。

有两个单独的演示可用。1. To capture image和2. To record video

我试图将它们合并到一个应用程序中。但在许多事情上感到困惑。喜欢

  • CameraDevice 是单一的,表示连接到 Android 设备的单个相机。
  • 请求中需要不同的模板。对于图像:mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW); 对于视频 mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
  • 在 createCaptureSession 方法中,需要 ImageReader 的表面,而视频需要 MediaRecorder。

图像和视频的 createCaptureSession 方法中都需要 CameraCaptureSession.StateCallback。

并且 camera2 API 是新的。因此,Google 上没有更多示例。

有人知道吗?比如在 android 中如何在录制时捕获照片?

最佳答案

对于 camera2 API 和视频快照,您需要稍微改进 camera2video 示例。

  • 3 个捕获目标表面:预览(TextureView 或 SurfaceView)、JPEG(ImageReader)和记录(MediaRecorder 或 MediaCodec)。
  • 将所有三个表面传递给 createCaptureSession
  • 不录制视频时,将重复请求设置为只针对预览
  • 录制视频时,将重复请求设置为同时针对预览和录制 Surface,并启动 mediarecorder(如 camera2video 所做的);停止录制时,在重复请求中切换回仅定位预览。
  • 当您想要拍照时,发出一个单独的 capture() 调用,并发出一个针对 JPEG 表面、预览表面以及记录表面(如果正在录制)的请求。
  • 在其 onImageAvailable 回调触发时从 ImageReader 获取 JPEG。

关于android - 如何在 Android 中使用 Camera2 API 录制视频时以编程方式拍摄照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36174807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com