前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微擎版线上教育系统开发中,白板功能是如何实现的

微擎版线上教育系统开发中,白板功能是如何实现的

原创
作者头像
万岳教育系统
修改2020-06-11 10:07:28
6740
修改2020-06-11 10:07:28
举报

教学白板是线上教育系统中的重要功能之一,有了它,讲师才能像在线下课堂的黑板上一样,板书内容,标记,甚至可以上传多媒体课件,和学员进行共享桌面操作。接下来,小编就以微擎版线上教育系统开发为例,来为大家演示下,其中的白板功能是如何实现的。

1.将sdk集成到项目中,在对应module的gradle下添加依赖

implementation 'com.github.duty-os:white-sdk-android:2.7.6'
另外项目的build.gradle还需要添加:
maven { url "https://jitpack.io" }

2.初始化sdk并添加相关view:

protected WhiteSdk mWhiteSdk;//白板sdk
//白板操作时的相关配置
WhiteSdkConfiguration configuration = new WhiteSdkConfiguration(DeviceType.touch, 2, 0.2,true);
configuration.setUserCursor(true);
mWhiteSdk = new WhiteSdk(mIWhiteBoardView.getWhiteBoardView(), mContext, configuration,new UrlInterrupter() {
    @Override
    public String urlInterrupter(String sourceUrl) {
        return sourceUrl;
    }
});
// WhiteboardView实质上是webview,所以考虑到webview内存泄漏的问题,WhiteboardView最好动态生成
private WhiteboardView mWhiteboardView;
mWhiteboardView = new WhiteboardView(mContext);

3.创建好房间,并加入房间,可设置视角模式,设置缩放比例,调整视角中心等

//加入房间需要uuid,roomtoken
HashMap<String, String> payload = new HashMap<>();
if(userBean!=null){
    String avatar=userBean.getAvatar_thumb();
    payload.put("avatar",avatar);
}
RoomParams roomParams = new RoomParams(mUUid, mRoomToken);
roomParams.setUserPayload(payload);
WhiteSdk.joinRoom(roomParams, roomCallbacks,(Promise<Room>) mPromise);
//设置视角跟随主播模式
mRoom.setViewMode(ViewMode.Follower);

4.加入房间成功,并设置了操作权限后,便可操作白板。

/**
 * 是否可写
 */
public void setWritable(boolean isable,Promise<Boolean> promise){
    if(mRoom==null){
        return;
    }
  if(mRoom.getWritable()==isable&&promise!=null){
        promise.then(true);
        return;
    }
    mRoom.setWritable(isable, promise);
}
调用MemberState的相关api可以进行相关教具操作。

5.退出房间,一定要释放相关资源。

例如:

if (mRoot != null) {
    mRoot.removeView(mWhiteboardView);
}
if (mWhiteboardView != null) {
    mWhiteboardView.stopLoading();
    // 退出时调用此方法,移除绑定的服务,否则某些特定系统会报错
    mWhiteboardView.getSettings().setJavaScriptEnabled(false);
    mWhiteboardView.clearHistory();
    mWhiteboardView.clearView();
    mWhiteboardView.removeAllViews();
    mWhiteboardView.destroy();
}
if (mWhiteBoardPresenter != null) {
    mWhiteBoardPresenter.release();
}
mWhiteboardView = null;
mWhiteBoardPresenter = null;

以上,就是微擎版线上教育系统开发中,白板功能的实现过程。

声明:以上内容为作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档