一、集成指南

适用范围

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

准备环境

  • Android Studio 2.1或以上版本
  • Android 版本不低于 4.0.3 且支持音视频的 Android 设备(不支持模拟器)
  • Android 设备已经连接到有效网络

导入SDK

Gradle方式导入 Download

添加Jcenter仓库 Gradle依赖:

dependencies {
   compile 'org.ar:rtmpc_hybrid:3.1.0'
}

或者 Maven

<dependency>
  <groupId>org.ar</groupId>
  <artifactId>rtmpc_hybrid</artifactId>
  <version>3.1.0</version>
  <type>pom</type>
</dependency>

二、开发指南

集成SDK后,还需对SDK进行初始化操作,建议在Application中完成。

1.1 初始化SDK并配置开发者信息

调用 initEngine() 方法配置开发者信息,开发者信息可在anyRTC管理后台中获得,详见创建anyRTC账号

示例代码:

public class ARApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        ARRtmpcEngine.Inst().initEngine(getApplicationContext(),  "AppId",  "AppToken");
    }
}

自定义的Application需在AndroidManifest.xml注册

主播端

1.2 获取Hoster配置类并设置相关配置

示例代码:

 //获取配置类
ARRtmpcHosterOption hosterOption = ARRtmpcEngine.Inst().getHosterOption();
 //设置视频分辨率
hosterOption.setVideoProfile(ARVideoCommon.ARVideoProfile.ARVideoProfile480x640);
//更多参考API文档

1.3 实例化Hoster对象

示例代码:

ARRtmpcHosterKit mHosterKit = new ARRtmpcHosterKit(ARRtmpcHosterEvent hosterEvent);

需传入回调接口实现类

1.4 实例化视频显示View

示例代码:

ARVideoView videoView = new ARVideoView(rl_video,  ARRtmpcEngine.Inst().Egl(),this,false);
videoView.setVideoViewLayout(true,Gravity.CENTER, LinearLayout.VERTICAL);

ARVideoView 对象是显示视频,调整视频窗口摆放位置的类,可由开发者自定义,具体可参照Demo

1.5 打开本地摄像头采集

示例代码:

mHosterKit.setLocalVideoCapturer(videoView.openLocalVideoRender().GetRenderPointer());

注意安卓动态权限处理,这里需要录音和摄像头权限

1.6 开始推流

示例代码:

mHosterKit.startPushRtmpStream("pushUrl");

rtmp连接结果,状态均会回调,具体查看API文档

1.7 创建RTC连接

示例代码:

 mHosterKit.createRTCLine();

创建RTC连接必须放在startPushRtmpStream()后面,创建成功或者失败都会回调onRTCCreateLineResult()

1.8 收到申请/取消连麦请求/接受/拒绝/连麦请求

示例代码:

//接受连麦
mHosterKit.acceptRTCLine();
//拒绝连麦
mHosterKit.rejectRTCLine();

收到连麦申请会回调onRTCApplyToLine(),在该回调中可调用同意或拒绝连麦方法。游客取消连麦申请会回调onRTCCancelLine()

1.9 挂断连麦

示例代码:

//挂断与游客的连麦
mHosterKit.hangupRTCLine();

主播调用该方法后,游客端会回调onRTCHangupLine(),主播端会回调onRTCCloseRemoteVideoRender()

2.0 申请连麦游客的视频即将显示

示例代码:

//显示对方视频
final VideoRenderer render = mVideoView.openRemoteVideoRender(publishId);
if (null != render) {
    mHosterKit.setRemoteVideoRender(publishId, render.GetRenderPointer());
}

同意连麦后,连麦通道建立,将会回调onRTCOpenRemoteVideoRender()方法,在该回调中应显示连麦者视频图像,参照上述代码,具体可参考demo

2.1 申请连麦游客的视频即将关闭

示例代码:

//移除对方视频
mHosterKit.setRTCRemoteVideoRender(strPublishId, 0);
mVideoView.removeRemoteRender(strLivePeerId);

连麦者挂断或主播自己调用hangupRTCLine()方法挂断后,都会回调onRTCCloseRemoteVideoRender()方法,在该回调中应移除连麦者视频图像,参照上述代码,具体可参考demo

2.2 停止推流销毁主播段

示例代码:

mHosterKit.stopRtmpStream();//停止推流
mVideoView.removeLocalVideoRender();//移除本地视频
mHosterKit.clean();//释放主播对象

具体可参考demo

游客端

2.3 获取Guest配置类并设置相关配置

示例代码:

 //获取配置类
ARRtmpcGuestOption guestOption = ARRtmpcEngine.Inst().getGuestOption();
 //设置视频分辨率
guestOption.setVideoProfile(ARVideoCommon.ARVideoProfile.ARVideoProfile480x640);
//更多参考API文档

2.4 实例化Guest对象

示例代码:

ARRtmpcGuestKit mGuestKit = new ARRtmpcGuestKit(ARRtmpcGuestEvent guestEvent);

需传入回调接口实现类

2.5 实例化视频显示View

示例代码:

ARVideoView videoView = new ARVideoView(rl_video,  ARRtmpcEngine.Inst().Egl(),this,false);
videoView.setVideoViewLayout(true,Gravity.CENTER, LinearLayout.VERTICAL);

ARVideoView 对象是显示视频,调整视频窗口摆放位置的类,可由开发者自定义,具体可参照Demo

2.6 打开本地摄像头采集

示例代码:

mGuestKit.setLocalVideoCapturer(videoView.openLocalVideoRender().GetRenderPointer());

注意安卓动态权限处理,这里需要录音和摄像头权限。 这一步在游客端的使用,应在连麦申请成功之后再打开本地摄像头

2.7 开始拉流

示例代码:

mGuestKit.startRtmpPlay("pullUrl");

rtmp连接结果,状态均会回调,具体查看API文档

2.8 加入RTC连接

示例代码:

 mGuestKit.joinRTCLine();

加入RTC连接必须放在startRtmpPlay后面,加入成功或者失败都会回调onRTCJoinLineResult()

2.9 申请/取消申请/挂断连麦

示例代码:

//申请连麦
mGuestKit.applyRTCLine();
//取消申请或挂断连麦
mGuestKit.hangupRTCLine();

申请连麦成功会回调onRTCApplyLineResult(),code==0的时候意味着连麦成功 此时会回调onRTCOpenRemoteVideoRender(),在此方法中应显示对方视频。 游客端调用hangupRTCLine()挂断或者主播挂断都会走onRTCOpenRemoteVideoRender()回调,此时应移除对方视频 见3.0 3.1

3.0 其他人视频即将显示

示例代码:

//显示对方视频
final VideoRenderer render = mVideoView.openRemoteVideoRender(publishId);
if (null != render) {
    mGuestKit.setRemoteVideoRender(publishId, render.GetRenderPointer());
}

同意连麦后,连麦通道建立,将会回调onRTCOpenRemoteVideoRender()方法,在该回调中应显示主播或其他人视频图像,参照上述代码,具体可参考demo。注意:只有在连麦接通后才会走该回调

3.1 其他人视频即将关闭

示例代码:

//移除对方视频
mGuestKit.setRTCRemoteVideoRender(strPublishId, 0);
mVideoView.removeRemoteRender(strLivePeerId);

其他连麦者挂断或主播自己调用hangupRTCLine()方法挂断后,都会回调onRTCCloseRemoteVideoRender()方法,在该回调中应移除连麦者或主播视频图像,参照上述代码,具体可参考demo。注意:只有在连麦接通后才会走该回调

3.2 释放Guest对象

示例代码:


//如果在连麦应移除本地像 挂断连麦
mGuestKit.hangupRTCLine()
mVideoView.removeLocalVideoRender();

mGuestKit.clean();

如果在连麦中应先移除本地像,挂断连麦,再释放

3.2 权限说明

使用ARRtmpc SDK需以下权限

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

3.4 混淆配置

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

-dontwarn org.anyrtc.**
-keep class org.anyrtc.**{*;}
-dontwarn org.ar.**
-keep class org.ar.**{*;}
-dontwarn org.webrtc.**
-keep class org.webrtc.**{*;}

三、API接口文档

ARRtmpcEngine 类

1. 初始化并配置开发者信息

定义

void initEngine(Context context, String appId, String token)

参数

参数名 类型 描述
context Context 上下文对象
appId String appId
token String token

说明

该方法为配置开发者信息,上述参数均可在https://www.anyrtc.io/ 应用管理中获得;建议在Application调用。

2. 配置私有云

定义

void configServerForPriCloud(String address,int port)

参数

参数名 类型 描述
address String 私有云服务地址
port int 私有云服务端口

说明

配置私有云信息,当使用私有云时才需要进行配置,默认无需配置。

3. 获取SDK版本号

定义

String getSdkVersion()

返回值

SDK版本号

4. 关闭硬解码(安卓特有)

定义

void disableHWDecode()

5. 关闭硬编码(安卓特有)

定义

void disableHWEncode()

6. 设置日志显示级别

定义

void setLogLevel(ARLogLevel logLevel)

参数

参数名 类型 描述
logLevel ARLogLevel 日志显示级别

ARRtmpcHosterOption主播端配置类

1. 获取配置类

定义

ARRtmpcHosterOption arHostOption = ARRtmpcEngine.Inst().getHosterOption();

2. 设置可配置参数

定义

void setOptionParams(boolean isDefaultFrontCamera, ARVideoCommon.ARVideoOrientation videoOrientation, ARVideoCommon.ARVideoProfile videoProfile, ARVideoCommon.ARVideoFrameRate videoFps, ARVideoCommon.ARMediaType mediaType, ARRtmpcLineLayoutTemplate lineLayoutTemplate)

参数

参数名 类型 描述
isDefaultFrontCamera boolean 是否默认前置摄像头 true 前置 false 后置 默认true
videoOrientation ARVideoOrientation 视频方向 默认竖直
videoProfile ARVideoProfile 视频分辨率 默认360x640
videoFps ARVideoFrameRate 视频帧率 默认 Fps15
mediaType ARMediaType 发布媒体类型 Video音视频 Audio 音频 默认音视频
lineLayoutTemplate ARRtmpcLineLayoutTemplate 连麦合成画面布局样式

说明

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


ARRtmpcHosterKit主播类

1. 实例化ARRtmpcHosterKit对象

定义

ARRtmpcHosterKit hostKit = new ARRtmpcHosterKit(ARRtmpcHosterEvent hosterEvent);

参数

参数名 类型 描述
hosterEvent ARRtmpcHosterEvent 回调实现类

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

定义

int setLocalVideoCapturer(long renderPointer)

参数

参数名 类型 描述
render long 底层视频渲染对象

返回值

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

3. 开始推流

定义

void startPushRtmpStream(String pushUrl)

参数

参数名 类型 描述
pushUrl String 推流地址

说明

传入推流地址开始推流

3. 创建RTC连接

定义

int createRTCLine(String token,String anyrtcId,  String userId, String userData)

参数

参数名 类型 描述
token String 令牌:客户端向自己服务申请获得,参考企业级安全指南
anyrtcId String 在开发者业务系统中保持唯一的Id(必填)
userId String 主播在开发者自己平台的Id
userData String 播在开发者自己平台的相关信息(昵称,头像等)

返回值

0:调用成功;4:参数非法

说明

该方法须在开始推流(startRtmpPlay)方法后调用

4. 同意游客连麦请求

定义

void acceptRTCLine(String peerId)

参数

参数名 类型 描述
peerId String RTC服务生成的连麦者标识Id 。(用于标识连麦用户,每次连麦随机生成))

说明

调用此方法即可同意游客的连麦请求。

5.拒绝游客连麦请求

定义

void rejectRTCLine(String peerId)

参数

参数名 类型 描述
peerId String RTC服务生成的连麦者标识Id 。(用于标识连麦用户,每次连麦随机生成))

说明

调用此方法即可拒绝游客的连麦请求

6.挂断游客连麦

定义

void hangupRTCLine(String peerId)

参数

参数名 类型 描述
peerId String RTC服务生成的连麦者标识Id 。(用于标识连麦用户,每次连麦随机生成))

说明

调用此方法即可挂断与游客的连麦

7.停止推流

定义

void stopRtmpStream()

说明

停止推流

8.设置其他人视频窗口

定义

void setRTCRemoteVideoRender(String publishId,long render)

参数

参数名 类型 描述
publishId String RTC服务生成是视频通道Id
render long SDK底层视频显示对象

说明

该方法用于游客申请连麦接通后,游客视频连麦接通回调中(OnRTCOpenRemoteVideoRender)使用

9. 发送消息

定义

boolean sendMessage(int type,String userName, String headUrl, String content)

参数

参数名 类型 描述
type int 消息类型 0 普通消息 1 弹幕消息
userName String 用户昵称(最大256字节),不能为空,否则发送失败;
headUrl String 用户头像(最大512字节),可选;
content String 消息内容(最大1024字节)不能为空,否则发送失败;

返回值

true 发送成功 false 发送失败

10. 关闭RTC连接

定义

void closeRTCLine()

说明

一般不调用。主播端如果调用此方法,将会关闭RTC服务,游客端将会收主播已离开onRTCLineLeave回调。

11. 设置合成流连麦视频窗口位置

定义

void setVideoTemplate( ARRtmpcVideoHorizontal eHor, ARRtmpcVideoVertical eVer,ARRtmpcVideoDirection eDir, int ePadhor, int ePadver, int nWLineWidth)

参数

参数名 类型 描述
eHor ARRtmpcVideoHorizontal 横向位置
eVer ARRtmpcVideoVertical 竖向位置
eDir ARRtmpcVideoDirection 排布方向
ePadhor int 横向的间距(左右间距:最左边或者最后边的视频离边框的距离)
ePadver int 竖向的间距(上下间距:最上面或者最下面离边框的距离)
nWLineWidth int 合成小视频白边宽度(上下间距:最上面或者最下面离边框的距离)

12. 设置合成视频显示模板

定义

void setMixVideoModel(ARRtmpcLineLayoutTemplate layoutTemplate)

参数

参数名 类型 描述
layoutTemplate ARRtmpcLineLayoutTemplate 布局样式

13. 设置视频的默认背景图片

定义

int setVideoSubBackground(String filePath)

参数

参数名 类型 描述
filePath String 图片的路径

返回值

0/1/2:没有读取文件权限/打开设置成功/文件不存在

说明

一定要打开读取权限,仅支持jpg和png的图片格式(仅支持640*640分辨率以内)

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

定义

void setLocalAudioEnable(boolean enabled)

参数

参数名 类型 描述
enable boolean 打开或关闭本地音频传输

说明

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

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

定义

void setLocalVideoEnable(boolean enabled)

参数

参数名 类型 描述
enable boolean 打开或关闭本地视频传输

说明

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

16. 切换前后摄像头

定义

void switchCamera()

17. 设置录像地址(地址为拉流地址)

定义

void setRtmpRecordUrl( String url)

参数

参数名 类型 描述
url String 设置Rtmp录制地址,需放在开始推流方法前.并且必须在平台上开启录像服务

说明

设置录像地址(地址为拉流地址)

18. 设置前置摄像头镜像是否打开

定义

void setFrontCameraMirrorEnable(boolean enable)

参数

参数名 类型 描述
enable boolean true 打开 false 关闭

说明

是否打开镜像模式,默认关闭

19. 设置相机支持范围内的焦距

定义

void setCameraZoom( int distance)

参数

参数名 类型 描述
distance int 焦距

说明

设置相机支持范围内的焦距

20. 获取相机最大焦距

定义

int getCameraMaxZoom()

返回值

最大焦距

21. 获取相机当前焦距

定义

int getCameraZoom()

返回值

当前焦距

22. 判断是否可变焦

定义

boolean isZoomSupported()
boolean isSmoothZoomSupported()

返回值

是否支持变焦/平滑变焦

说明
在设置变焦前先用该方法判断是否支持变焦

23. 打开关闭摄像头闪光灯

定义

void openCameraTorchMode(final boolean open)

参数

参数名 类型 描述
open boolean 是否开启闪光灯

24. 设置音频检测

定义

void setAudioActiveCheck(boolean open)

参数

参数名 类型 描述
open boolean 是否开启音频检测

说明

默认音频检测打开

25.设置视频横屏模式

定义

 void setScreenToLandscape()

26.设置视频竖屏模式

定义

void setScreenToPortrait()

27. 设置左侧logo水印

定义

int setVideoLogo( String path,  int x,  int y)

参数

参数名 类型 描述
path String 水印图片文件路径
x int 距左上角X轴距离
y int 距左上角Y轴距离

说明

仅支持jpg图片,注意安卓动态权限处理

28. 设置右侧logo水印

定义

int setVideoTopRightLogo( String path,  int x,  int y)

参数

参数名 类型 描述
path String 水印图片文件路径
x int 距右上角X轴距离
y int 距右上角Y轴距离

说明

仅支持jpg图片,注意安卓动态权限处理

29.销毁主播端

定义

void clean()

ARRtmpcHosterEvent主播回调类

1. RTMP服务连接成功

定义

void onRtmpStreamOk()

2. RTMP 服务重连

定义

void onRtmpStreamReconnecting(int times)

参数

参数名 类型 描述
times int 重连次数

3. RTMP推流状态

定义

void onRtmpStreamStatus(int delayTime, int netBand)

参数

参数名 类型 描述
times int 推流的延迟时间(单位:ms)
netBand int 当前的上行的带宽(单位:byte)

4. RTMP服务连接失败

定义

void onRtmpStreamFailed(int code)

参数

参数名 类型 描述
code int 状态码

5. RTMP服务关闭

定义

 void onRtmpStreamClosed()

6. 创建RTC服务结果

定义

void onRTCCreateLineResult(int code, String reason);

参数

参数名 类型 描述
code int 状态码
reason String 原因

说明

code==0 时,连接服务成功 code为其他值时均为失败,具体可查看code对应说明

7. 主播收到游客连麦请求

定义

void onRTCApplyToLine(String peerId, String userId, String userData)

参数

参数名 类型 描述
peerId String 连麦者标识id(用于标识连麦用户,每次连麦随机生成)
userId String 游客在自己业务平台的UserId
userData String 游客加入RTC连接的自定义参数体(可查看游客端加入RTC连接方法)

8. 游客取消连麦申请

定义

void onRTCCancelLine(int code, String peerId)

参数

参数名 类型 描述
code int 状态码
peerId String 连麦者标识id(用于标识连麦用户,每次连麦随机生成)

9. RTC服务关闭

定义

void onRTCLineClosed(int code,String reason)

参数

参数名 类型 描述
code int 状态码
reason String 说明

10. 连麦者视频即将显示回调

定义

void onRTCOpenRemoteVideoRender(String peerId, String publishId, String userId, String userData);

参数

参数名 类型 描述
peerId String 连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId String RTC服务生成的视频通道Id
userId String 开发者自己平台的用户Id
userData String 开发者自己平台的相关信息(昵称,头像等)

说明

主播与游客的连麦接通后视频将要显示时回调此方法

11. 连麦者视频关闭

定义

void onRTCCloseRemoteVideoRender(String peerId, String publishId, String userId);

参数

参数名 类型 描述
peerId String 连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId String RTC服务生成的视频通道Id
userId String 开发者自己平台的用户Id

说明

当与连麦的人断开连麦时会回调此方法

12. (语音连麦)连麦接通后

定义

void onRTCOpenRemoteAudioLine(String peerId, String publishId, String userId, String userData);

参数

参数名 类型 描述
peerId String 连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId String RTC服务生成的视频通道Id
userId String 开发者自己平台的用户Id
userData String 开发者自己平台的相关信息(昵称,头像等)

说明

语音模式下,主播与游客的连麦接通后回调此方法

13. (语音连麦)连麦断开后

定义

void onRTCCloseRemoteAudioLine(String peerId, String publishId, String userId);

参数

参数名 类型 描述
peerId String 连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId String RTC服务生成的视频通道Id
userId String 开发者自己平台的用户Id

说明

语音连麦模式下,当与连麦的人断开连麦时会回调此方法

14. 连麦的人音视频状态回调

定义

void onRTCRemoteAVStatus(String peerId, boolean audio, boolean video);

参数

参数名 类型 描述
peerId String 连麦者标识id(用于标识连麦用户,每次连麦随机生成)
audio boolean true 音频打开 false 音频关闭
video boolean true 视频打开 false 视频关闭

15. 本地RTC音频检测

定义

void onRTLocalAudioActive(int time);

参数

参数名 类型 描述
time int 音频检测在time毫秒内不会再回调该方法(单位:毫秒)

16. 远程(连麦的人)RTC音频检测

定义

void onRTCRemoteAudioActive(String peerId, int level, int time);

参数

参数名 类型 描述
peerId String 连麦者标识id(用于标识连麦用户,每次连麦随机生成)
time int 音频检测在time毫秒内不会再回调该方法(单位:毫秒)

17. 收到消息

定义

void onRTCUserMessage(int type,String userId, String userName, String headUrl, String message)

参数

参数名 类型 描述
type int 消息类型 0 普通消息 1 弹幕消息
userId String 发送消息者在自己平台下的Id
userName String 发送消息者的昵称
headUrl String 发送者的头像
message String 消息内容

说明

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

18. 实时在线人数变化通知

定义

void onRTCMemberNotify(String serverId, String roomId, int totalMember)

参数

参数名 类型 描述
serverId String 服务器地址,用于请求人员列表的参数
roomId String 房间Id,用于请求人员列表的参数
totalMember int 当前在线人数

说明

serverAddress和roomId参数用于请求人员列表


ARRtmpcGuestOption游客端配置类

1. 获取配置类

定义

ARRtmpcGuestOption arGuestOption = ARRtmpcEngine.Inst().getGuestOption();

2. 设置可配置参数

定义

void setOptionParams(boolean isDefaultFrontCamera, ARVideoCommon.ARVideoOrientation videoOrientation, ARVideoCommon.ARMediaType mediaType)

参数

参数名 类型 描述
isDefaultFrontCamera boolean 是否默认前置摄像头 true 前置 false 后置 默认true
videoOrientation ARVideoOrientation 视频方向 默认竖直
mediaType ARMediaType 发布媒体类型 Video音视频 Audio 音频 默认音视频

说明

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


ARRtmpcGuestKit游客类

1. 实例化ARRtmpcGuestKit对象

定义

ARRtmpcGuestKit guestKit = new ARRtmpcGuestKit(ARRtmpcGuestEvent guestEvent);

参数

参数名 类型 描述
guestEvent ARRtmpcGuestEvent 回调实现类

2. 开始播放RTMP流

定义

 void startRtmpPlay( String pullUrl,  long render)

参数

参数名 类型 描述
pullUrl String 拉流地址
render long SDK底层视频显示对象

3. 加入RTC连接

定义

int joinRTCLine( String token,String anyRTCId,String userId, String userData)

参数

参数名 类型 描述
token String 令牌:客户端向自己服务申请获得,参考企业级安全指南
anyRTCId String 主播对应的anyRTCId
userId String 游客业务平台的用户id
userData String 游客业务平台自定义数据

返回值

0:调用成功;4:参数非法;

说明

此方法需在startRtmpPlay()之后调用

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

定义

int setLocalVideoCapturer(long renderPointer)

参数

参数名 类型 描述
render long 底层视频渲染对象

返回值

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

5.设置其他人视频窗口

定义

void setRTCRemoteVideoRender(String publishId,long render)

参数

参数名 类型 描述
publishId String RTC服务生成视频通道ID
render long SDK底层视频显示对象

说明

该方法用于(OnRTCOpenRemoteVideoRender)回调中使用

6.申请连麦

定义

int applyRTCLine()

返回值

0/1:失败(没有录音权限)/成功

7.挂断连麦

定义

void hangupRTCLine()

8.关闭RTC连接

定义

void leaveRTCLine()

说明

用于关闭RTC服务,将无法进行聊天互动,人员上下线等

9.设置视频横屏模式

定义

 void setScreenToLandscape()

10.设置视频竖屏模式

定义

void setScreenToPortrait()

11. 发送消息

定义

boolean sendMessage(int type,String userName, String headUrl, String content)

参数

参数名 类型 描述
type int 消息类型 0 普通消息 1 弹幕消息
userName String 用户昵称(最大256字节),不能为空,否则发送失败;
headUrl String 用户头像(最大512字节),可选;
content String 消息内容(最大1024字节)不能为空,否则发送失败;

返回值

true 发送成功 false 发送失败

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

定义

void setLocalAudioEnable(boolean enabled)

参数

参数名 类型 描述
enable boolean 打开或关闭本地音频传输

说明

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

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

定义

void setLocalVideoEnable(boolean enabled)

参数

参数名 类型 描述
enable boolean 打开或关闭本地视频传输

说明

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

14. 切换前后摄像头

定义

void switchCamera()

15. 设置音频检测

定义

void setAudioActiveCheck(boolean open)

参数

参数名 类型 描述
open boolean 是否开启音频检测

说明

默认音频检测打开

16. 设置前置摄像头镜像是否打开

定义

void setFrontCameraMirrorEnable(boolean enable)

参数

参数名 类型 描述
enable boolean true 打开 false 关闭

说明

是否打开镜像模式,默认关闭

17. 销毁游客端

定义

void clear()

ARRtmpcGuestEvent主播回调类

1. RTMP连接成功

定义

void onRtmpPlayerOk()

2. RTMP开始播放

定义

void onRtmpPlayerStart()

3. RTMP当前播放状态

定义

void onRtmpPlayerStatus(int cacheTime, int bitrate)

参数

参数名 类型 描述
cacheTime int 缓存时间(单位:ms)
bitrate int 当前码率大小(单位:byte)

说明

在主播处于直播状态时,将会一直回调此方法

4. RTMP播放缓冲进度

定义

void onRtmpPlayerLoading(int percent)

参数

参数名 类型 描述
percent int 缓存百分比,0-100

说明

弱网下rtmp播放出现卡顿时,当前缓冲进度。nPercent为0时,页面可以进行缓冲提示。当为100时,缓冲提示去掉

5.RTMP播放器关闭

定义

void onRtmpPlayerClosed(int code)

参数

参数名 类型 描述
code int 状态码

说明

主播停止推流将会回调此方法

6.RTC服务连接结果

定义

void onRTCJoinLineResult(int code, String reason)

参数

参数名 类型 描述
code int 状态码
reason String 说明

说明

code==0时,连接服务成功 code为其他值时均为失败,具体可查看code对应说明

7.申请连麦结果

定义

void onRTCApplyLineResult(int code)

参数

参数名 类型 描述
code int 状态码

说明

code==0时连麦成功 code为其他值时均为失败,具体可查看code对应说明

8.主播挂断游客连麦

定义

void onRTCHangupLine()

说明

主播挂断游客的连麦。 视频直播中此时应移除本地连麦小窗口图像

9.断开RTC服务连接

定义

void onRTCLineLeave(int code,String reason)

参数

参数名 类型 描述
code int 状态码

10. 其他人视频即将显示回调

定义

void onRTCOpenRemoteVideoRender(String peerId, String publishId, String userId, String userData);

参数

参数名 类型 描述
peerId String 连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId String RTC服务生成的视频通道Id
userId String 开发者自己平台的用户Id
userData String 开发者自己平台的相关信息(昵称,头像等)

说明

主播与游客的连麦接通后视频将要显示时回调此方法

11. 其他连麦者视频关闭

定义

void onRTCCloseRemoteVideoRender(String peerId, String publishId, String userId);

参数

参数名 类型 描述
peerId String 连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId String RTC服务生成的视频通道Id
userId String 开发者自己平台的用户Id

说明

当与连麦的人断开连麦时会回调此方法

12. 其他连麦者(语音连麦)连麦接通后

定义

void onRTCOpenRemoteAudioLine(String peerId, String publishId, String userId, String userData);

参数

参数名 类型 描述
peerId String 连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId String RTC服务生成的视频通道Id
userId String 开发者自己平台的用户Id
userData String 开发者自己平台的相关信息(昵称,头像等)

说明

语音模式下,主播与游客的连麦接通后回调此方法

13. 其他连麦者(语音连麦)连麦断开后

定义

void onRTCCloseRemoteAudioLine(String peerId, String publishId, String userId);

参数

参数名 类型 描述
peerId String 连麦者标识id(用于标识连麦用户,每次连麦随机生成)
publishId String RTC服务生成的视频通道Id
userId String 开发者自己平台的用户Id

说明

语音连麦模式下,当与连麦的人断开连麦时会回调此方法

14. 连麦的人音视频状态回调

定义

void onRTCRemoteAVStatus(String peerId, boolean audio, boolean video);

参数

参数名 类型 描述
peerId String 连麦者标识id(用于标识连麦用户,每次连麦随机生成)
audio boolean true 音频打开 false 音频关闭
video boolean true 视频打开 false 视频关闭

15. 本地RTC音频检测

定义

void onRTLocalAudioActive(int time);

参数

参数名 类型 描述
time int 音频检测在time毫秒内不会再回调该方法(单位:毫秒)

16. 远程(连麦的人)RTC音频检测

定义

void onRTCRemoteAudioActive(String peerId, int level, int time);

参数

参数名 类型 描述
peerId String 连麦者标识id(用于标识连麦用户,每次连麦随机生成)
time int 音频检测在time毫秒内不会再回调该方法(单位:毫秒)

17. 收到消息

定义

void onRTCUserMessage(int type,String userId, String userName, String headUrl, String message)

参数

参数名 类型 描述
type int 消息类型 0 普通消息 1 弹幕消息
userId String 发送消息者在自己平台下的Id
userName String 发送消息者的昵称
headUrl String 发送者的头像
message String 消息内容

说明

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

18. 实时在线人数变化通知

定义

void onRTCMemberNotify(String serverId, String roomId, int totalMember)

参数

参数名 类型 描述
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
© 2016-2019 铂渊信息技术(上海)有限公司 all right reserved,powered by Gitbook该文件修订时间: 2020-07-29 12:20:25

results matching ""

    No results matching ""