human: 如何处理七牛云的实时音视频QNRTCSetting

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android >QNRTCSetting

#  QNRTCSetting

最近更新时间: 2023-08-17 15:26:12

SDK 的核心参数配置接口类。

Index

Core Methods

  * isHWCodecEnabled
  * setHWCodecEnabled
  * isMaintainResolution
  * setMaintainResolution
  * getFieldTrials
  * setFieldTrials
  * getTransportPolicy
  * setTransportPolicy
  * getAudioScene
  * setAudioScene
  * isEncoderQualityMode
  * setEncoderQualityMode
  * getLogLevel
  * setLogLevel
  * isDefaultAudioRouteToSpeakerphone
  * setDefaultAudioRouteToSpeakerphone
  * getCustomSharedLibraryDir
  * setCustomSharedLibraryDir
  * getReconnectionTimeout
  * setReconnectionTimeout

Enum

  * TransportPolicy

Core Methods

isHWCodecEnabled

  * boolean isHWCodecEnabled()
  * 获取是否开启了硬编码

Returns 是否开启了硬编码，true 为开启，false 为关闭

setHWCodecEnabled

  * [QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting) setHWCodecEnabled(boolean enabled)
  * 设置是否开启硬编码，默认关闭

> 硬编码提供了更快的编码速率，但是个别机型上可能存在兼容性问题。因此，若硬编场景下出现花屏、绿屏等现象，可尝试将视频发布端的编码方式设置为软编再观察下

Parameters

    * enabled: boolean 

是否开启硬编码

Returns
[QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting)

isMaintainResolution

  * boolean isMaintainResolution()
  * 获取是否固定了编码分辨率，默认不固定

Returns 是否固定了编码分辨率

setMaintainResolution

  * [QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting) setMaintainResolution(boolean maintainResolution)
  * 设置是否固定编码分辨率，默认关闭

开启该选项可以保证编码分辨率不会由于带宽控制策略的调整而产生变化，但是帧率可能会被降低，需根据实际应用场景选择是否开启

> 单路转推 CDN 场景下，请务必开启该选项

> 该接口已废弃，请使用
> [QNVideoEncoderConfig](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8701/QNVideoEncoderConfig\[2/4\])
> 接口进行降级策略的配置

Parameters

    * maintainResolution: boolean 

是否开启固定分辨率

Returns
[QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting)

getFieldTrials

  * String getFieldTrials()
  * 获取拓展配置内容

Returns 拓展配置内容

setFieldTrials

  * [QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting) setFieldTrials(String fieldTrials)
  * 设置 WebRTC 的一些拓展配置

> 拓展配置的字段由七牛定义，通常情况下，您将不会用到该配置接口

Parameters

    * fieldTrials: String 

拓展配置

Returns
[QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting)

getTransportPolicy

  * [TransportPolicy](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686) getTransportPolicy()
  * 获取当前设置的传输模式

Returns 当前设置的传输模式

setTransportPolicy

  * [QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting) setTransportPolicy([TransportPolicy](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686) transportPolicy)
  * 设置传输模式，默认模式为 FORCE_UDP

传输模式包括 FORCE_UDP、FORCE_TCP 和 PREFER_UDP 三种，其中，PREFER_UDP 会优先使用 UDP，并允许自动切换为
TCP，常规场景下，使用默认配置即可

Parameters

    * transportPolicy: [TransportPolicy](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686)

传输模式，默认强制使用 UDP
传输，见[TransportPolicy](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686)

Returns
[QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting)

getAudioScene

  * [QNAudioScene](https://developer.qiniu.com/rtc/8686/QNRTCSetting/12165/QNAudioScene) getAudioScene()
  * 获取当前设置的音频场景

Returns 当前设置的音频场景

setAudioScene

  * [QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting) setAudioScene([QNAudioScene](https://developer.qiniu.com/rtc/8686/QNRTCSetting/12165/QNAudioScene) audioScene)
  * 设置音频场景，默认音频场景为 DEFAULT

音频场景也可通过
[QNRTC.setAudioScene](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8732)
接口动态修改

> 音频场景包括 DEFAULT、VOICE_CHAT 和 SOUND_EQUALIZE 三种，不同场景下，设备的音量类型存在差异，其中：
>
> 1\. DEFAULT 场景会根据发布和订阅的情况自动切换音频模式，仅发布或仅订阅时，SDK 使用媒体模式；同时发布和订阅时，SDK
> 将自动切换到通话模式
>
> 2\. VOICE_CHAT 场景恒定使用通话模式，调节的音量类型为通话音量
>
> 3\. SOUND_EQUALIZE 场景恒定使用媒体模式，调节的音量类型为媒体音量
>
> 4\. 佩戴蓝牙耳机的场景，将恒定使用通话模式，在蓝牙通话过程中修改的音频场景将会在蓝牙连接断开后生效
>
> 5\. 佩戴有线耳机的场景，将恒定使用媒体模式，在通话过程中修改的音频场景将会在耳机拔出后生效

Parameters

    * audioScene: [QNAudioScene](https://developer.qiniu.com/rtc/8686/QNRTCSetting/12165/QNAudioScene)

音频场景，见
[QNAudioScene](https://developer.qiniu.com/rtc/8686/QNRTCSetting/12165/QNAudioScene)

Returns
[QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting)

isEncoderQualityMode

  * boolean isEncoderQualityMode()
  * 获取当前的编码方式是否为质量优先模式

Returns 当前编码模式是否为质量优先模式

setEncoderQualityMode

  * [QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting) setEncoderQualityMode(boolean encoderQualityMode)
  * 设置是否开启编码器质量优先模式，默认关闭

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

Parameters

    * encoderQualityMode: boolean 

true 代表开启质量优先模式

Returns
[QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting)

getLogLevel

  * [QNLogLevel](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8665/QNLogLevel) getLogLevel()
  * 获取当前设置的日志等级

> 该接口已废弃，请使用
> [QNRTC.setLogConfig](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8732)
> 接口进行日志的配置

Returns 当前设置的日志等级

setLogLevel

  * [QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting) setLogLevel([QNLogLevel](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8665/QNLogLevel) logLevel)
  * 设置打印日志的级别，默认级别为 QNLogLevel.INFO

> 该接口已废弃，请使用
> [QNRTC.setLogConfig](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8732)
> 接口进行日志的配置

Parameters

    * logLevel: [QNLogLevel](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8665/QNLogLevel)

打印日志的级别，默认值为 QNLogLevel.INFO ，见
[QNLogLevel](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8665/QNLogLevel)

Returns
[QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting)

isDefaultAudioRouteToSpeakerphone

  * boolean isDefaultAudioRouteToSpeakerphone()
  * 获取是否默认音频路由为扬声器

Returns 当前默认音频路由是否为扬声器

setDefaultAudioRouteToSpeakerphone

  * [QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting) setDefaultAudioRouteToSpeakerphone(boolean defaultAudioRouteToSpeakerphone)
  * 设置是否配置扬声器为默认音频路由，若传入 false，则默认音频路由为听筒。

Parameters

    * defaultAudioRouteToSpeakerphone: boolean 

true 代表默认音频路由为扬声器，false 代表默认音频路由为听筒

Returns
[QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting)

getCustomSharedLibraryDir

  * String getCustomSharedLibraryDir()
  * 获取自定义动态库加载路径

Returns 当前的自定义动态库加载路径

setCustomSharedLibraryDir

  * [QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting) setCustomSharedLibraryDir(String customSharedLibraryDir)
  * 设置自定义动态库加载目录

> 建议使用应用专属目录或者通过 Context.getDir 接口获取应用自定义的数据存储目录

Parameters

    * customSharedLibraryDir: String 

自定义动态库加载目录

Returns
[QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting)

getReconnectionTimeout

  * int getReconnectionTimeout()
  * 获取 SDK 的重连时长，默认为 30s

Returns SDK 的重连时长，单位 ms

setReconnectionTimeout

  * [QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting) setReconnectionTimeout(int reconnectionTimeout)
  * 设置 SDK 的重连时长，默认为 30s

Parameters

    * reconnectionTimeout: int 

重连时长，单位 ms

Returns
[QNRTCSetting](https://developer.qiniu.com/rtc/8686/QNRTCSetting/8686/QNRTCSetting)

Enum

TransportPolicy

  * Type declaration

    * FORCE_UDP

    * FORCE_TCP

    * PREFER_UDP

以上内容是否对您有帮助？