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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值