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

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

#  API 概览

最近更新时间: 2022-03-29 00:26:19

QNRTC 是七牛云推出的一款跨平台平台的实时音视频 C++ SDK，提供了灵活的接口，支持高度定制以及二次开发。

> 本文档适用于 QNRTC 5.x+ 版本的 SDK，并不向下兼容。

QNRTC

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

创建 Track

方法 | 描述  
---|---  
[CreateMicrophoneAudioTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11216) | 创建麦克风音频轨道  
[CreateCameraVideoTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11216) | 创建摄像头视频轨道  
[CreateCustomAudioTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11216) | 创建自定义导入音频数据轨道  
[CreateCustomVideoTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11216) | 创建自定义导入视频数据轨道  
[DestroyLocalTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11216) | 销毁创建的本地轨道  
  
QNRTCClient

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

核心方法

方法 | 描述  
---|---  
[Join](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11288) | 加入房间  
[Leave](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11288) | 离开房间  
[Publish](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11288) | 发布本地的音视频轨道  
[UnPublish](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11288) | 取消发布本地的音视频轨道  
[Subscribe](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11288) | 订阅远端用户发布的音视频轨道  
[UnSubscribe](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11288) | 取消订阅远端用户发布的音视频轨道  
  
转推 CDN

方法 | 描述  
---|---  
[StartLiveStreaming](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11288) | 开始单路转推或者合流转推  
[StopLiveStreaming](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11288) | 停止单路转推或者合流转推  
[SetTranscodingLiveStreamingTracks](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11288) | 更新合流转推的布局配置  
[RemoveTranscodingLiveStreamingTracks](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11288) | 移除合流转推的布局配置  
[SetLiveStreamingListener](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11288) | 设置转推相关事件的监听器  
  
QNLocalTrack

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

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

Hierarchy

  * [QNLocalTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11208/QNLocalTrack-Linux)
    * [QNLocalVideoTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11209/QNLocalVideoTrack-Linux)
      * [QNCameraVideoTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11198/QNCameraVideoTrack-Linux)
      * [QNCustomVideoTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11205/QNCustomVideoTrack-Linux)
    * [QNLocalAudioTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11207/QNLocalAudioTrack-Linux)
      * [QNMicrophoneAudioTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11210/QNMicrophoneAudioTrack-Linux)
      * [QNCustomAudioTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11203/QNCustomAudioTrack-Linux)

本地音频轨道

  * 本地音频轨道 | 描述  
---|---  
[QNMicrophoneAudioTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11210/QNMicrophoneAudioTrack-Linux) | 以麦克风采集到的音频数据为数据源创建的音频轨道，提供了音量控制，数据回调等接口，通过 CreateMicrophoneAudioTrack 创建。  
[QNCustomAudioTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11203/QNCustomAudioTrack-Linux) | 以外部导入的 PCM 音频数据为数据源创建的音频轨道，可以通过 PushAudioFrame 方法往房间内推送数据，通过 CreateCustomAudioTrack 创建。  
本地视频轨道 | 描述  
---|---  
[QNCameraVideoTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11198/QNCameraVideoTrack-Linux) | 以摄像头采集到的视频数据为数据源创建的视频轨道，提供了包括摄像头采集镜像，推送图片流等接口。通过 CreateCameraVideoTrack 创建。  
[QNCustomVideoTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11205/QNCustomVideoTrack-Linux) | 以外部导入的 kI420 格式的视频数据为数据源创建的音频轨道，可以通过 PushVideoFrame 方法往房间内推送视频数据，通过 CreateCameraVideoTrack 创建。  

QNRemoteTrack

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

Hierarchy

  * [QNRemoteTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11213/QNRemoteTrack-Linux)
    * [QNRemoteVideoTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11215/QNRemoteVideoTrack-Linux)
    * [QNRemoteAudioTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11212/QNRemoteAudioTrack-Linux)

  * 远端音视频轨道 | 描述  
---|---  
[QNRemoteAudioTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11212/QNRemoteAudioTrack-Linux) | 远端用户发布的音频轨道，当可以通过该类来调节播放的音量大小，并且还提供了回调音频数据等方法。  
[QNRemoteVideoTrack](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11215/QNRemoteVideoTrack-Linux) | 远端用户发布的视频轨道，当可以通过该类来把远端视频画面渲染到视图中，并且还提供了回调视频数据等方法。  

QNClientEventListener

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

  * 方法 | 描述  
---|---  
[OnConnectionStateChanged](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11261) | 房间状态改变时会触发此回调方法，自己加入房间成功，state 变为 CONNECTED，当离开房间时，state 变为 DISCONNECTED。详情可参看 [QNConnectionState](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11266/QNConnectionState-Linux)  
[OnUserJoined](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11261) | 当远端用户加入房间时会触发此事件。  
[OnUserPublished](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11261) | 当远端用户发布音视频轨道时会触发此事件。  
[OnUserUnpublished](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11261) | 当远端用户取消发布音视频轨道时会触发此事件。  
[OnUserLeft](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11261) | 当远端用户离开房间时会触发此事件。  
[OnUserReconnecting](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11261) | 当远端用户正在重连时会触发此事件。  
[OnUserReconnected](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11261) | 当远端用户重连成功时会触发此事件。  
[OnSubscribed](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11261) | 当订阅远端用户的音视频轨道成功之后，会触发此事件。  
[OnMessageReceived](https://developer.qiniu.com/rtc/11254/APIOverview-Linux/11261) | 当远端用户收到消息时会触发此事件。  

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