实时音视频

  • 实时音视频 > 使用指南 > HarmonyOS >初始化

    初始化

    最近更新时间: 2024-11-01 11:27:42

    本部分介绍了实时音视频的初始化方式及其可配置项。

    在使用 SDK 前,请务必调用 QNRTC.Init 方法进行 RTC 环境的初始化工作

    默认配置初始化

    示例代码如下:

    let setting = new QNRTCSetting()
    let ret: number = QNRTC.Init(setting)
    

    若 QNRTCSetting 的默认配置无法满足您的场景需要,您可通过 QNRTCSetting 进行自定义配置初始化。

    设置媒体传输方式

    通过调用初始化方法 QNRTCSetting.policy 设置媒体传输方式,默认使用 UDP 传输。

    setting.policy = QNTransportPolicy.UDP
    

    其中,媒体传输方式 QNTransportPolicy 有如下几种,可根据实际情况自行选择:

    export enum QNTransportPolicy {
      /**
       * 强制使用 UDP 做媒体传输
       */
      UDP = 0,
      /**
       * 强制使用 TCP 做媒体传输
       */
      TCP = 1,
      /**
       * 优先使用 UDP 做媒体传输,允许自动切换 TCP
       */
      PreferUDP = 2
    }
    

    初始化 QNRTC

    在配置好 QNRTCSetting 后,通过 QNRTC.Init 传入。

    let ret: number = QNRTC.Init(setting)
    

    销毁 QNRTC

    通过 QNRTC.Deinit 销毁。在 QNRTC 使用结束后,请务必主动在销毁前调用此接口来释放相应资源

    let ret: number = QNRTC.DeInit()
    

    设置日志等级

    通过调用 QNRTC.SetLogConfig 设置 SDK 的日志文件相关等级,默认是 QNRTCLogLevel.Info

    let logConfig = new QNLogConfig()
    let ret: number = QNRTC.SetLogConfig(logConfig)
    

    设置成功后开始日志文件保存。

    日志文件上传

    通过调用 QNRTC.UploadLog 上传本地文件至七牛服务器

    let ret: number = QNRTC.UploadLog("", this.uploadLogCallback)
    
    private uploadLogCallback: QNUploadLogResultCallback = (fileName, code, remaining) => {
      console.log("upload log callback ", fileName, code, remaining)
    }
    

    推流固定分辨率开关

    通过调用初始化方法 QNVideoEncoderConfig.prefer 设置 QNDegradationPreferenceMaintainResolution 时为固定分辨率,即编码分辨率不随网络变化而波动。

    /**
     * 视频编码配置类
     */
    export class QNVideoEncoderConfig implements QNVideoEncoderConfigNative {
      /**
       * 编码宽度
       */
      width: number = 640;
      /**
       * 编码高度
       */
      height: number = 480;
      /**
       * 编码帧率
       */
      frameRate: number = 15;
      /**
       * 编码码率,单位 kbps
       */
      bitrate: number = 800;
      /**
       * 码率控制策略
       */
      prefer: number = QNDegradationPreference.DefaultPreference;
      /**
       * 缩放模式
       */
      stretchMode: number = QNEncoderStretchMode.ResolutionAdaptive;
    }
    
    以上内容是否对您有帮助?
  • Qvm free helper
    Close