直播云

  • 直播云 > SDK 下载 > 短视频 >Harmony 短视频 SDK

    Harmony 短视频 SDK

    最近更新时间: 2025-03-31 15:32:50

    Harmony 短视频 SDK

    1. 概述

    qnshortvideokit 是七牛推出的一款适用于 Harmony 平台的短视频 SDK,提供了包括美颜、滤镜、水印、断点录制、分段回删、视频编辑、混音特效、MV 特效、本地/云端存储在内的多种功能,支持高度定制以及二次开发。

    2. 核心接口

    核心的接口类说明如下:

    接口类名 功能 备注
    QNShortVideoRecorder 负责视频的拍摄 音视频采集、美颜、编码、封包等
    QNShortVideoEditor 负责视频内容的编辑 添加滤镜、水印、文字特效以及导出等

    3. 环境准备

    3.1 系统要求

    • 操作系统:HarmonyOS 5.0+
    • 开发工具:DevEco Studio 5.0+
    • 设备内存:≥2GB RAM

    3.2 SDK集成

    在项目的oh-package.json5中添加依赖:

      "dependencies": {
        "@qiniu/qnshortvideokit"
      },
    

    4. 快速入门

    4.1 添加权限说明

    我们需要在 module.json 文件中添加相应权限的说明

    • 麦克风权限:ohos.permission.MICROPHONE 是否允许 App 使用麦克风
    • 相机权限: ohos.permission.CAMERA 是否允许 App 使用相机

    4.2 初始化SDK

    import { QNShortVideoRecorder } from '@qiniu/qnshortvideokit';
    
    // 初始化录制实例
    const recorder = new QNShortVideoRecorder();
    
    // 配置视频参数
    const videoConfig = QNVideoConfiguration.defaultConfiguration();
    
    // 初始化摄像头
    recorder.initCamera(videoConfig, null);
    

    4.3 基础拍摄功能

    // 开始预览
    recorder.startCapture();
    
    // 开始录制
    recorder.startRecordVideo();
    
    // 停止录制
    recorder.stopRecordVideo();
    
    // 切换摄像头
    recorder.changeCameraPosition(camera.CameraPosition.CAMERA_POSITION_FRONT);
    

    5. 核心功能使用

    5.1 视频编辑

    import { QNShortVideoEditor } from '@qiniu/qnshortvideokit';
    
    const editor = new QNShortVideoEditor();
    let path = getContext(this).cacheDir + "/resource.json";
    this.shortVideoEditor.createEditor(path);
    
    // 添加编辑视频段
    this.shortVideoEditor.insertClip(path, 0, value.duration, Common.PLAY_TYPE_VIDEO);
    
    

    5.2 特效处理

    // 添加变速效果(2倍速)
    this.shortVideoRecorder.setSpeed(2.0);
    
    // 应用滤镜
    this.shortVideoRecorder.addFilter(this.filterPath)
    

    6. 导出与分享

    6.1 视频导出

    let path = getContext(this).cacheDir + "/resource.json";
    let output_path = getContext(this).cacheDir + "/export.mp4";
    editor.exportVideo(path, output_path,
          720,
          1280,
          25,
          2500,
          44100,
          2,
          128
        );
    
    // 进度监听
    editor.exportProgressCallback((progress) => {
      console.log(`导出进度: ${progress}%`);
    });
    
    // 完成回调
    editor.exportCompletionCallback(() => {
      console.log('导出完成');
    });
    

    7. 最佳实践

    7.1 拍摄参数建议

    场景 分辨率 帧率 比特率
    普通短视频 720x1280 30fps 2.5Mbps
    直播推流 540x960 25fps 1.2Mbps

    7.2 异常处理

    try {
      await recorder.startRecordVideo();
    } catch (error) {
      if (error.code === 'STORAGE_FULL') {
        console.error('存储空间不足');
      } else if (error.code === 'NO_PERMISSION') {
        console.error('请授予相机权限');
      }
    }
    

    8. 常见问题

    Q1:如何实现分段录制?

    // 开始第一段
    recorder.startRecordVideo();
    
    // 暂停录制
    recorder.stopRecordVideo();
    
    // 开始第二段
    recorder.startRecordVideo();
    
    // 第二段暂停录制
    recorder.stopRecordVideo();
    

    9. 技术支持

    • 官方文档:https://developer.qiniu.com/short-video
    • 技术支持邮箱:support@qiniu.com
    • 紧急联系电话:400-123-4567
    以上内容是否对您有帮助?
  • Qvm free helper
    Close