SDK 概述
1、 概述
QNRTCWin 是七牛云推出的一款适用于 Windows 平台的实时音视频 SDK,提供了灵活的接口,支持高度定制以及二次开发。
1.1、下载地址
2、功能列表
功能 | 版本 |
---|---|
基本的音视频通话功能 | v0.2.0(+) |
内置音视频采集功能 | v0.2.0(+) |
支持第三方虚拟摄像头采集 | v0.2.0(+) |
支持音视频设备的切换 | v0.2.0(+) |
支持踢人功能 | v0.2.0(+) |
支持静音功能 | v0.2.0(+) |
支持视频帧率配置 | v0.2.0(+) |
支持视频码率的配置 | v0.2.0(+) |
支持视频尺寸配置 | v0.2.0(+) |
支持网络自动重连 | v0.2.0(+) |
支持纯音频互动 | v0.2.0(+) |
支持获取通话质量统计信息 | v0.2.0(+) |
支持网络状态回调 | v0.2.0(+) |
支持房间状态回调 | v0.2.0(+) |
支持本地音视频采集数据的回调 | v0.2.0(+) |
支持远端音视频渲染数据的回调 | v0.2.0(+) |
支持音视频设备插拔事件的回调 | v0.2.0(+) |
支持外部音频数据导入 | v1.0.0(+) |
支持外部视频数据导入 | v1.0.0(+) |
支持屏幕、窗口的采集 | v1.0.0(+) |
支持视频渲染镜像功能 | v1.0.0(+) |
支持获取指定用户的音量分贝 | v1.1.0(+) |
支持调整指定用户的音量 | v1.1.0(+) |
支持摄像头和屏幕、窗口分离的采集预览 | v1.1.0(+) |
3、总体设计
本 SDK 基于 Microsoft Visual Studio 2017
进行开发,使用了运行时库的多线程静态版本,即 MTD/MT
配置,目前提供 Win32 平台架构的开发包。
注意:
- 自 V1.1.0 发布以来,由于 WebRtc 内核代码的升级,本 SDK 已经由
Microsoft Visual Studio 2015
改为Microsoft Visual Studio 2017
进行开发,但仍保持对Microsoft Visual Studio 2015
的兼容,同时 Demo 仍然使用Microsoft Visual Studio 2015
进行开发; - 如果开发者已经基于旧版本进行开发,则 SDK 将继续保持兼容,新开发者建议直接使用
Microsoft Visual Studio 2017
。
3.1、基本规则
为了方便理解和使用,对于 SDK 的接口设计,我们遵循了如下的规则:
- 所有的接口类,均为单实例,同一个进程中,同时只能进入一个房间
- 每一个接口类,均以
QNRTC
开头 - 每一个回调接口,均以
QNRTCXXXListener
格式定义,且定义在QNRTCXXX
内部
3.2、核心接口类
核心接口类说明如下:
接口类名 | 功能 | 备注 |
---|---|---|
QNRTCEngine | 全局引擎类 | 整体初始化、释放以及日志等级、文件名配置等 |
QNRTCRoom | 房间管理核心接口类 | 包含房间控制相关的接口,及各种回调 |
QNRTCAudio | 音频接口类 | 包含音频设备枚举、参数配置和数据回调等所有音频相关功能 |
QNRTCVideo | 视频接口类 | 包含视频设备枚举、预览、参数配置和数据回调等所有视频相关功能 |
3.3、回调相关类
回调相关类说明如下:
接口名 | 功能 | 备注 |
---|---|---|
QNRTCRoom::QNRTCRoomListener | 房间相关的所有回调 | 包括用户加入/离开房间、发布/取消发布音视频以及房间状态等回调通知 |
QNRTCAudio::QNRTCAudioListener | 连麦音频的相关回调 | 包括音频 PCM 数据及设备插拔状态回调 |
QNRTCVideo::QNRTCVideoListener | 连麦视频的相关回调 | 包括视频 YUV 数据及设备插拔状态回调 |
另外,统计信息回调中的 StatisticsReport
,提供了通话过程中的各用户的统计信息,包括通话过程中实时的音视频码率、帧率、丢包率等信息。