OpenHarmony开发者论坛

标题: 如何获取前置摄像头的预览图像 [打印本页]

作者: gelsang    时间: 2023-8-30 09:30
标题: 如何获取前置摄像头的预览图像
[md]【问题描述】

前置摄像头的预览图像功能,在OpenHarmony中如何实现?


【运行环境】

硬件:rk3568;  ROM:  3.2 Release;  API 9
[/md]
作者: admin    时间: 2023-8-30 09:32
按照以下步骤操作:
1.使用系统相机框架@ohos.multimedia.camera获取物理摄像头信息
  1. let cameraManager = await camera.getCameraManager(context);
  2. let camerasInfo = await cameraManager.getSupportedCameras();
  3. let cameraDevice = this.camerasInfo[0];
复制代码


2.创建并启动物理摄像头输入流通道。
  1. let cameraInput = await cameraManager.createCameraInput(cameraDevice);
  2. await this.cameraInput.open();
复制代码


3.拿到物理摄像头信息查询摄像头支持预览流支持的输出格式,结合XComponent提供的surfaceId创建预览输出通道
  1. let outputCapability = await this.cameraManager.getSupportedOutputCapability(cameraDevice);
  2. let previewProfile = this.outputCapability.previewProfiles[0];
  3. let previewOutput = await cameraManager.createPreviewOutput(previewProfile, previewId);
复制代码


4.创建相机会话,在会话中添加摄像头输入流和预览输出流,然后启动会话,预览画面就会在XComponent组件上送显。
  1. let captureSession = await cameraManager.createCaptureSession();
  2. await captureSession.beginConfig();
  3. await captureSession.addInput(cameraInput);
  4. await captureSession.addOutput(previewOutput);
  5. await this.captureSession.commitConfig()
  6. await this.captureSession.start();
复制代码



作者: everday    时间: 2024-11-13 10:00
使用系统相机框架




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5