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

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

#  QNRTC

最近更新时间: 2024-06-28 17:54:49

QNRTC 作为 SDK 的入口，提供初始化，创建本地音视频轨道，创建
[QNRTCClient](https://developer.qiniu.com/rtc/8732/QNRTC/8684/QNRTCClient)
对象等一系列静态方法

Index

Core Methods

  * init[1/2]
  * init[2/2]
  * deinit
  * createClient[1/2]
  * createClient[2/2]
  * createCDNStreamingClient
  * createMicrophoneAudioTrack[1/2]
  * createMicrophoneAudioTrack[2/2]
  * createCustomAudioTrack[1/2]
  * createCustomAudioTrack[2/2]
  * createCameraVideoTrack[1/2]
  * createCameraVideoTrack[2/2]
  * createScreenVideoTrack[1/2]
  * createScreenVideoTrack[2/2]
  * createCustomVideoTrack[1/2]
  * createCustomVideoTrack[2/2]
  * createMediaRecorder
  * setAudioScene
  * setAudioRouteToSpeakerphone
  * setSpeakerphoneMuted
  * setLogFileEnabled[1/2]
  * setLogFileEnabled[2/2]
  * setLogFileMaxCount
  * setLogConfig
  * uploadLog[1/2]
  * uploadLog[2/2]
  * createAudioMusicMixer
  * createAudioEffectMixer
  * createAudioSourceMixer

Core Methods

init[1/2]

  * static void init(Context context, [QNRTCEventListener](https://developer.qiniu.com/rtc/8732/QNRTC/8685/QNRTCEventListener) listener)
  * 使用默认配置初始化 SDK

> 在使用 SDK 接口前，请务必先调用该接口进行 RTC 环境的初始化

Parameters

    * context: Context 

上下文句柄

    * listener: [QNRTCEventListener](https://developer.qiniu.com/rtc/8732/QNRTC/8685/QNRTCEventListener)

SDK 事件回调，回调设备相关的事件等

init[2/2]

  * static void init(Context context, [QNRTCSetting](https://developer.qiniu.com/rtc/8732/QNRTC/8686/QNRTCSetting) setting, [QNRTCEventListener](https://developer.qiniu.com/rtc/8732/QNRTC/8685/QNRTCEventListener) listener)
  * 使用自定义配置初始化 SDK

> 在使用 SDK 接口前，请务必先调用该接口进行 RTC 环境的初始化

Parameters

    * context: Context 

上下文句柄

    * setting: [QNRTCSetting](https://developer.qiniu.com/rtc/8732/QNRTC/8686/QNRTCSetting)

SDK 核心参数配置，见
[QNRTCSetting](https://developer.qiniu.com/rtc/8732/QNRTC/8686/QNRTCSetting)

    * listener: [QNRTCEventListener](https://developer.qiniu.com/rtc/8732/QNRTC/8685/QNRTCEventListener)

SDK 事件回调，回调设备相关的事件等

deinit

  * static void deinit()
  * 反初始化操作

> 在确认不再使用 RTC SDK 后调用此接口释放其占用的资源，此后再次使用 SDK 需重新调用 init 方法

createClient[1/2]

  * static [QNRTCClient](https://developer.qiniu.com/rtc/8732/QNRTC/8684/QNRTCClient) createClient([QNClientEventListener](https://developer.qiniu.com/rtc/8732/QNRTC/8643/QNClientEventListener) listener)
  * 创建一个连接对象并为其设置事件监听，QNRTCClient 全局只可存在一个

Parameters

    * listener: [QNClientEventListener](https://developer.qiniu.com/rtc/8732/QNRTC/8643/QNClientEventListener)

连接中的事件监听

Returns 连接管理对象

createClient[2/2]

  * static [QNRTCClient](https://developer.qiniu.com/rtc/8732/QNRTC/8684/QNRTCClient) createClient([QNRTCClientConfig](https://developer.qiniu.com/rtc/8732/QNRTC/10169/QNRTCClientConfig) clientConfig, [QNClientEventListener](https://developer.qiniu.com/rtc/8732/QNRTC/8643/QNClientEventListener) listener)
  * 使用 [QNRTCClientConfig](https://developer.qiniu.com/rtc/8732/QNRTC/10169/QNRTCClientConfig) 创建一个连接对象并为其设置事件监听，QNRTCClient 全局只可存在一个

其中，[QNRTCClientConfig](https://developer.qiniu.com/rtc/8732/QNRTC/10169/QNRTCClientConfig)
用于指定音视频通话的具体场景以及对应的用户角色，默认使用场景为
[QNClientMode.RTC](https://developer.qiniu.com/rtc/8732/QNRTC/10162)

Parameters

    * clientConfig: [QNRTCClientConfig](https://developer.qiniu.com/rtc/8732/QNRTC/10169/QNRTCClientConfig)

连接管理对象初始化配置，用于配置音视频通话场景及用户角色

    * listener: [QNClientEventListener](https://developer.qiniu.com/rtc/8732/QNRTC/8643/QNClientEventListener)

连接中的事件监听

Returns 连接管理对象

createCDNStreamingClient

  * static [QNCDNStreamingClient](https://developer.qiniu.com/rtc/8732/QNRTC/12649/QNCDNStreamingClient) createCDNStreamingClient()
  * 创建 CDN 直推控制类实例

Returns CDN 直推控制类实例

createMicrophoneAudioTrack[1/2]

  * static [QNMicrophoneAudioTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8667/QNMicrophoneAudioTrack) createMicrophoneAudioTrack()
  * 创建一个默认的麦克风音频轨道对象，默认 tag 为 ""，默认音频参数为 [QNAudioQualityPreset.LOW](https://developer.qiniu.com/rtc/8732/QNRTC/8635)

> 本地音频 Track 只可存在一个，重复创建会返回 null

Returns
[QNMicrophoneAudioTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8667/QNMicrophoneAudioTrack)

createMicrophoneAudioTrack[2/2]

  * static [QNMicrophoneAudioTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8667/QNMicrophoneAudioTrack) createMicrophoneAudioTrack([QNMicrophoneAudioTrackConfig](https://developer.qiniu.com/rtc/8732/QNRTC/8668/QNMicrophoneAudioTrackConfig) config)
  * 通过自定义 [QNMicrophoneAudioTrackConfig](https://developer.qiniu.com/rtc/8732/QNRTC/8668/QNMicrophoneAudioTrackConfig) 来创建一个麦克风音频轨道对象

> 本地音频 Track 只可存在一个，重复创建会返回 null

Parameters

    * config: [QNMicrophoneAudioTrackConfig](https://developer.qiniu.com/rtc/8732/QNRTC/8668/QNMicrophoneAudioTrackConfig)

采集音频的配置，可指定音频质量等级与开关通讯模式

Returns
[QNMicrophoneAudioTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8667/QNMicrophoneAudioTrack)

createCustomAudioTrack[1/2]

  * static [QNCustomAudioTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8646/QNCustomAudioTrack) createCustomAudioTrack()
  * 创建一个默认的自定义音频轨道对象，默认 tag 为 ""，默认音频参数为 [QNAudioQualityPreset.LOW](https://developer.qiniu.com/rtc/8732/QNRTC/8635)

> 本地音频 Track 只可存在一个，重复创建会返回 null

Returns
[QNCustomAudioTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8646/QNCustomAudioTrack)

createCustomAudioTrack[2/2]

  * static [QNCustomAudioTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8646/QNCustomAudioTrack) createCustomAudioTrack([QNCustomAudioTrackConfig](https://developer.qiniu.com/rtc/8732/QNRTC/8647/QNCustomAudioTrackConfig) config)
  * 通过自定义 [QNCustomAudioTrackConfig](https://developer.qiniu.com/rtc/8732/QNRTC/8647/QNCustomAudioTrackConfig) 来创建一个自定义音频轨道对象

> 本地音频 Track 只可存在一个，重复创建会返回 null

Parameters

    * config: [QNCustomAudioTrackConfig](https://developer.qiniu.com/rtc/8732/QNRTC/8647/QNCustomAudioTrackConfig)

采集音频的配置，可指定音频质量等级

Returns
[QNCustomAudioTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8646/QNCustomAudioTrack)

createCameraVideoTrack[1/2]

  * static [QNCameraVideoTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8640/QNCameraVideoTrack) createCameraVideoTrack()
  * 创建一个默认的摄像头视频轨道对象，默认 tag 为 ""，默认视频推送参数为 640 x 480，20fps，800kbps

Returns
[QNCameraVideoTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8640/QNCameraVideoTrack)

createCameraVideoTrack[2/2]

  * static [QNCameraVideoTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8640/QNCameraVideoTrack) createCameraVideoTrack([QNCameraVideoTrackConfig](https://developer.qiniu.com/rtc/8732/QNRTC/8642/QNCameraVideoTrackConfig) config)
  * 通过自定义 [QNCameraVideoTrackConfig](https://developer.qiniu.com/rtc/8732/QNRTC/8642/QNCameraVideoTrackConfig) 来创建一个摄像头视频轨道对象

Parameters

    * config: [QNCameraVideoTrackConfig](https://developer.qiniu.com/rtc/8732/QNRTC/8642/QNCameraVideoTrackConfig)

摄像头 Track 的配置，可设置视频的采集配置、编码配置等

Returns
[QNCameraVideoTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8640/QNCameraVideoTrack)

createScreenVideoTrack[1/2]

  * static [QNScreenVideoTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8687/QNScreenVideoTrack) createScreenVideoTrack()
  * 创建一个默认的屏幕录制轨道对象，默认 tag 为 ""，默认视频推送参数为 640 x 480，20fps，800kbps

Returns
[QNScreenVideoTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8687/QNScreenVideoTrack)

createScreenVideoTrack[2/2]

  * static [QNScreenVideoTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8687/QNScreenVideoTrack) createScreenVideoTrack([QNScreenVideoTrackConfig](https://developer.qiniu.com/rtc/8732/QNRTC/8688/QNScreenVideoTrackConfig) config)
  * 通过自定义 [QNScreenVideoTrackConfig](https://developer.qiniu.com/rtc/8732/QNRTC/8688/QNScreenVideoTrackConfig) 来创建一个屏幕录制轨道对象

Parameters

    * config: [QNScreenVideoTrackConfig](https://developer.qiniu.com/rtc/8732/QNRTC/8688/QNScreenVideoTrackConfig)

屏幕录制 Track 的配置，可设置视频的编码配置与开关大小流功能

Returns
[QNScreenVideoTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8687/QNScreenVideoTrack)

createCustomVideoTrack[1/2]

  * static [QNCustomVideoTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8649/QNCustomVideoTrack) createCustomVideoTrack()
  * 创建一个默认的自定义视频采集轨道对象，默认 tag 为 ""，默认视频推送参数为 640 x 480，20fps，800kbps

Returns
[QNCustomVideoTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8649/QNCustomVideoTrack)

createCustomVideoTrack[2/2]

  * static [QNCustomVideoTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8649/QNCustomVideoTrack) createCustomVideoTrack([QNCustomVideoTrackConfig](https://developer.qiniu.com/rtc/8732/QNRTC/8650/QNCustomVideoTrackConfig) config)
  * 通过自定义 [QNCustomVideoTrackConfig](https://developer.qiniu.com/rtc/8732/QNRTC/8650/QNCustomVideoTrackConfig) 来创建自定义视频采集轨道对象

Parameters

    * config: [QNCustomVideoTrackConfig](https://developer.qiniu.com/rtc/8732/QNRTC/8650/QNCustomVideoTrackConfig)

自定义视频采集 Track 的配置，可设置视频的编码配置与开关大小流功能

Returns
[QNCustomVideoTrack](https://developer.qiniu.com/rtc/8732/QNRTC/8649/QNCustomVideoTrack)

createMediaRecorder

  * static [QNMediaRecorder](https://developer.qiniu.com/rtc/8732/QNRTC/12726/QNMediaRecorder-Android) createMediaRecorder())
  * 创建音视频本地录制管理类实例

Returns
[QNMediaRecorder](https://developer.qiniu.com/rtc/8732/QNRTC/12726/QNMediaRecorder-
Android)

setAudioScene

  * static void setAudioScene([QNAudioScene](https://developer.qiniu.com/rtc/8732/QNRTC/12165/QNAudioScene) audioScene)
  * 切换音频场景

> 音频场景包括 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/8732/QNRTC/12165/QNAudioScene)

指定音频场景

setAudioRouteToSpeakerphone

  * static void setAudioRouteToSpeakerphone(boolean audioRouteToSpeakerphone)
  * 设置是否将音频路由切换到扬声器。

设置生效后会触发
[QNRTCEventListener.onAudioRouteChanged](https://developer.qiniu.com/rtc/8732/QNRTC/8685)
回调对应的路由状态。

默认音频路由为扬声器，可通过
[QNRTCSetting.setDefaultAudioRouteToSpeakerphone](https://developer.qiniu.com/rtc/8732/QNRTC/8686)
修改默认音频路由配置。

在音频路由为扬声器且未佩戴耳机的情况下，设置 false 将会将音频路由切换到听筒。

> 1\. 设置为 true，音频将会通过扬声器播放
>
> 2\. 设置为 false，音频将会通过蓝牙、有线耳机、听筒等设备播放，具体路由取决于当时的设备连接情况
>
> 3\. 在 false 状态下，断开蓝牙、有线耳机等设备后，音频将通过听筒播放，若需切换为扬声器，可监听
> [QNRTCEventListener.onAudioRouteChanged](https://developer.qiniu.com/rtc/8732/QNRTC/8685)
> 回调并重新设置音频路由

Parameters

    * audioRouteToSpeakerphone: boolean 

是否将音频路由切换到扬声器

setSpeakerphoneMuted

  * static void setSpeakerphoneMuted(boolean muted)
  * 设置是否静音扬声器，静音后将听不到远端用户的声音。默认为 false

Parameters

    * muted: boolean 

是否静音扬声器

setLogFileEnabled[1/2]

  * static void setLogFileEnabled(boolean isEnabled)
  * 设置是否开启本地日志保存功能，默认开启。

> 日志文件优先存储在外部存储空间应用专属目录 (Context.getExternalFilesDir(null)) 中的 QNRTCLog
> 文件夹下，若外部存储空间不可用，则将保存在内部存储空间应用专属目录 (Context.getFilesDir()) 中的 QNRTCLog 文件夹下

> 该接口已废弃，默认会进行本地日志的存储操作

Parameters

    * isEnabled: boolean 

是否开启本地日志保存，默认为 true

setLogFileEnabled[2/2]

  * static void setLogFileEnabled(boolean isEnabled, String pathPrefix)
  * 设置是否开启本地日志保存功能，并设置保存文件的前缀名，默认开启，且前缀为 ""。

> 日志文件优先存储在外部存储空间应用专属目录 (Context.getExternalFilesDir(null)) 中的 QNRTCLog
> 文件夹下，若外部存储空间不可用，则将保存在内部存储空间应用专属目录 (Context.getFilesDir()) 中的 QNRTCLog 文件夹下

> 该接口已废弃，默认会进行本地日志的存储操作

Parameters

    * isEnabled: boolean 

是否开启本地日志保存，默认为 true

    * pathPrefix: String 

日志文件的前缀名，默认为 ""

setLogFileMaxCount

  * static void setLogFileMaxCount(int maxCount)
  * 设置开启本地日志保存后，可保存文件的最大数量，默认值为 3

> 该接口已废弃，SDK 最多允许保存 3 个日志文件

Parameters

    * maxCount: int 

本地保存日志文件的最大数量

setLogConfig

  * static void setLogConfig([QNLogConfig](https://developer.qiniu.com/rtc/8732/QNRTC/12415/QNLogConfig) logConfig)
  * 设置日志文件配置，包括文件存储路径、日志等级、日志文件的大小等

> 1\. 默认日志存储路径为外部存储空间应用专属目录 (Context.getExternalFilesDir(null)) 中的 QNRTCLog
> 文件夹下，若外部存储空间不可用，则将保存在内部存储空间应用专属目录 (Context.getFilesDir()) 中的 QNRTCLog 文件夹下
>
> 2\. 默认日志等级为 INFO 级别
>
> 3\. SDK 最多存储 3 个文件，默认每个文件大小的最大限制为 3MB，文件大小限制最多不可超过 10MB

Parameters

    * logConfig: [QNLogConfig](https://developer.qiniu.com/rtc/8732/QNRTC/12415/QNLogConfig)

日志文件配置

uploadLog[1/2]

  * static void uploadLog([QNUploadLogResultCallback](https://developer.qiniu.com/rtc/8732/QNRTC/12414/QNUploadLogResultCallback) callback)
  * 上传本地文件至七牛服务器

> 该接口需要在 QNRTC.init 之后调用

Parameters

    * callback: [QNUploadLogResultCallback](https://developer.qiniu.com/rtc/8732/QNRTC/12414/QNUploadLogResultCallback)

日志上传回调监听

uploadLog[2/2]

  * static void uploadLog({String token, {QNUploadLogResultCallback}} callback)
  * 上传本地文件至指定的七牛云存储空间

token
需要您的业务服务器自行签算，签算规则可参考[上传策略](https://developer.qiniu.com/kodo/1208/upload-
token)文档

> 该接口需要在 QNRTC.init 之后调用

Parameters

    * token: String 

上传 token

    * callback: [QNUploadLogResultCallback](https://developer.qiniu.com/rtc/8732/QNRTC/12414/QNUploadLogResultCallback)

日志上传回调监听

createAudioMusicMixer

  * [QNAudioMusicMixer](https://developer.qiniu.com/rtc/8732/QNRTC/11921/QNAudioMusicMixer) createAudioMusicMixer(String musicPath, [QNAudioMusicMixerListener](https://developer.qiniu.com/rtc/8732/QNRTC/11919/QNAudioMusicMixerListener) listener)
  * 创建背景音乐混音控制器对象

支持本地和在线文件，支持的文件格式为：aac、mp3、mp4、ogg、opus、wav、m4a、flac

> 注意：
>
> 1\. 背景音乐混音仅支持同时混合一路背景音乐，若需要切换背景音乐，重新调用本接口创建
> [QNAudioMusicMixer](https://developer.qiniu.com/rtc/8732/QNRTC/11921/QNAudioMusicMixer)
> 即可
>
> 2\. 建议使用本地文件进行混音，以避免网络环境差引起的混音异常
>
> 3\.
> 若您希望在混合背景音乐的同时添加音效，可参考音效混音相关接口([QNAudioEffectMixer](https://developer.qiniu.com/rtc/8732/QNRTC/11923/QNAudioEffectMixer))

Parameters

    * musicPath: String 

音频文件路径，支持本地文件和在线文件

    * listener: [QNAudioMusicMixerListener](https://developer.qiniu.com/rtc/8732/QNRTC/11919/QNAudioMusicMixerListener)

混音控制器监听接口

Returns
[QNAudioMusicMixer](https://developer.qiniu.com/rtc/8732/QNRTC/11921/QNAudioMusicMixer)

createAudioEffectMixer

  * [QNAudioEffectMixer](https://developer.qiniu.com/rtc/8732/QNRTC/11923/QNAudioEffectMixer) createAudioEffectMixer([QNAudioEffectMixerListener](https://developer.qiniu.com/rtc/8732/QNRTC/11924/QNAudioEffectMixerListener) listener)
  * 创建音效混音控制器对象

> 音效混音支持同时混合多路音效文件

Parameters

    * listener: [QNAudioEffectMixerListener](https://developer.qiniu.com/rtc/8732/QNRTC/11924/QNAudioEffectMixerListener)

音效混音控制器监听接口

Returns
[QNAudioEffectMixer](https://developer.qiniu.com/rtc/8732/QNRTC/11923/QNAudioEffectMixer)

createAudioSourceMixer

  * [QNAudioSourceMixer](https://developer.qiniu.com/rtc/8732/QNRTC/12212/QNAudioSourceMixer) createAudioSourceMixer([QNAudioSourceMixerListener](https://developer.qiniu.com/rtc/8732/QNRTC/12211/QNAudioSourceMixerListener) listener)
  * 创建音源混音控制器对象

> 音源混音支持同时混合多路音源

Parameters

    * listener: [QNAudioSourceMixerListener](https://developer.qiniu.com/rtc/8732/QNRTC/12211/QNAudioSourceMixerListener)

混音器监听接口

Returns
[QNAudioSourceMixer](https://developer.qiniu.com/rtc/8732/QNRTC/12212/QNAudioSourceMixer)

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