Android
一、集成指南
准备环境
Android Studio 2.1或以上版本
Android 版本不低于 4.0.3 且支持音视频的 Android 设备(不支持模拟器)
Android 设备已经连接到有效网络
导入SDK
添加Jcenter仓库 Gradle依赖:
dependencies {
compile 'org.ar:rtcp_kit:3.0.8'(最新版见上面图标版本号)
}或者 Maven
<dependency>
<groupId>org.ar</groupId>
<artifactId>rtcp_kit</artifactId>
<version>3.0.8</version>
<type>pom</type>
</dependency>二、开发指南
集成SDK后,还需对SDK进行初始化操作,建议在Application中完成。
1.1 初始化SDK并配置开发者信息
调用 initEngine() 方法配置开发者信息,开发者信息可在anyRTC管理后台中获得,详见创建anyRTC账号
示例代码:
自定义的Application需在AndroidManifest.xml注册
1.2 设置发布视频流配置信息
示例代码:
1.3 实例化实时直播对象并设置回调
示例代码:
1.4 实例化视频显示View
示例代码:
ARVideoView 对象是显示视频,调整视频窗口摆放位置的类,可由开发者自定义,具体可参照Demo
1.5 打开本地摄像头采集
示例代码:
注意安卓动态权限处理,这里需要录音和摄像头权限
1.6 发布媒体流
示例代码:
该方法第二个参数为媒体流类型,这以发布视频流为例,发布视频流需先打开本地摄像头采集。发布成功会回调onPublishOK(),发布失败会回调onPublishFailed()
1.7 订阅媒体流
示例代码:
订阅成功会回调onSubscribeOK(),订阅失败会回调onSubscribeFailed(),SDK支持订阅多路流
1.8 显示订阅媒体流
示例代码:
如果发布的是视频流,订阅成功会回调onSubscribeOK(), 随即回调onRTCOpenRemoteVideoRender() ,在该回调方法中调用上面示例代码,显示对方发布的流,具体参照demo。
如果发布的是音频流,订阅成功会回调onSubscribeOK(), 随即回调onRTCOpenRemoteAudioTrack()
1.9 取消发布流
示例代码:
取消发布媒体流后,订阅方会收到onRTCCloseRemoteVideoRender()回调,在该回调中,应移除对方视频,具体参照demo
2.0 取消订阅
示例代码:
在离开之前,应将订阅的流全部取消订阅
2.1 释放RTCP对象
示例代码:
应在直播页面结束时调用,单例写法时,在程序退出时调用即可。
2.2 权限说明
使用RTCP SDK需以下权限
2.3 混淆配置
在Proguard混淆文件中增加以下配置:
三、API接口文档
ARRtcpEngine 类
1. 初始化并配置开发者信息
定义
参数
参数名
类型
描述
context
Context
上下文对象
appId
String
appId
token
String
token
说明
该方法为配置开发者信息,上述参数均可在https://www.anyrtc.io/ 应用管理中获得;建议在Application调用。
2. 配置私有云
定义
参数
参数名
类型
描述
address
String
私有云服务地址
port
int
私有云服务端口
说明
配置私有云信息,当使用私有云时才需要进行配置,默认无需配置。
3. 获取SDK版本号
定义
返回值
SDK版本号
4. 关闭硬解码(安卓特有)
定义
说明
关闭硬解码,默认打开。
5. 关闭硬编码(安卓特有)
定义
说明
关闭硬编码,默认关闭。
6. 设置日志显示级别
定义
参数
参数名
类型
描述
logLevel
ARLogLevel
日志显示级别
ARRtcpOption配置类
1. 获取配置类
定义
2. 设置可配置参数
定义
参数
参数名
类型
描述
isDefaultFrontCamera
boolean
是否默认前置摄像头 true 前置 false 后置 默认true
videoOrientation
ARVideoOrientation
视频方向 默认竖直
videoProfile
ARVideoProfile
视频分辨率 默认360x640
videoFps
ARVideoFrameRate
视频帧率 默认 Fps15
ARRtcpKit 类
1. 实例化ARRtcpKit对象
定义
参数
参数名
类型
描述
userId
String
用户ID,确保自己平台唯一,不能为空
userData
String
用户自定义信息
2. 设置ARRtcpKit接口回调
定义
参数
参数名
类型
描述
rtcpEvent
ARRtcpEvent
RTCP相关回调实现类
3. 设置本地视频采集窗口
定义
参数
参数名
类型
描述
render
long
底层视频渲染对象
返回值
0/1/2:没有相机权限/打开相机成功/打开相机失败
4. 设置显示其他人的视频窗口
定义
参数
参数名
类型
描述
rtcpId
String
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
render
long
底层视频渲染对象
说明
该方法用于订阅成功通后,视频即将显示的回调中(onRTCOpenVideoRender)使用
5. 设置本地音频是否传输
定义
参数
参数名
类型
描述
enable
boolean
打开或关闭本地音频传输
说明
true为传输音频,false为不传输音频,默认传输
6. 设置本地视频是否传输
定义
参数
参数名
类型
描述
enable
boolean
打开或关闭本地视频传输
说明
true为传输视频,false为不传输视频,默认视频传输
7. 获取本地音频传输是否打开
定义
返回值
音频传输与否
8. 获取本地视频传输是否打开
定义
返回值
视频传输与否
9. 设置视频竖屏
定义
10. 设置视频横屏
定义
11. 切换前后摄像头
定义
12. 设置本地前置摄像头镜像是否打开
定义
参数
参数名
类型
描述
enable
boolean
true为打开,alse为关闭
13. 获取前置摄像头是否镜像
定义
返回值
是否镜像,默认关闭。
14. 不接收某人视频
定义
参数
参数名
类型
描述
rtcpId
String
流ID
mute
boolean
true禁止,false接收
15. 不接收某人音频
定义
参数
参数名
类型
描述
rtcpId
String
流ID
mute
boolean
true禁止,false接收
16. 发布媒体
定义
参数
参数名
类型
描述
token
String
令牌:客户端向自己服务申请获得,参考企业级安全指南
mediaType
ARMediaType
发布媒体类型
返回值
发布结果,0/1:发布失败(没有RECORD_AUDIO权限)/发布成功。
17. 取消发布媒体
定义
18. 订阅视频
定义
参数
参数名
类型
描述
rtcpId
String
订阅视频的频道Id
token
String
令牌:客户端向自己服务申请获得,参考企业级安全指南
19. 取消订阅媒体流
定义
参数
参数名
类型
描述
rtcpId
String
媒体频道Id
20. 停止视频采集
定义
说明
停止视频采集
21. 设置音频检测
定义
参数
参数名
类型
描述
open
boolean
是否开启音频检测
说明
默认音频检测打开
22. 获取音频检测是否打开
定义
返回值
音频检测打开与否
23. 打开或关闭网络状态监测
定义
参数
参数名
类型
描述
enable
boolean
true打开,false关闭
说明
默认视频网络状态关闭
24. 获取网络监测是否打开
定义
返回值
视频网络状态检测打开与否
25. 发布辅流
定义
26. 取消发布辅流
定义
27.设置是否采用ARCamera
定义
参数
参数名
类型
描述
usedARCamera
boolean
true 使用ARCamera,false 不使用ARCamera采集的数据
说明
默认使用ARCamera, 如果设置为false,必须调用setByteBufferFrameCaptured才能本地显示
28.设置本地显示的视频数据
定义
参数
参数名
类型
描述
data
byte[]
true 使用ARCamera,false 不使用ARCamera采集的数据
width
int
宽
height
int
高
rotation
int
旋转角度
timeStamp
long
时间戳
说明
不使用ARCamera,必须调用setByteBufferFrameCaptured才能本地显示
29.设置ARCamera视频数据回调
定义
参数
参数名
类型
描述
capturerObserver
ARCameraCapturerObserver
回调
30. 关闭离开
定义
说明
停止采集,释放SDK
ARRtcpEvent 回调接口类
1. 发布媒体成功回调
定义
参数
参数名
类型
描述
rtcpId
String
通道Id
liveInfo
String
直播信息
2. 发布媒体失败回调
定义
参数
参数名
类型
描述
code
int
失败的code值
reason
String
错误原因
3. 发布辅流媒体成功回调
定义
参数
参数名
类型
描述
rtcpId
String
通道Id
liveInfo
String
直播信息
4. 发布辅流媒体失败回调
定义
参数
参数名
类型
描述
code
int
失败的code值
reason
String
错误原因
5. 订阅通道成功的回调
定义
参数
参数名
类型
描述
rtcpId
String
通道Id
6. 订阅通道失败的回调
定义
参数
参数名
类型
描述
rtcpId
String
通道Id
code
int
失败的code值
reason
String
错误原因
7. 订阅后音视频即将显示的回调
定义
参数
参数名
类型
描述
rtcpId
String
通道Id
8. 订阅的音视频离开的回调
定义
参数
参数名
类型
描述
rtcpId
String
通道Id
9. 订阅音频后成功的回调
定义
参数
参数名
类型
描述
rtcpId
String
通道Id
10. 订阅的音频离开的回调
定义
参数
参数名
类型
描述
rtcpId
String
通道Id
11. 订阅的流 音视频状态回调
定义
参数
参数名
类型
描述
rtcpId
String
通道Id
audio
boolean
true 音频打开 false 音频关闭
video
boolean
true 视频打开 false 视频关闭
12. 本地RTC音频检测
定义
参数
参数名
类型
描述
level
int
音频检测音量(0~100)
time
int
音频检测在time毫秒内不会再回调该方法(单位:毫秒)
说明
自己本地音频检测
13. 远程(其他人)RTC音频检测
定义
参数
参数名
类型
描述
rtcpId
String
通道Id
level
int
音频检测音量(0~100)
time
int
音频检测在time毫秒内不会再回调该方法(单位:毫秒)
说明
对方关闭音频传输后(setLocalAudioEnable为false),该回调将不再回调对方音频状态;对方关闭音频检测后(setAudioActiveCheck为false),该回调也将不再回调对方音频状态。
14. 本地网络状态
定义
参数
参数名
类型
描述
nNetSpeed
int
网络上行
nPacketLost
int
丢包率(1~100)
netQuality
ARNetQuality
网络质量
15. 远程(其他人)网络状态
定义
参数
参数名
类型
描述
rtcpId
String
通道Id
nNetSpeed
int
网络上行
nPacketLost
int
丢包率(1~100)
netQuality
ARNetQuality
网络质量
四、更新日志
Version 3.0.0 (2019-05-15)
SDK版本升级3.0,API接口变更
Version 2.0.0 (2017-09-30)
SDK版本升级2.0,梳理、完善SDK
Last updated
Was this helpful?