内容介绍
本文主要介绍如何使用自定义信令通道传输白板信令。
平台支持
iOS | Android | Windows | Mac OS | Web | 小程序 |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
同步原理
监听 onTEBSyncData 事件(事件名以各端实际为准),将事件中回调的数据通过信令通道进行广播。
收到白板信令后,调用互动白板 addSyncData 接口(接口名以各端实际为准)进行同步。
注意事项
使用自定义信令通道不支持实时录制,白板推流服务。
关闭互动白板内置的信令通道(一定需要关闭,否则会收不到 onTEBSyncData 回调)。
互动白板信令通道默认使用腾讯云 即时通信 IM ,使用自定义信令通道则无需集成 IMSDK。
代码集成
Mac/iOS
// 1. 将 TEduBoardInitParam 的 timSync 参数初始为 NOTEduBoardInitParam *initParam = [[TEduBoardInitParam alloc] init];initParam.timSync = NO; // 关闭互动白板内置的信令通道(一定需要关闭,否则会收不到 onTEBSyncData 回调)_boardController = [[TEduBoardController alloc] initWithAuthParam:authParam roomId:_classId initParam:initParam];// 2. 监听白板信令数据回调 onTEBSyncData,将数据发送给其他白板用户- (void)onTEBSyncData:(NSString *)data {//使用自定义信令通道,发送 data 给其他白板用户//信令发送成功后调用 addAckData(data),确认数据发送状态}// 3. 在收到其他用户的白板信令时,将消息传递给白板.[_boardController addSyncData:data];
Android
// 1. 将 TEduBoardInitParam 的 timSync 参数初始为 NOTEduBoardController.TEduBoardInitParam initParam = new TEduBoardController.TEduBoardInitParam();initParam.timSync = false; // 关闭互动白板内置的信令通道(一定需要关闭,否则会收不到 onTEBSyncData 回调)// 2. 监听白板信令回调 onTEBSyncData,将信令发送给其他白板用户@Overridepublic void onTEBSyncData(String data) {//使用自定义信令通道,发送 data 给其他白板用户//信令发送成功后调用 addAckData(data),确认数据发送状态}// 3. 在收到其他用户的白板信令时,将信令透传给白板mBoard.addSyncData(data);
Windows
// 1. 将 TEduBoardInitParam 的 timSync 参数初始为 NOTEduBoardInitParam initParam;initParam.timSync = false; // 关闭互动白板内置的信令通道(一定需要关闭,否则会收不到 onTEBSyncData 回调)boardCtrl->Init(authParam, ROOM_ID, initParam); // 使用上面构造的初始化参数// 2. 监听白板信令回调 onTEBSyncData,将信令发送给其他白板用户virtual void onTEBSyncData(const char * data) override {//使用自定义信令通道,发送 data 给其他白板用户//信令发送成功后调用 addAckData(data),确认数据发送状态}// 3. 在收到其他用户的白板信令时,将信令透传给白板boardCtrl->AddSyncData(data);
Web
// 1. 在 onTEBSyncData 回调里,将数据发送给其他白板用户teduBoard.on(TEduBoard.EVENT.TEB_SYNCDATA, data => {//使用自定义信令通道,发送 data 给其他白板用户//信令发送成功后调用 addAckData(data),确认数据发送状态});// 2. 在收到其他用户的白板信令时,将信令透传给白板teduBoard.addSyncData(data);