Android

一、集成指南

适用范围

本集成文档适用于Android ARMeet SDK 3.0.0+版本。

准备环境

  • Android Studio 2.1或以上版本

  • Android 版本不低于 4.0.3 且支持音视频的 Android 设备(不支持模拟器)

  • Android 设备已经连接到有效网络

导入SDK

Gradle方式导) Download

dependencies {
  compile 'org.ar:meet_kit:3.1.4' (最新版见上面图标版本号)
}

或者 Maven

<dependency>
  <groupId>org.ar</groupId>
  <artifactId>meet_kit</artifactId>
  <version>3.1.4</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 加入会议室

示例代码:

加入会议室成功会回调onRTCJoinMeetOK(),发布失败会回调onRTCJoinMeetFailed()

1.7 其他人加入会议室显示对方视频

示例代码:

其他人加入会议室会回调onRTCOpenRemoteVideoRender()方法,在该回调中应显示对方视频,参照上述代码,具体可查看demo

1.8 其他人离开会议室移除对方视频

示例代码:

其他人离开会议室会回调onRTCCloseRemoteVideoRender()方法,在该回调中应移除对方视频,参照上述代码,具体可查看demo

1.9 离开会议室并销毁Meet对象

示例代码:

离开会议室,并释放会议对象,其他人将收到onRTCCloseRemoteVideoRender()回调

2.0 权限说明

使用ARMeet SDK需以下权限

2.1 混淆配置

在Proguard混淆文件中增加以下配置:

三、API接口文档

ARMeetEngine 类

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

日志显示级别

ARMeetOption配置类

1. 获取配置类

定义

2. 设置可配置参数

定义

参数

参数名

类型

描述

isDefaultFrontCamera

boolean

是否默认前置摄像头 true 前置 false 后置 默认true

videoOrientation

ARVideoOrientation

视频方向 默认竖直

videoProfile

ARVideoProfile

视频分辨率 默认360x640

videoFps

ARVideoFrameRate

视频帧率 默认 Fps15

mediaType

ARMediaType

发布媒体类型 Video音视频 Audio 音频 默认音视频

meetType

ARMeetType

会议类型 默认普通模式

isHost

boolean

是否是主持人 默认false (主持人模式下生效)

说明

可通过上面方法配置,也可单独设置

会议模式说明

类型

描述

ARMeetType.Normal 普通模式

会议室内的用户都可互相看到

ARMeetType.Host 主持人模式

会议室内仅主持人可看到所有人,其余用户只能看到主持人

ARMeetType.ZOOM ZOOM模式

翻页模式,一页4路像,最多32路

ARMeetKit 类

1. 实例化ARMeetKit对象

定义

参数

参数名

类型

描述

arMeetEvent

ARMeetEvent

会议回调实现类

2. 设置本地视频采集窗口

定义

参数

参数名

类型

描述

render

long

底层视频渲染对象

返回值

0/1/2:没有相机权限/打开相机成功/打开相机失败

3. 加入会议

定义

参数

参数名

类型

描述

token

String

令牌:客户端向自己服务申请获得,参考企业级安全指南

meetId

String

会议号 (在开发者业务系统中保持唯一的Id)

userId

String

开发者自己平台的用户Id

userData

String

开发者自己平台的相关信息(昵称,头像等),可选

返回值

true 加入成功 false 加入失败

4. 设置显示其他人的视频窗口

定义

参数

参数名

类型

描述

publishId

String

RTC服务生成的通道Id

render

long

底层视频渲染对象

说明

该方法用于与会者入会成功后,视频即将显示的回调中(onRTCOpenRemoteVideoRender)使用

5. 发送消息

定义

参数

参数名

类型

描述

userName

String

用户昵称(最大256字节),不能为空,否则发送失败;

headUrl

String

用户头像(最大512字节),可选;

content

String

消息内容(最大1024字节)不能为空,否则发送失败;

返回值

true 发送成功 false 发送失败

6. 设置驾驶模式

定义

参数

参数名

类型

描述

enable

boolean

bEnable 打开或关闭驾驶模式 true 打开 false 关闭。

说明

用于ZOOM模式会议

7. 离开会议

定义

8. 释放会议对象

定义

说明

包含离开会议

9. 设置回音消除

定义

参数

参数名

类型

描述

enable

boolean

是否打开回音消除 true打开 false 关闭 默认关闭

说明

必须在joinRTCByToken()之前调用

10. 设置本地音频是否传输

定义

参数

参数名

类型

描述

enable

boolean

打开或关闭本地音频传输

说明

true为传输音频,false为不传输音频,默认传输

11. 设置本地视频是否传输

定义

参数

参数名

类型

描述

enable

boolean

打开或关闭本地视频传输

说明

true为传输视频,false为不传输视频,默认视频传输

12. 获取本地音频传输是否打开

定义

返回值

音频传输与否

13. 获取本地视频传输是否打开

定义

返回值

视频传输与否

14. 切换前后摄像头

定义

15. 设置本地前置摄像头镜像是否打开

定义

参数

参数名

类型

描述

enable

boolean

true为打开,alse为关闭

16. 前置摄像头是否镜像

定义

返回值

是否镜像,默认关闭。

17. 不接收某人视频

定义

参数

参数名

类型

描述

mute

boolean

true禁止,false接收

publishId

String

RTC服务生成的通道Id

18. 不接收某人音频

定义

参数

参数名

类型

描述

mute

boolean

true禁止,false接收

publishId

String

RTC服务生成的通道Id

19. 设置视频网络状态是否打开

定义

参数

参数名

类型

描述

enable

boolean

true打开,false关闭

说明

默认视频网络状态关闭

20. 获取当前视频网络状态是否打开

定义

返回值

视频网络状态检测打开与否

21. 设置音频检测

定义

参数

参数名

类型

描述

open

boolean

是否开启音频检测

说明

默认音频检测打开

22. 获取音频检测是否打开

定义

返回值

音频检测打开与否

23. 设置视频竖屏

定义

24. 设置视频横屏

定义

25. 打开共享通道

定义

参数

参数名

类型

描述

type

int

共享类型,自己平台设定,比如1为白板,2为文档

说明

结果会走onRTCShareEnable()回调

26. 设置共享信息

定义

参数

参数名

类型

描述

shareInfo

String

自定义的共享相关信息(限制512字节)

说明

其他人将收到OnRtcUserShareOpen()回调

27. 关闭共享通道

定义

参数

参数名

类型

描述

type

int

共享类型,canShare方法设定的

说明

其他人将收到onRTCShareClose()回调

28. 广播一路视频

定义

参数

参数名

类型

描述

peerId

String

RTC服务生成的标识身份的ID

enable

boolean

是否广播 setUserToken

说明

仅用于主持人模式,主持人设置true(广播)后,其他人将收到此路视频显示的回调(onRTCOpenVideoRender),false 其他人将收到此路视频关闭的回调(onRTCCloseVideoRender)

29. 设置单聊

定义

参数

参数名

类型

描述

peerId

String

需要单聊的用户的peerId

enable

boolean

是否单聊 true单聊 false结束单聊

说明

仅用于主持人模式,主持人设置后,其他人将听不到主持人的声音,只有单聊的用户能听到

30. 设置zoom模式

定义

参数 muteRemoteAudioStream

参数名

类型

描述

mode

ARMeetZoomMode

zoom模式

说明

仅用于Zoom模式,设置zoom模式

31. 设置当前页数

定义

参数

参数名

类型

描述

page

int

当前页数

说明

仅用于Zoom模式,设置zoom模式下当前页数

32. 设置当前页数及显示个数

定义

参数

参数名

类型

描述

nIdx

int

当前页数

nShowNum

int

需要显示的个数

说明

仅用于Zoom模式,设置当前页数及显示个数

33. 打开或关闭音频数据回调开关

定义

参数

参数名

类型

描述

bEnable

boolean

true 打开 false 关闭

34. 设置音频采样率

定义

参数

参数名

类型

描述

sample_hz

int

音频采样率 (16000,32000,48000 ,8000,44100)

sample_hz

int

音频声道,(1或者2)

35. 设置视频编码器

定义

参数

参数名

类型

描述

strCodec

String

视频编码格式(H264,VP8,VP9等编码器) 必须大写 比如 H264 VP8

36. 开始录制音视频

定义

参数

参数名

类型

描述

isNeedVideo

boolean

是否需要视频

filePath

String

录指文件存放路径

说明

请注意安卓动态权限处理,此方法需要文件写入权限

isNeedVideo 为true时 文件路径需以mp4结尾

isNeedVideo 为false时 文件路径需以mp3结尾

37. 停止录制音视频

定义

ARMeetEvent 回调接口类

1. 加入会议成功回调

定义

参数

参数名

类型

描述

meetId

String

会议号 (在joinRTCByToken方法里的第2个参数)

说明

加入会议成功

2. 加入会议失败功回调

定义

参数

参数名

类型

描述

anyrtcId

String

会议号 (在joinRTCByToken方法里的第2个参数)

code

int

错误码

reason

String

错误原因

说明

加入会议失败

3. 离开会议

定义

参数

参数名

类型

描述

code

int

状态码

说明

离开会议状态回调

4. 其他与会者加入视频即将显示回调

定义

参数

参数名

类型

描述

peerId

String

RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成)

publishId

String

RTC服务生成的视频通道Id

userId

String

开发者自己平台的用户Id

userData

String

开发者自己平台的相关信息(昵称,头像等)

说明

其他与会者进入会议的回调,开发者需调用设置其他与会者视频窗口(setRemoteVideoRender)方法。

5. 其他与会者离开

定义

参数

参数名

类型

描述

peerId

String

RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成)

publishId

String

RTC服务生成的视频通道Id

userId

String

开发者自己平台的用户Id

说明

其他与会者离开的回调,开发者需移除该与会者视频窗口

6. 屏幕共享视频即将显示回调

定义

参数

参数名

类型

描述

peerId

String

RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成)

publishId

String

RTC服务生成的屏幕共享视频通道Id

userId

String

开发者自己平台的用户Id

userData

String

开发者自己平台的相关信息(昵称,头像等)

说明

屏幕共享视频即将显示回调,开发者需调用设置视频窗口(setRemoteVideoRender)显示屏幕共享流。

7. 屏幕共享关闭

定义

参数

参数名

类型

描述

peerId

String

RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成)

publishId

String

RTC服务生成的屏幕共享视频通道Id

userId

String

开发者自己平台的用户Id

说明

屏幕共享关闭回调,开发者需移除屏幕共享视频窗口

8. 音频模式下其他与会者加入

定义

参数

参数名

类型

描述

peerId

String

RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成)

userId

String

开发者自己平台的用户Id

userData

String

开发者自己平台的相关信息(昵称,头像等)

说明

音频模式下其他与会者进入会议的回调。

9. 音频模式下其他与会者离开

定义

参数

参数名

类型

描述

peerId

String

RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成)

userId

String

开发者自己平台的用户Id

说明

音频模式下其他与会者离开

10. 与会者对音视频的操作通知

定义

参数

参数名

类型

描述

peerId

String

RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成)

audio

boolean

音频状态 true 打开 false 关闭

video

boolean

视频状态 true 打开 false 关闭

说明

与会者关闭/开启了音视频

11. 与会者对自己音视频的操作通知

定义

参数

参数名

类型

描述

audio

boolean

音频状态 true 打开 false 关闭

video

boolean

视频状态 true 打开 false 关闭

说明

别人对自己音视频的操作

12. 音频监测(其他与会者声音大小回调)

定义

参数

参数名

类型

描述

peerId

String

RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成)

userId

String

开发者自己平台的用户Id

level

int

音量大小

time

int

time时间内不会再回调该方法(毫秒)

13. 音频监测(本地声音大小回调)

定义

参数

参数名

类型

描述

level

int

音量大小

time

int

time时间内不会再回调该方法(毫秒)

14. 本地网络状态

定义

参数

参数名

类型

描述

nNetSpeed

int

网络上行

nPacketLost

int

丢包率(1~100)

netQuality

ARNetQuality

网络质量

15. 远程(其他人)网络状态

定义

参数

参数名

类型

描述

rtcpId

String

通道Id

nNetSpeed

int

网络上行

nPacketLost

int

丢包率(1~100)

netQuality

ARNetQuality

网络质量

16. 网络丢失

定义

说明

会议SDK拥有断网重连机制,断网15秒内恢复可正常开会,15秒没有恢复网络会走该回调,重新恢复网络会自动连接。

17. 收到消息

定义

参数

参数名

类型

描述

userId

String

发送消息者在自己平台下的Id

userName

String

发送消息者的昵称

headUrl

String

发送者的头像

message

String

消息内容

说明

收到其他人发送的消息,(该参数来源均为发送消息时所带参数)

18. 打开共享通道结果

定义

参数

参数名

类型

描述

success

boolean

true成功 fale失败

说明

打开分享功能结果回调

19. 收到其他人设置的共享信息

定义

参数

参数名

类型

描述

type

int

自定义共享类型

shareInfo

String

自定义共享信息

userId

String

发起共享者的id

userData

String

发起共享者的userData

20. 分享通道关闭

定义

21. 主持人上线

定义

参数

参数名

类型

描述

peerId

String

RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成)

userId

String

用户在自己平台下的Id

userData

String

用户自定义的userData

说明

仅在主持人模式下回调

22. 主持人下线

定义

参数

参数名

类型

描述

peerId

String

RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成)

说明

仅在主持人模式下回调

23. 用户进入会议室

定义

参数

参数名

类型

描述

peerId

String

RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成)

publishId

String

RTC服务生成的视频通道Id

userId

String

开发者自己平台的用户Id

userData

String

开发者自己平台的相关信息(昵称,头像等)

24. 用户离开会议室

定义

参数

参数名

类型

描述

peerId

String

RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成)

publishId

String

RTC服务生成的视频通道Id

userId

String

开发者自己平台的用户Id

25. 主持人打开单聊

定义

参数

参数名

类型

描述

peerId

String

RTC服务生成的标识Id ,用于标识与会者

userId

String

开发者自己平台的用户Id

userData

String

开发者自己平台的userData

说明

仅在主持人模式下回调

26. 主持人关闭单聊

定义

参数

参数名

类型

描述

peerId

String

RTC服务生成的标识Id ,用于标识与会者

说明

仅在主持人模式下回调

27. ZOOM模式下翻页信息

定义

参数

参数名

类型

描述

zoomMode

ARMeetZoomMode

zoom模式

allPages

int

总页数

curPage

int

当前页数

allRender

int

总视频数

screenIndex

int

当前屏幕下标

num

int

一页显示视频个数

说明

仅在ZOOM模式下回调

28. 本地音频数据回调

定义

说明

setAudioNeedPcm()设置为true时才会回调

29. 其他人音频数据回调

定义

说明

setAudioNeedPcm()设置为true时才会回调

四、更新日志

Version 3.0.8 (2019-9-5)

  • 增加本地录制音视频接口

Version 3.0.7(2019-08-23)

  • 新增onRTCLocalAudioPcmData(),onRTCRemoteAudioPcmData()回调

  • 新增setVideoCodec()方法

  • 新增setAudioNeedPcm()方法

  • 新增resamplerLocalAudio()方法

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?