实现录制视频功能鸿蒙示例代码

鸿蒙场景化示例代码技术工程师
发布于 2025-2-28 17:29
1.8w浏览
0收藏

本文原创发布在华为开发者社区

介绍

本示例基于Camera Kit(相机服务)实现了使用手机摄像头进行视频的拍摄录制,并在首页进行视频的预览。

实现录制视频功能源码链接

效果预览

实现录制视频功能鸿蒙示例代码-鸿蒙开发者社区

使用说明

点击“录制视频”按钮会进入视频录制界面,视频录制结束,点击“返回”按钮返回首页,录制的视频会在首页按钮上方显示,点击视频可进行预览。

实现思路

视频录制

通过调用@ohos.multimedia.camera接口以及AVRecorder接口访问系统相机,实现录像和预览的基础操作。

  1. 初始化相机
    首先通过camera.getCameraManager接口获取相机管理器实例实例,通过CameraDevice接口获取相机id、相机类型等相机设备信息。根据设备信息获取相机输出流,调整预览流分辨率的宽高比与输出流一致。创建相机输入流以及预览输出流,配置并启动会话。核心代码如下,源码参考Lx.ets。
   // 向会话中添加录像输出流
    try {
      this.captureSession.addOutput(this.videoOutput);
    } catch (error) {
      let err = error as BusinessError;
      console.error(`Failed to add videoOutput. error: ${JSON.stringify(err)}`);
    }

    // 提交会话配置
    try {
      await this.captureSession.commitConfig();
    } catch (error) {
      let err = error as BusinessError;
      console.error(`captureSession commitConfig error: ${JSON.stringify(err)}`);
    }

    // 启动会话
    try {
      await this.captureSession.start();
    } catch (error) {
      let err = error as BusinessError;
      console.error(`captureSession start error: ${JSON.stringify(err)}`);
    }

    // 启动录像输出流
    this.videoOutput.start((err: BusinessError) => {
      if (err) {
        console.error(`Failed to start the video output. error: ${JSON.stringify(err)}`);
        return;
      }
      console.log('Callback invoked to indicate the video output start success.');
    });
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  1. 录制视频
    调用avRecorder.start方法录制视频,核心代码如下,源码参考Lx.ets。
 async startRecord() {
    if (this.avRecorder) {
      // 开始录像
      try {
        await this.avRecorder.start();
      } catch (error) {
        let err = error as BusinessError;
        console.error(`avRecorder start error: ${JSON.stringify(err)}`);
      }
    }
  }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

分类
收藏
回复
举报


回复
    相关推荐