Android
Last updated
Was this helpful?
Last updated
Was this helpful?
本集成文档适用于Android ARRtmpc SDK 3.0.0+版本。
Android Studio 2.1或以上版本
Android 版本不低于 4.0.3 且支持音视频的 Android 设备(不支持模拟器)
Android 设备已经连接到有效网络
Gradle方式导入
添加Jcenter仓库 Gradle依赖:
或者 Maven
集成SDK后,还需对SDK进行初始化操作,建议在Application中完成。
示例代码:
自定义的Application需在AndroidManifest.xml注册
示例代码:
示例代码:
需传入回调接口实现类
示例代码:
ARVideoView 对象是显示视频,调整视频窗口摆放位置的类,可由开发者自定义,具体可参照Demo
示例代码:
注意安卓动态权限处理,这里需要录音和摄像头权限
示例代码:
rtmp连接结果,状态均会回调,具体查看API文档
示例代码:
创建RTC连接必须放在startPushRtmpStream()后面,创建成功或者失败都会回调onRTCCreateLineResult()
示例代码:
收到连麦申请会回调onRTCApplyToLine(),在该回调中可调用同意或拒绝连麦方法。游客取消连麦申请会回调onRTCCancelLine()。
示例代码:
主播调用该方法后,游客端会回调onRTCHangupLine(),主播端会回调onRTCCloseRemoteVideoRender()
示例代码:
同意连麦后,连麦通道建立,将会回调onRTCOpenRemoteVideoRender()方法,在该回调中应显示连麦者视频图像,参照上述代码,具体可参考demo
示例代码:
连麦者挂断或主播自己调用hangupRTCLine()方法挂断后,都会回调onRTCCloseRemoteVideoRender()方法,在该回调中应移除连麦者视频图像,参照上述代码,具体可参考demo
示例代码:
具体可参考demo
示例代码:
示例代码:
需传入回调接口实现类
示例代码:
ARVideoView 对象是显示视频,调整视频窗口摆放位置的类,可由开发者自定义,具体可参照Demo
示例代码:
注意安卓动态权限处理,这里需要录音和摄像头权限。 这一步在游客端的使用,应在连麦申请成功之后再打开本地摄像头
示例代码:
rtmp连接结果,状态均会回调,具体查看API文档
示例代码:
加入RTC连接必须放在startRtmpPlay后面,加入成功或者失败都会回调onRTCJoinLineResult()
示例代码:
申请连麦成功会回调onRTCApplyLineResult(),code==0的时候意味着连麦成功 此时会回调onRTCOpenRemoteVideoRender(),在此方法中应显示对方视频。 游客端调用hangupRTCLine()挂断或者主播挂断都会走onRTCOpenRemoteVideoRender()回调,此时应移除对方视频 见3.0 3.1
示例代码:
同意连麦后,连麦通道建立,将会回调onRTCOpenRemoteVideoRender()方法,在该回调中应显示主播或其他人视频图像,参照上述代码,具体可参考demo。注意:只有在连麦接通后才会走该回调
示例代码:
其他连麦者挂断或主播自己调用hangupRTCLine()方法挂断后,都会回调onRTCCloseRemoteVideoRender()方法,在该回调中应移除连麦者或主播视频图像,参照上述代码,具体可参考demo。注意:只有在连麦接通后才会走该回调
示例代码:
如果在连麦中应先移除本地像,挂断连麦,再释放
使用ARRtmpc SDK需以下权限
在Proguard混淆文件中增加以下配置:
定义
参数
参数名
类型
描述
context
Context
上下文对象
appId
String
appId
token
String
token
说明
定义
参数
参数名
类型
描述
address
String
私有云服务地址
port
int
私有云服务端口
说明
配置私有云信息,当使用私有云时才需要进行配置,默认无需配置。
定义
返回值
SDK版本号
定义
定义
定义
参数
参数名
类型
描述
logLevel
ARLogLevel
日志显示级别
定义
定义
参数
参数名
类型
描述
isDefaultFrontCamera
boolean
是否默认前置摄像头 true 前置 false 后置 默认true
videoOrientation
ARVideoOrientation
视频方向 默认竖直
videoProfile
ARVideoProfile
视频分辨率 默认360x640
videoFps
ARVideoFrameRate
视频帧率 默认 Fps15
mediaType
ARMediaType
发布媒体类型 Video音视频 Audio 音频 默认音视频
lineLayoutTemplate
ARRtmpcLineLayoutTemplate
连麦合成画面布局样式
说明
可通过上面方法配置,也可单独设置
定义
参数
参数名
类型
描述
hosterEvent
ARRtmpcHosterEvent
回调实现类
定义
参数
参数名
类型
描述
render
long
底层视频渲染对象
返回值
0/1/2:没有相机权限/打开相机成功/打开相机失败
定义
参数
参数名
类型
描述
pushUrl
String
推流地址
说明
传入推流地址开始推流
定义
参数
参数名
类型
描述
token
String
令牌:客户端向自己服务申请获得,参考企业级安全指南
anyrtcId
String
在开发者业务系统中保持唯一的Id(必填)
userId
String
主播在开发者自己平台的Id
userData
String
播在开发者自己平台的相关信息(昵称,头像等)
返回值
0:调用成功;4:参数非法
说明
该方法须在开始推流(startRtmpPlay)方法后调用
定义
参数
参数名
类型
描述
peerId
String
RTC服务生成的连麦者标识Id 。(用于标识连麦用户,每次连麦随机生成))
说明
调用此方法即可同意游客的连麦请求。
定义
参数
参数名
类型
描述
peerId
String
RTC服务生成的连麦者标识Id 。(用于标识连麦用户,每次连麦随机生成))
说明
调用此方法即可拒绝游客的连麦请求
定义
参数
参数名
类型
描述
peerId
String
RTC服务生成的连麦者标识Id 。(用于标识连麦用户,每次连麦随机生成))
说明
调用此方法即可挂断与游客的连麦
定义
说明
停止推流
定义
参数
参数名
类型
描述
publishId
String
RTC服务生成是视频通道Id
render
long
SDK底层视频显示对象
说明
该方法用于游客申请连麦接通后,游客视频连麦接通回调中(OnRTCOpenRemoteVideoRender)使用
定义
参数
参数名
类型
描述
type
int
消息类型 0 普通消息 1 弹幕消息
userName
String
用户昵称(最大256字节),不能为空,否则发送失败;
headUrl
String
用户头像(最大512字节),可选;
content
String
消息内容(最大1024字节)不能为空,否则发送失败;
返回值
true 发送成功 false 发送失败
定义
说明
一般不调用。主播端如果调用此方法,将会关闭RTC服务,游客端将会收主播已离开onRTCLineLeave回调。
定义
参数
参数名
类型
描述
eHor
ARRtmpcVideoHorizontal
横向位置
eVer
ARRtmpcVideoVertical
竖向位置
eDir
ARRtmpcVideoDirection
排布方向
ePadhor
int
横向的间距(左右间距:最左边或者最后边的视频离边框的距离)
ePadver
int
竖向的间距(上下间距:最上面或者最下面离边框的距离)
nWLineWidth
int
合成小视频白边宽度(上下间距:最上面或者最下面离边框的距离)
定义
参数
参数名
类型
描述
layoutTemplate
ARRtmpcLineLayoutTemplate
布局样式
定义
参数
参数名
类型
描述
filePath
String
图片的路径
返回值
0/1/2:没有读取文件权限/打开设置成功/文件不存在
说明
一定要打开读取权限,仅支持jpg和png的图片格式(仅支持640*640分辨率以内)
定义
参数
参数名
类型
描述
enable
boolean
打开或关闭本地音频传输
说明
true为传输音频,false为不传输音频,默认传输
定义
参数
参数名
类型
描述
enable
boolean
打开或关闭本地视频传输
说明
true为传输视频,false为不传输视频,默认视频传输
定义
定义
参数
参数名
类型
描述
url
String
设置Rtmp录制地址,需放在开始推流方法前.并且必须在平台上开启录像服务
说明
设置录像地址(地址为拉流地址)
定义
参数
参数名
类型
描述
enable
boolean
true 打开 false 关闭
说明
是否打开镜像模式,默认关闭
定义
参数
参数名
类型
描述
distance
int
焦距
说明
设置相机支持范围内的焦距
定义
返回值
最大焦距
定义
返回值
当前焦距
定义
返回值
是否支持变焦/平滑变焦
说明 在设置变焦前先用该方法判断是否支持变焦
定义
参数
参数名
类型
描述
open
boolean
是否开启闪光灯
定义
参数
参数名
类型
描述
open
boolean
是否开启音频检测
说明
默认音频检测打开
定义
定义
定义
参数
参数名
类型
描述
path
String
水印图片文件路径
x
int
距左上角X轴距离
y
int
距左上角Y轴距离
说明
仅支持jpg图片,注意安卓动态权限处理
定义
参数
参数名
类型
描述
path
String
水印图片文件路径
x
int
距右上角X轴距离
y
int
距右上角Y轴距离
说明
仅支持jpg图片,注意安卓动态权限处理
定义
定义
定义
参数
参数名
类型
描述
times
int
重连次数
定义
参数
参数名
类型
描述
times
int
推流的延迟时间(单位:ms)
netBand
int
当前的上行的带宽(单位:byte)
定义
参数
参数名
类型
描述
code
int
状态码
定义
定义
参数
参数名
类型
描述
code
int
状态码
reason
String
原因
说明
code==0 时,连接服务成功 code为其他值时均为失败,具体可查看code对应说明
定义
参数
参数名
类型
描述
peerId
String
连麦者标识id(用于标识连麦用户,每次连麦随机生成)
userId
String
游客在自己业务平台的UserId
userData
String
游客加入RTC连接的自定义参数体(可查看游客端加入RTC连接方法)
定义
参数
参数名
类型
描述
code
int
状态码
peerId
String
连麦者标识id(用于标识连麦用户,每次连麦随机生成)
定义
参数
参数名
类型
描述
code
int
状态码
reason
String
说明
定义
参数
参数名
类型
描述
peerId
String
连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId
String
RTC服务生成的视频通道Id
userId
String
开发者自己平台的用户Id
userData
String
开发者自己平台的相关信息(昵称,头像等)
说明
主播与游客的连麦接通后视频将要显示时回调此方法
定义
参数
参数名
类型
描述
peerId
String
连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId
String
RTC服务生成的视频通道Id
userId
String
开发者自己平台的用户Id
说明
当与连麦的人断开连麦时会回调此方法
定义
参数
参数名
类型
描述
peerId
String
连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId
String
RTC服务生成的视频通道Id
userId
String
开发者自己平台的用户Id
userData
String
开发者自己平台的相关信息(昵称,头像等)
说明
语音模式下,主播与游客的连麦接通后回调此方法
定义
参数
参数名
类型
描述
peerId
String
连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId
String
RTC服务生成的视频通道Id
userId
String
开发者自己平台的用户Id
说明
语音连麦模式下,当与连麦的人断开连麦时会回调此方法
定义
参数
参数名
类型
描述
peerId
String
连麦者标识id(用于标识连麦用户,每次连麦随机生成)
audio
boolean
true 音频打开 false 音频关闭
video
boolean
true 视频打开 false 视频关闭
定义
参数
参数名
类型
描述
time
int
音频检测在time毫秒内不会再回调该方法(单位:毫秒)
定义
参数
参数名
类型
描述
peerId
String
连麦者标识id(用于标识连麦用户,每次连麦随机生成)
time
int
音频检测在time毫秒内不会再回调该方法(单位:毫秒)
定义
参数
参数名
类型
描述
type
int
消息类型 0 普通消息 1 弹幕消息
userId
String
发送消息者在自己平台下的Id
userName
String
发送消息者的昵称
headUrl
String
发送者的头像
message
String
消息内容
说明
收到其他人发送的消息,(该参数来源均为发送消息时所带参数)
定义
参数
参数名
类型
描述
serverId
String
服务器地址,用于请求人员列表的参数
roomId
String
房间Id,用于请求人员列表的参数
totalMember
int
当前在线人数
说明
serverAddress和roomId参数用于请求人员列表
定义
定义
参数
参数名
类型
描述
isDefaultFrontCamera
boolean
是否默认前置摄像头 true 前置 false 后置 默认true
videoOrientation
ARVideoOrientation
视频方向 默认竖直
mediaType
ARMediaType
发布媒体类型 Video音视频 Audio 音频 默认音视频
说明
可通过上面方法配置,也可单独设置
定义
参数
参数名
类型
描述
guestEvent
ARRtmpcGuestEvent
回调实现类
定义
参数
参数名
类型
描述
pullUrl
String
拉流地址
render
long
SDK底层视频显示对象
定义
参数
参数名
类型
描述
token
String
令牌:客户端向自己服务申请获得,参考企业级安全指南
anyRTCId
String
主播对应的anyRTCId
userId
String
游客业务平台的用户id
userData
String
游客业务平台自定义数据
返回值
0:调用成功;4:参数非法;
说明
此方法需在startRtmpPlay()之后调用
定义
参数
参数名
类型
描述
render
long
底层视频渲染对象
返回值
0/1/2:没有相机权限/打开相机成功/打开相机失败
定义
参数
参数名
类型
描述
publishId
String
RTC服务生成视频通道ID
render
long
SDK底层视频显示对象
说明
该方法用于(OnRTCOpenRemoteVideoRender)回调中使用
定义
返回值
0/1:失败(没有录音权限)/成功
定义
定义
说明
用于关闭RTC服务,将无法进行聊天互动,人员上下线等
定义
定义
定义
参数
参数名
类型
描述
type
int
消息类型 0 普通消息 1 弹幕消息
userName
String
用户昵称(最大256字节),不能为空,否则发送失败;
headUrl
String
用户头像(最大512字节),可选;
content
String
消息内容(最大1024字节)不能为空,否则发送失败;
返回值
true 发送成功 false 发送失败
定义
参数
参数名
类型
描述
enable
boolean
打开或关闭本地音频传输
说明
true为传输音频,false为不传输音频,默认传输
定义
参数
参数名
类型
描述
enable
boolean
打开或关闭本地视频传输
说明
true为传输视频,false为不传输视频,默认视频传输
定义
定义
参数
参数名
类型
描述
open
boolean
是否开启音频检测
说明
默认音频检测打开
定义
参数
参数名
类型
描述
enable
boolean
true 打开 false 关闭
说明
是否打开镜像模式,默认关闭
定义
定义
定义
定义
参数
参数名
类型
描述
cacheTime
int
缓存时间(单位:ms)
bitrate
int
当前码率大小(单位:byte)
说明
在主播处于直播状态时,将会一直回调此方法
定义
参数
参数名
类型
描述
percent
int
缓存百分比,0-100
说明
弱网下rtmp播放出现卡顿时,当前缓冲进度。nPercent为0时,页面可以进行缓冲提示。当为100时,缓冲提示去掉
定义
参数
参数名
类型
描述
code
int
状态码
说明
主播停止推流将会回调此方法
定义
参数
参数名
类型
描述
code
int
状态码
reason
String
说明
说明
code==0时,连接服务成功 code为其他值时均为失败,具体可查看code对应说明
定义
参数
参数名
类型
描述
code
int
状态码
说明
code==0时连麦成功 code为其他值时均为失败,具体可查看code对应说明
定义
说明
主播挂断游客的连麦。 视频直播中此时应移除本地连麦小窗口图像
定义
参数
参数名
类型
描述
code
int
状态码
定义
参数
参数名
类型
描述
peerId
String
连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId
String
RTC服务生成的视频通道Id
userId
String
开发者自己平台的用户Id
userData
String
开发者自己平台的相关信息(昵称,头像等)
说明
主播与游客的连麦接通后视频将要显示时回调此方法
定义
参数
参数名
类型
描述
peerId
String
连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId
String
RTC服务生成的视频通道Id
userId
String
开发者自己平台的用户Id
说明
当与连麦的人断开连麦时会回调此方法
定义
参数
参数名
类型
描述
peerId
String
连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId
String
RTC服务生成的视频通道Id
userId
String
开发者自己平台的用户Id
userData
String
开发者自己平台的相关信息(昵称,头像等)
说明
语音模式下,主播与游客的连麦接通后回调此方法
定义
参数
参数名
类型
描述
peerId
String
连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId
String
RTC服务生成的视频通道Id
userId
String
开发者自己平台的用户Id
说明
语音连麦模式下,当与连麦的人断开连麦时会回调此方法
定义
参数
参数名
类型
描述
peerId
String
连麦者标识id(用于标识连麦用户,每次连麦随机生成)
audio
boolean
true 音频打开 false 音频关闭
video
boolean
true 视频打开 false 视频关闭
定义
参数
参数名
类型
描述
time
int
音频检测在time毫秒内不会再回调该方法(单位:毫秒)
定义
参数
参数名
类型
描述
peerId
String
连麦者标识id(用于标识连麦用户,每次连麦随机生成)
time
int
音频检测在time毫秒内不会再回调该方法(单位:毫秒)
定义
参数
参数名
类型
描述
type
int
消息类型 0 普通消息 1 弹幕消息
userId
String
发送消息者在自己平台下的Id
userName
String
发送消息者的昵称
headUrl
String
发送者的头像
message
String
消息内容
说明
收到其他人发送的消息,(该参数来源均为发送消息时所带参数)
定义
参数
参数名
类型
描述
serverId
String
服务器地址,用于请求人员列表的参数
roomId
String
房间Id,用于请求人员列表的参数
totalMember
int
当前在线人数
说明
serverAddress和roomId参数用于请求人员列表
Version 3.0.0 (2019-05-15)
SDK版本升级3.0,API接口变更
Version 2.0.0 (2017-09-30)
SDK版本升级2.0,梳理、完善SDK
调用 initEngine() 方法配置开发者信息,开发者信息可在anyRTC管理后台中获得,详见
该方法为配置开发者信息,上述参数均可在 应用管理中获得;建议在Application调用。