功能概述
概述¶
融云音视频提供基于房间的音视频会议功能,支持一对一和多对多的实时音视频通话,支持自定义视频流,修改本端采集的音视频原始数据,修改接收到的音频原始数据,自定义渲染视频视图,纯语音通话和视频通话等功能。
兼容性
-
Android 需要 4.3 以上版本操作系统。
-
3.0.0 及之后版本的 RTCLib SDK 与 3.0.0 之前版本的 RTCLib SDK 不能互通。
-
使用 RTCLib 3.0.0 SDK 时必须使用 IMLib 2.9.13 及以上版本进行集成。
-
如您使用的是音视频 2.1.1 版本,详细可查看 RTCLib 2.1.1 开发指南
音视频同时通话人数说明
为确保终端用户音视频通话质量,同一房间建议最多音视频同时通话人数,如下:
1. 单个房间内建议最多 9 人同时进行视频通话
2. 单个房间内建议最多 20 人同时进行音频通话
注:同一房间中建议可发起音视频通话总用户上限为 20 人。
代码示例
主要功能¶
RongRTClib 音视频核心引擎,基础功能如下:
类别 | 功能 | 描述 |
---|---|---|
房间管理 | 加入房间 | 用户直接发起音视频之前需要加入同一个房间 |
离开房间 | 结束音视频通话之后退出房间,退出后默认关闭音视频功能及订阅信息,清空当前用户房间中所有信息 | |
当前房间信息 | 获取当前房间信息,如当前房间 ID、当前用户、加入房间的其他用户 | |
设置房间属性 | 自定义房间信息,如标识当前房间中用户的身份标识,通过获取房间属性进行相关业务处理 | |
基础设置 | 大小流 | 多人音视频通话过程中,为了减少下行带宽占用,可以开启大小流模式,每个用户会上传一大一小两个视频流,接收方可以根据显示需要来选择接收大流或是小流。小流分辨率 176X144,帧率为 15FPS,开发者可以选择关闭小流,默认为开启 |
音频采样率 | 默认 48kHz | |
视频码率 | 默认帧率为 15 FPS 不同分辨率的码率为: 分辨率 256x144:最小码率为 120kbps,最大为 350kbps 分辨率 320x240:最小码率为 150kbps,最大为 500kbps 分辨率 480x360:最小码率为 200kbps,最大为 650kbps 分辨率 640x360:最小码率为 250kbps,最大为 800kbps 分辨率 640x480:最小码率为 350kbps,最大为 1000kbps 分辨率 720x480:最小码率为 400kbps,最大为 1200kbps 分辨率 1280x720:最小码率为 750kbps,最大为 2500kbps |
|
视频帧率 | 通话过程中设置自已采集的帧率,支持 15 FPS、24 FPS、30 FPS,默认是 15 FPS | |
视频分辨率 | 发起通话前设置自已采集的视频分辨率,支持 256x144、320x240、480x360、640x360、640x480、720x480、1280x720 | |
编码方式 | 支持 H.264 编解码方式 | |
音视频流控制 | 发布音视频流 | 加入房间之后可以把采集的音视频流推送到 MediaServer,并且广播给同一个房间里的用户,其他人收到通知可以选择订阅来接收流 |
取消发布音视频流 | 关闭摄像头、麦克风或结束音视频通话时可取消发布音视频流 | |
订阅音视频流 | 订阅后可接收其他用户发布的音视频流 | |
取消订阅音视频流 | 取消后不再接收其他用户发布的音视频流 | |
发送视频流预处理 | 视频采集和渲染前回调给开发者进行再处理,实现美颜、磨皮、水印等功能 | |
发送音频流预处理 | 音频采集和渲染前回调给开发者进行再处理,实现均衡器、个性化音效等功能 | |
接收音视流再处理 | 接收到音视频流的回调,可以选择自己编辑收到的音视频数据 | |
发布自定义视频流 | 发布自定义视频流,如:屏幕共享、本地视频共享功能实现 | |
取消发布自定义视频流 | 取消发布自定义视频流 | |
取消接收自定义视频流 | 取消接收自定义视频流 | |
房间内指令消息发送 | 音视频通话指令消息发送 | 房间内用户向房间中发送指令消息,房间内其他用户收到消息后,可根据消息类型实现自身业务逻辑处理,如:远端控制 |
房间代理协议 | 用户加入的回调 | 有用户加入房间时 SDK 通知上层,开发者可在此基础上实现自身业务逻辑,如提示其他用户 “xxx 加入房间” |
有用户离开时的回调 | 有用户离开房间时 SDK 通知上层,开发者可在此基础上实现自身业务逻辑,如提示其他用户 “xxx 离开房间” | |
数据流第一个关键帧到达 | 用于当用户加入房间后视频画面的初始图片显示使用 | |
取消发布资源的回调 | 用户取消发布资源的回调 | |
某个流对象,音频关闭或者打开时回调 | 用于房间中某用户关闭、打开音频时通知房间中的其他用户,在会议控制、远程指导等场景中,实现用户音频状态展示时可使用功能 | |
某个流对象,视频关闭或者打开时回调 | 用于房间中某用户关闭、打开视频时通知房间中的其他用户,在会议控制、远程指导等场景中,实现用户音频状态展示时可使用功能 | |
视频预览帧回调 | 在实现视频水印效果时,可通过此功能实现水印效果的预览 | |
设备控制 | 设置视频采集参数 | 设置视频采集参数 |
关闭/打开麦克风 | ||
切换前后摄像头 | 切换前后摄像头,默认为前置摄像头 | |
切换使用外放/听筒 | 切换使用当前设备外放/听筒 | |
开启摄像头 | 开启当前设备摄像头 | |
关闭摄像 | 关闭当前设备摄像头 |
依赖关系¶
RTC SDK 强依赖 IM SDK,使用 RTC SDK 前必须引入 IM SDK,引入方式可参考 示例, 版本对应关系如下:
更新日期 | RTC SDK | IM SDK |
---|---|---|
2019-03-30 | 3.0.0 | 2.9.13 |
2019-04-07 | 3.0.1 | 2.9.14 |
2019-04-14 | 3.0.2 | 2.9.15 |
2019-05-07 | 3.0.3 | 2.9.16 |
2019-05-14 | 3.0.4 | 2.9.17 |
2019-05-21 | 3.0.5 | 2.9.17 |
2019-06-03 | 3.0.6 | 2.9.18 |
2019-07-04 | 3.0.7 | 2.9.19 |
2019-07-19 | 3.0.8 | 2.9.10 |
2019-07-29 | 3.1.0 | 2.9.20 |
2019-08-02 | 3.1.1 | 2.9.21、2.9.22 |
2019-08-31 | 3.1.2 | 2.9.23 |
2019-09-20 | 3.1.3 | 2.9.24、2.9.25 |
2019-10-28 | 3.1.4 | 2.10.0 |
2019-11-21 | 3.1.5 | 2.10.1 |