文档/白板功能

当老师在创建课堂时,可以选择视频+文档的方式进行上课,文档可以是课件,可以是图片,可以是Doc类型的文件,可以根据流的延迟进行同步播放,丰富课堂的场景。

文档显示View

文档的显示和绘制由SDK提供,XML布局代码如下 , 所有的功能由这个View实现。


<com.vhall.classsdk.widget.DocumentView
        android:id="@+id/iv_doc"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
	

获取当前课堂的模式

文档分为 PPT文档和白板 0是文档 1是白板

VHClass.getInstance().getDocMode();

获取老师切换文档的消息

文档分为 PPT文档和白板 0是文档 1是白板

 @Override
        public void onMessageReceived(MessageServer.MsgInfo msgInfo) {
			switch (msgInfo.event) {
				case MessageServer.EVENT_CLASS_DOC_SWITCH: // 文档切换   0显示文档 1显示白板
					// 更新绘制模式
					mDocView.updateDrawMode(DocumentView.DRAW_MODE_WHITEBOARD); 
					break;
			}
		}

                 

设置PPT的绘制模式

/**
 * @param: DocumentView.DRAW_MODE_DOCUMENT  //文档模式
 * @param: DocumentView.DRAW_MODE_WHITEBOARD  //白板模式
 */
mDocView.updateDrawMode(DocumentView.DRAW_MODE_WHITEBOARD);

获取PPT和白板的消息

当老师操作文档或者白板的时候,会发送一条条消息到SDK中,用户需要接受这些消息然后交给DocumentVIew去处理

 @Override
        public void onMessageReceived(MessageServer.MsgInfo msgInfo) {
			switch (msgInfo.event) {
				// 白板中的消息
				case MessageServer.EVENT_CLEARBOARD:
                case MessageServer.EVENT_DELETEBOARD:
                case MessageServer.EVENT_INITBOARD:
                case MessageServer.EVENT_PAINTBOARD:
					if (documentFragment != null)
                    	documentFragment.drawDocument(msgInfo);
                    break;
				//文档消息
				case MessageServer.EVENT_CHANGEDOC:
                case MessageServer.EVENT_CLEARDOC:
                case MessageServer.EVENT_PAINTDOC:
                case MessageServer.EVENT_DELETEDOC:
                    if (documentFragment != null)
                        documentFragment.drawDocument(msgInfo);
                    break;
			}
		}

设置文档的Step

当收到消息后只需要调用PPT的Step即可

 mDocView.setStep(msgInfo);