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

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

#  API 概览

最近更新时间: 2022-04-01 17:15:42

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

> 本文档适用于 QNRTC 5.x 版本的 SDK，并不向下兼容。
>
> QNRTC 5.x 基于 5.x 的基础上进行了优化，从而使使用者能够更加高效的接入，所以新接入的用户推荐使用最新版本的 SDK。
>
> 老用户也可以继续使用 QNRTC 3.x 版本，我们也会持续在此版本上进行问题修复和版本更迭，但是后续的一些新功能有可能并不会在旧版本上提供。

QNRTC

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

创建 Track

方法 | 描述  
---|---  
[CreateMicrophoneAudioTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9445) | 创建麦克风音频轨道  
[CreateCameraVideoTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9445) | 创建摄像头视频轨道  
[CreateScreenVideoTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9445) | 创建屏幕采集的视频轨道  
[CreateCustomAudioTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9445) | 创建自定义导入音频数据轨道  
[CreateCustomVideoTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9445) | 创建自定义导入视频数据轨道  
[DestroyLocalTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9445/DestroyLocalTrack) | 销毁创建的音视频数据轨道  
  
QNRTCClient

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

核心方法

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

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

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

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

Hierarchy

  * [QNLocalTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9422/QNLocalTrack)
    * [QNLocalVideoTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9424/QNLocalVideoTrack)
      * [QNCameraVideoTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9404/QNCameraVideoTrack)
      * [QNScreenVideoTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9448/QNScreenVideoTrack)
      * [QNCustomVideoTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9412/QNCustomVideoTrack)
    * [QNLocalAudioTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9420/QNLocalAudioTrack)
      * [QNMicrophoneAudioTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9433/QNMicrophoneAudioTrack)
      * [QNCustomAudioTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9409/QNCustomAudioTrack)

本地音频轨道

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

QNRemoteTrack

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

Hierarchy

  * [QNRemoteTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9440/QNRemoteTrack)
    * [QNRemoteVideoTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9443/QNRemoteVideoTrack)
    * [QNRemoteAudioTrack](https://developer.qiniu.com/rtc/9243/the-api-documentation/9438/QNRemoteAudioTrack)

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

QNClientEventListener

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

  * 方法 | 描述  
---|---  
[OnConnectionStateChanged](https://developer.qiniu.com/rtc/9243/the-api-documentation/9407) | 房间状态改变时会触发此回调方法，自己加入房间成功，state 变为 CONNECTED，当离开房间时，state 变为 DISCONNECTED。详情可参看 [QNConnectionState](https://developer.qiniu.com/rtc/9243/the-api-documentation/9464/QNConnectionState)  
[OnUserJoined](https://developer.qiniu.com/rtc/9243/the-api-documentation/9407) | 当远端用户加入房间时会触发此事件。  
[OnUserPublished](https://developer.qiniu.com/rtc/9243/the-api-documentation/9407) | 当远端用户发布音视频轨道时会触发此事件。  
[OnUserUnpublished](https://developer.qiniu.com/rtc/9243/the-api-documentation/9407) | 当远端用户取消发布音视频轨道时会触发此事件。  
[OnUserLeft](https://developer.qiniu.com/rtc/9243/the-api-documentation/9407) | 当远端用户离开房间时会触发此事件。  
[OnUserReconnecting](https://developer.qiniu.com/rtc/9243/the-api-documentation/9407) | 当远端用户正在重连时会触发此事件。  
[OnUserReconnected](https://developer.qiniu.com/rtc/9243/the-api-documentation/9407) | 当远端用户重连成功时会触发此事件。  
[OnSubscribed](https://developer.qiniu.com/rtc/9243/the-api-documentation/9407) | 当订阅远端用户的音视频轨道成功之后，会触发此事件。  
[OnMessageReceived](https://developer.qiniu.com/rtc/9243/the-api-documentation/9407) | 当远端用户收到消息时会触发此事件。  
[OnMediaRelayStateChanged](https://developer.qiniu.com/rtc/9243/the-api-documentation/9407) | 跨发媒体转发状态变更，非主动调用触发，由目标房间状态变化引起此通知  

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