通过阅读本文,您可以了解到Android端互动大班课的集成方法。
环境要求
Android端具体环境要求,更多信息,请参见使用限制。
前提条件
- Web端服务已集成并开启,具体操作,请参见Web集成。
- 环境中已安装Android Studio 3.0或以上版本,更多信息,请参见Android Studio。
操作步骤
Demo目录结构说明
项目结构如下所示:
文件名 | 说明 |
---|---|
RTCInteractiveClass_RTC | 互动大班课功能实现库。更多信息,请参见RTCInteractiveClass_RTC组件库目录说明。 |
RTCSolutionCommon | 公共组建库。 |
RTCViewCommo | 公共UI库。 |
app | 程序入口。 |
thirdparty-lib | 第三方库的引用。 |
RTCInteractiveClass_RTC组件库目录说明,如下所示:
文件名 | 说明 |
---|---|
adapter | 列表控件adapter。 |
bean | 实体类。 |
constant | 常量数据管理类,在此配置服务端请求域名和分享链接的域名。 |
network | 网络请求。 |
rtc | RTC。 |
ui | 互动界面和登录界面。 |
util | 工具类。 |
view | 自定义view。 |
API说明
API | 描述 |
---|---|
sharedInstance | 获取RTCInteractiveClassImpl的实例对象,初始化RTC SDK。 |
destorySharedInstance | 销毁RTCSuperClassImpl的实例对象,销毁后需要再调用sharedInstance接口再次初始化实例。 |
login | 根据输入的房间号、用户名加入RTC频道。 |
logout | 退出RTC频道。 |
enterSeat | 连麦。 |
leavelSeat | 断开连麦。 |
muteLocalMic | 是否停止本地音频采集。 |
muteLocalCamera | 是否停止本地视频采集。 |
setLocalViewConfig | 为本地预览设置参数及绘制窗口。 |
startPreview | 开始本地预览。 |
stopPreview | 停止本地预览。 |
configRemoteCameraTrack | 设置是否拉取相机、屏幕、音频流,必须调用subscribe才能生效。 |
subscribe | 手动拉视频和音频流。 |
setRemoteViewConfig | 为远端的视频设置参数及绘制窗口。 |
setDelegate | 设置监听。 |
switchCamera | 切换前后摄像头。 |
API | 描述 |
---|---|
onEnterSeatResult | 用户上麦的通知。 |
onLeaveSeatResult | 用户下麦的通知。 |
onOccurError | 错误信息的通知。 |
onOccurWarning | 警告信息的通知。 |
onRoomDestroy | 房间被销毁的回调。 |
onSDKError | SDK发生异常需要销毁实例。 |
onJoinChannelResult | 加入房间的通知。 |
onLeaveChannelResult | 离开房间的通知。 |
onRemoteTrackAvailableNotify | 远端用户音视频流发生变化时的回调。 |
onSubscribeChangedNotify | 订阅情况发生变化时的回调。 |
onUserAudioMuted | 用户取消音频的通知。 |
onUserVideoMuted | 用户取消视频的通知。 |
onNetworkQualityChanged | 网络质量变化时的回调。 |
onUpdateRoleNotify | 角色切换成功的通知。 |
onRemoteUserOnLineNotify | 远端用户上线的通知。 |
onRemoteUserOffLineNotify | 远端用户下线的通知。 |
功能实现接口
- sharedInstance:获取RTCInteractiveClassImpl的实例对象,初始化RTC SDK。
/** * 获取单例 */ public static RTCInteractiveClassImpl sharedInstance() { return RTCInteractiveClassImpl.sharedInstance(); }
- destorySharedInstance:销毁RTCSuperClassImpl的实例对象,销毁后需要再调用sharedInstance接口再次初始化实例。
/** * 销毁实例 */ public abstract void destorySharedInstance();
- login:根据输入的房间号、用户名加入RTC频道。
/** * 登录 * * @param channelId 房间号 * @param userName 昵称 */ public abstract void login(String channelId, String userName);
- logout:退出RTC频道。
/** * 登出 */ public abstract void logout();
- enterSeat:连麦。
/** * 上麦 */ public abstract void enterSeat();
- leavelSeat:断开连麦。
/** * 下麦 */ public abstract void leavelSeat();
- muteLocalMic:是否停止本地音频采集。
/** * 停止发布音频 */ public abstract int muteLocalMic(boolean isMute);
- muteLocalCamera:是否停止本地视频采集。
/** * 停止发布视频 */ public abstract int muteLocalCamera(boolean isMute);
- setLocalViewConfig:为本地预览设置参数及绘制窗口。
/** * 设置本地预览渲染参数 */ public abstract void setLocalViewConfig(AliRtcEngine.AliVideoCanvas localAliVideoCanvas, AliRtcEngine.AliRtcVideoTrack aliRtcVideoTrackCamera);
- startPreview:开始本地预览。
/** * 开启预览 */ public abstract void startPreview();
- stopPreview:停止本地预览。
/** * 停止预览 */ public abstract void stopPreview();
- configRemoteCameraTrack:设置是否拉取相机、屏幕、音频流,必须调用subscribe才能生效。
/** * 设置是否订阅远端相机流。默认为订阅大流。当对流进行操作时(如手动订阅,关闭订阅),必须调用subscribe才能生效 */ public abstract void configRemoteCameraTrack(String userId, boolean master, boolean enable);
- subscribe:手动拉视频和音频流。
/** * 订阅 */ public abstract void subscribe(String userId);
- setRemoteViewConfig:为远端的视频设置参数及绘制窗口。
/** * 设置远端渲染参数 */ public abstract void setRemoteViewConfig(AliRtcEngine.AliVideoCanvas aliVideoCanvas, String uid, AliRtcEngine.AliRtcVideoTrack aliRtcVideoTrack);
- setDelegate:设置监听。
/** * 设置监听 */ public abstract void setDelegate(RTCInteractiveClassDelegate callback);
- switchCamera:切换前后摄像头。
/** * 切换摄像头 */ public abstract int switchCamera();
回调接口
- onEnterSeatResult:用户上麦的通知。
/** * 自己上麦结果通知 * @param result 0为成功,反之失败 */ void onEnterSeatResult(int result);
- onLeaveSeatResult:用户下麦的通知。
/** * 自己下麦结果通知 */ void onLeaveSeatResult(int result);
- onOccurError:错误信息的通知,当错误码是以下几种情况时,需要销毁SDK实例。
- ErrorCodeEnum.ERR_ICE_CONNECTION_HEARTBEAT_TIMEOUT
- ErrorCodeEnum.ERR_SDK_INVALID_STATE
- ErrorCodeEnum.ERR_SESSION_REMOVED
/** * SDK报错 * */ void onOccurError(int error);
- onOccurWarning:警告信息的通知。
/** * SDK警告 * */ void onOccurWarning( int error);
- onRoomDestroy:房间被销毁的回调。
/** * 房间被销毁的回调 */ void onRoomDestroy(int i);
- onSDKError:SDK发生异常需要销毁实例。
/** * SDK报错,需要销毁实例 */ void onSDKError( int error);
- onJoinChannelResult:加入房间的通知。
/** * 加入房间通知 * @param result 0为成功,反之失败 */ void onJoinChannelResult(int result);
- onLeaveChannelResult:离开房间的通知。
/** * 离开房间通知 */ void onLeaveChannelResult(int result);
- onRemoteTrackAvailableNotify:远端用户音视频流发生变化时的回调。
/** * * 当订阅情况发生变化时,返回这个消息onSubscribeChangedNotify * @param userId 用户ID * @param videoTrack 订阅成功的视频流 * @param audioTrack 订阅成功的音频流 */ void onRemoteTrackAvailableNotify(String userId, AliRtcEngine.AliRtcAudioTrack audioTrack, AliRtcEngine.AliRtcVideoTrack videoTrack);
- onSubscribeChangedNotify:当订阅情况发生变化时的回调。
/** * * 订阅结果回调 * @param userId 用户ID * @param videoTrack 订阅成功的视频流 * @param audioTrack 订阅成功的音频流 */ void onSubscribeChangedNotify(String userId, AliRtcEngine.AliRtcAudioTrack audioTrack, AliRtcEngine.AliRtcVideoTrack videoTrack);
- onUserAudioMuted:用户取消音频的通知
/** * 用户取消音频的通知 */ void onUserAudioMuted(String userId, boolean mute);
- onUserVideoMuted:用户取消视频通知。
/** * 用户取消视频通知 */ void onUserVideoMuted(String userId, boolean mute);
- onNetworkQualityChanged:网络质量变化时的回调。
/** * 网络状态回调 * * @param aliRtcNetworkQuality1 下行网络质量 * @param aliRtcNetworkQuality 上行网络质量 * @param s 用户ID */ void onNetworkQualityChanged(String s, AliRtcEngine.AliRtcNetworkQuality aliRtcNetworkQuality, AliRtcEngine.AliRtcNetworkQuality aliRtcNetworkQuality1);
- onUpdateRoleNotify:角色切换成功的通知。
/** * * 角色切换成功通知 */ void onUpdateRoleNotify(AliRtcEngine.AliRTCSDK_Client_Role oldRole, AliRtcEngine.AliRTCSDK_Client_Role newRole);
- onRemoteUserOnLineNotify:远端用户上线的通知。
/** * 用户上线通知 * * @param userId 用户ID */ void onRemoteUserOnLineNotify(String userId);
- onRemoteUserOffLineNotify:远端用户下线的通知。
/** * 用户下线通知 * @param userId 用户ID */ void onRemoteUserOffLineNotify(String userId);
在文档使用中是否遇到以下问题
更多建议
匿名提交