实时音视频

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

    初始化

    最近更新时间: 2023-08-17 15:50:46

    本文主要介绍实时音视频的初始化方式及其配置项。

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

    默认配置初始化

    QNRTC SDK 提供 QNRTC.init(Context, QNRTCEventListener) 方法以默认配置进行 RTC 环境的初始化工作,示例代码如下:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 以默认配置进行 RTC 环境的初始化,使用 SDK 前请务必先执行初始化操作。
        QNRTC.init(this, new QNRTCEventListener());
    }
    

    QNRTCSetting 的默认配置无法满足您的场景需要,您还可通过调用 QNRTC.init(Context, QNRTCSetting, QNRTCEventListener) 方法进行自定义 QNRTCSetting 配置的初始化,QNRTCSetting 支持的配置及说明具体如下:

    设置视频的编码方式

    通过调用 QNRTCSetting.setHWCodecEnabled 接口配置编码方式,默认开启硬编

    public QNRTCSetting setHWCodecEnabled(boolean enabled)
    

    设置是否固定分辨率

    通过调用 QNRTCSetting.setMaintainResolution 设置是否固定分辨率,默认开启分辨率自适应

    public QNRTCSetting setMaintainResolution(boolean maintainResolution)
    
    1. 该选项可以控制编码分辨率不会由于带宽控制策略而变化
    2. 单路转推 CDN 的场景下,请务必开启固定分辨率的选项,否则可能会出现不可预知的问题

    日志相关配置

    从 v5.2.3 开始,SDK 默认会进行日志的本地存储,同时支持日志的上报。

    基本配置

    可通过调用 QNRTC.setLogConfig 进行日志等级日志存储路径以及日志存储文件大小的相关配置,示例代码如下:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        QNRTC.init(this, new QNRTCEventListener());                      // 初始化 RTC 环境
        QNLogConfig logConfig = new QNLogCofnig(this, QNLogLevel.INFO);  // 创建 QNLogConfig
        QNRTC.setLogConfig(logConfig);  // 设置 QNLogConfig
    }
    

    其中,QNLogConfig 为主要的日志配置类,使用注意事项可参考接口文档

    QNRTCSetting.setLogLevelQNRTC.setLogFileEnabled 接口在 v5.2.3 之后已被废弃,请使用上述最新接口替代。

    日志上报

    可通过调用 QNRTC.uploadLog[1/2]QNRTC.uploadLog[2/2] 接口进行日志文件的上报:

    public static void uploadLog(QNUploadLogResultCallback callback);                // 上传日志到七牛服务器
    public static void uploadLog(String token, QNUploadLogResultCallback callback);  // 上传日志到指定七牛云存储空间
    
    1. 调用上传接口前需要确保已经通过 QNRTC.init 完成了 SDK 的初始化
    2. 若业务需要上传日志到自定义的七牛云存储空间,则需要您的业务服务器自行签算上传 token,签算规则可参考上传策略文档
    3. 日志上传结果及其相关错误码说明可参考 QNUploadLogResultCallback 接口文档

    设置是否将扬声器作为默认音频输出设备

    通过调用 QNRTCSetting.setDefaultAudioRouteToSpeakerphone 设置是否将扬声器作为默认音频输出设备,默认音频路由为扬声器。

    public QNRTCSetting setDefaultAudioRouteToSpeakerphone(boolean defaultAudioRouteToSpeakerphone)
    

    设置媒体传输方式

    通过调用 QNRTCSetting.setTransportPolicy 设置媒体传输方式。默认使用 UDP 传输。

    public QNRTCSetting setTransportPolicy(TransportPolicy transportPolicy)
    

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

    public enum TransportPolicy {
        /**
         * 强制使用 UDP 做媒体传输(默认值)
         */
        FORCE_UDP,
        /**
         * 强制使用 TCP 做媒体传输
         */
        FORCE_TCP,
        /**
         * 优先使用 UDP 做媒体传输,允许自动切换 TCP
         */
        PREFER_UDP
    }
    

    设置音频场景

    通过调用 QNRTC.setAudioScene 设置音频场景,详细可阅读 音频场景实践

    设置编码质量优先模式

    通过调用 QNRTCSetting.setEncoderQualityMode 设置开启编码质量优先模式,默认为关闭状态,使用码率优先模式。

    public QNRTCSetting setEncoderQualityMode(boolean encoderQualityMode)
    

    质量优先模式会优先保证视频的编码质量,实际码率可能会和目标码率存在差异。关闭该模式后会尽量控制编码码率为目标码率。

    设置重连时长

    SDK 默认会有 30s 的重连时间,通过调用 QNRTCSetting.setReconnectionTimeout 可以修改重连时长的配置。

    public QNRTCSetting setReconnectionTimeout(int reconnectionTimeout)
    
    以上内容是否对您有帮助?
  • Qvm free helper
    Close