human: 如何处理七牛云的实时音视频API 概览

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

#  API 概览

最近更新时间: 2024-02-23 18:34:17

QNDroidRTC 是七牛推出的一款适用于 Android 平台的音视频通话
SDK，提供了包括美颜、滤镜、音视频通话等多种功能，提供灵活的接口，支持高度定制以及二次开发，您可以很方便地在 Android
平台上开发出一款基于实时音视频的应用。

> 本文档适用于 QNDroidRTC 4.x 版本的 SDK，并不向下兼容。
>
> QNDroidRTC 4.x 是在 3.x 的基础上进行了 API 的重构和优化，从而使使用者能够更加高效的接入，所以新接入的用户推荐使用最新版本的
> SDK。
>
> 老用户也可以继续使用 QNDroidRTC 3.x 版本，我们也会持续在此版本上进行问题修复和版本更迭，但是后续的一些新功能有可能并不会在 3.x
> 版本上提供。若您决定继续使用 3.x 版本 SDK，则可参考 [3.x
> 及之前版本的相关文档](https://doc.qnsdk.com/rtn/android/)
>
> 使用 3.x 或者更低版本的用户若想升级至 v4.x 版本，可参考 [4.x
> 版本迁移指南](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/9394/migration-
> guide-android) 进行升级

QNRTC

QNRTC 提供 SDK 的入口方法，可以通过它进行 SDK 的初始化，各个类型 Track 的创建等操作。其核心方法如下：

初始化与反初始化

方法 | 描述  
---|---  
[init](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8732) | 初始化 SDK  
[deinit](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8732) | 反初始化 SDK  
  
创建 Track

方法 | 描述  
---|---  
[createMicrophoneAudioTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8732) | 创建麦克风音频轨道  
[createCameraVideoTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8732) | 创建摄像头视频轨道  
[createScreenVideoTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8732) | 创建屏幕采集的视频轨道  
[createCustomAudioTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8732) | 创建自定义导入音频数据轨道  
[createCustomVideoTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8732) | 创建自定义导入视频数据轨道  
  
音频播放路由

方法 | 描述  
---|---  
[setAudioRouteToSpeakerphone](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8732) | 设置默认音频播放路由为扬声器  
  
QNRTCClient

QNRTCClient 提供和房间相关的一些列方法，通过它我们可以实现加入房间，在房间内发布或者订阅相应的音视频轨道等操作。主要的核心方法如下：

核心方法

方法 | 描述  
---|---  
[join](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8684) | 加入房间  
[leave](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8684) | 离开房间  
[publish](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8684) | 发布本地的音视频轨道  
[unpublish](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8684) | 取消发布本地的音视频轨道  
[subscribe](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8684) | 订阅远端用户发布的音视频轨道  
[unsubscribe](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8684) | 取消订阅远端用户发布的音视频轨道  
  
CDN 转推

方法 | 描述  
---|---  
[startLiveStreaming](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8684) | 开始单路转推或者合流转推  
[stopLiveStreaming](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8684) | 停止单路转推或者合流转推  
[setTranscodingLiveStreamingTracks](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8684) | 更新合流转推的布局配置  
[removeTranscodingLiveStreamingTracks](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8684) | 移除合流转推的布局配置  
[setLiveStreamingListener](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8684) | 设置转推相关事件的监听器  
  
跨房媒体转发

方法 | 描述  
---|---  
[startMediaRelay](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8684) | 开启跨房媒体转发  
[updateMediaRelay](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8684) | 更新跨房媒体转发状态  
[stopMediaRelay](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8684) | 停止跨房媒体转发  
  
QNLocalTrack

QNLocalTrack 是本地创建的一个音频或者视频轨道，可以通过 QNRTC
来创建各种类型的音视频轨道，例如麦克风采集的音频轨道，摄像头采集的视频轨道，或者屏幕采集的视频轨道等等，我们真正用到的是它所衍生的子类。

以 QNLocalTrack 为基类，向下衍生的子类如下：

Hierarchy

  * [QNLocalTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8662/QNLocalTrack)
    * [QNLocalVideoTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8663/QNLocalVideoTrack)
      * [QNCameraVideoTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8640/QNCameraVideoTrack)
      * [QNScreenVideoTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8687/QNScreenVideoTrack)
      * [QNCustomVideoTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8649/QNCustomVideoTrack)
    * [QNLocalAudioTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8660/QNLocalAudioTrack)
      * [QNMicrophoneAudioTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8667/QNMicrophoneAudioTrack)
      * [QNCustomAudioTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8646/QNCustomAudioTrack)

  * 本地音频轨道 | 描述  
---|---  
[QNMicrophoneAudioTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8667/QNMicrophoneAudioTrack) | 以麦克风采集到的音频数据为数据源创建的音频轨道，提供了音量控制，播放，数据回调等接口，通过 QNRTC.createMicrophoneAudioTrack 创建。  
[QNCustomAudioTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8646/QNCustomAudioTrack) | 以外部导入的 PCM 音频数据为数据源创建的音频轨道，可以通过 pushAudioFrame 方法向房间内推送数据，通过 QNRTC.createCustomAudioTrack 创建。  
本地视频轨道 | 描述  
---|---  
[QNCameraVideoTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8640/QNCameraVideoTrack) | 以摄像头采集到的视频数据为数据源创建的视频轨道，提供了包括摄像头采集，渲染播放，前后摄像头切换，开启闪光灯，设置曝光度等一系列操作摄像头的方法。通过 QNRTC.createCameraVideoTrack 创建。  
[QNScreenVideoTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8687/QNScreenVideoTrack) | 以屏幕采集到的视频数据为数据源创建的视频轨道，提供屏幕录制的权限申请等一些列方法，通过 QNRTC.createScreenVideoTrack 创建。  
[QNCustomVideoTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8649/QNCustomVideoTrack) | 以外部导入的 NV21 格式的视频数据或者纹理数据为数据源创建的音频轨道，可以通过 pushVideoFrame 方法往房间内推送视频数据，通过 QNRTC.createCustomVideoTrack 创建。  

QNRemoteTrack

QNRemoteTrack 是远端用户创建的音视频轨道，本地用户可以通过房间中的事件回调获取。其衍生的子类如下：

Hierarchy

  * [QNRemoteTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8676/QNRemoteTrack)
    * [QNRemoteVideoTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8680/QNRemoteVideoTrack)
    * [QNRemoteAudioTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8674/QNRemoteAudioTrack)

  * 远端音视频轨道 | 描述  
---|---  
[QNRemoteAudioTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8674/QNRemoteAudioTrack) | 远端用户发布的音频轨道，可以通过该类来调节、获取播放音量的大小，同时还提供了音频数据回调等。  
[QNRemoteVideoTrack](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8680/QNRemoteVideoTrack) | 远端用户发布的视频轨道，可以通过该类来把远端视频画面渲染到视图中，同时还提供了视频数据回调等。  

QNClientEventListener

房间内的事件可以通过该接口类进行监听，在调用 QNRTC.createClient 方法创建 QNClient 的时候，可以把
QNClientEventListener 作为参数传入。其提供的主要回调方法如下：

  * 方法 | 描述  
---|---  
[onConnectionStateChanged](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8643) | 房间状态改变时会触发此回调方法，自己加入房间成功，state 变为 CONNECTED，当离开房间时，state 变为 DISCONNECTED。详情可参看 [QNConnectionState](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8645/QNConnectionState)  
[onUserJoined](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8643) | 当远端用户加入房间时会触发此事件。  
[onUserPublished](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8643) | 当远端用户发布音视频轨道时会触发此事件。  
[onUserUnpublished](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8643) | 当远端用户取消发布音视频轨道时会触发此事件。  
[onUserLeft](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8643) | 当远端用户离开房间时会触发此事件。  
[onUserReconnecting](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8643) | 当远端用户正在重连时会触发此事件。  
[onUserReconnected](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8643) | 当远端用户重连成功时会触发此事件。  
[onSubscribed](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8643) | 当订阅远端用户的音视频轨道成功之后，会触发此事件。  
[onMessageReceived](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8643) | 当远端用户收到消息时会触发此事件。  
[onMediaRelayStateChanged](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8643) | 当媒体转发状态变更时会触发此事件。  
[onUserVolumeIndication](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8643) | 周期性的进行用户音量提示回调。  

事件监听

SDK 支持丰富的事件监听接口，不同场景下的事件监听接口定义如下：

  * 方法 | 描述  
---|---  
[QNRTCEventListener](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8685/QNRTCEventListener) | 核心回调接口，定义了设备相关的回调事件，如音频路由改变等。  
[QNClientEventListener](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8643/QNClientEventListener) | 核心回调接口，定义了房间相关的回调事件，包括房间连接状态、用户加入离开状态等。  
[QNCameraEventListener](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8637/QNCameraEventListener) | 摄像头状态回调接口，监听摄像头成功采集、错误等事件。  
[QNTrackInfoChangedListener](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8820/QNTrackInfoChangedListener) | 音视频 Track 信息变化监听接口，监听大小流切换、Track 静默状态改变等事件。  
[QNVideoFrameListener](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8704/QNVideoFrameListener) | 视频数据帧回调接口。  
[QNAudioFrameListener](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8630/QNAudioFrameListener) | 音频数据帧回调接口。  
[QNNetworkQualityListener](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8671/QNNetworkQualityListener) | 本地网络状态监听接口，定义了网络质量改变的回调事件。  
[QNLiveStreamingListener](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8658/QNLiveStreamingListener) | CDN 转推相关回调接口，监听任务转推成功、合流布局更新等事件。  
[QNAudioMixerListener](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/8632/QNAudioMixerListener) | 混音相关回调接口，监听混音状态、进度等事件。  
[QNAudioEffectMixerListener](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/11924/QNAudioEffectMixerListener) | 音效混音相关回调接口，监听音效混音的状态等事件。  
[QNAudioSourceMixerListener](https://developer.qiniu.com/rtc/8773/API%20%E6%A6%82%E8%A7%88/12211/QNAudioSourceMixerListener) | 音源(pcm)混音相关回调接口，监听音源(pcm)混音的错误等事件。  

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