線上教育平臺開發中,教學白板是如何實現的

萬嶽教育系統發表於2020-06-04

教學白板是線上教育平臺中不可缺少的功能,它的作用就如線下教室的黑板,講師透過它進行板書、課件展示等操作。下面小編以iOS版本的線上教育平臺開發為例,來說明白板功能是如何實現和呼叫的。

1.向伺服器獲取對應 room uuid 所需要的房間 roomToken,實際使用中,這步可以放在服務端。

- (void)joinExistRoom
{
    [WhiteUtils getRoomTokenWithUuid:self.roomUuid completionHandler:^(NSString * _Nullable roomToken, NSError * _Nullable error) {
        if (roomToken) {
            self.roomToken = roomToken;
//獲取到token之後加入房間
             [self joinRoomWithToken:roomToken];
         } else {
            UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"獲取 RoomToken 失敗", nil) message:[NSString stringWithFormat:@"錯誤資訊:%@", [error description]] preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *action = [UIAlertAction actionWithTitle:NSLocalizedString(@"確定", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
                [self.navigationController popViewControllerAnimated:YES];
            }];
            [alertVC addAction:action];
            [self presentViewController:alertVC animated:YES completion:nil];
        }
    }];
}

2.加入白板房間

- (void)joinRoomWithToken:(NSString *)roomToken
{
    //配置頭像,可以在操作的白板的時候展示頭像
    NSDictionary *payload = @{@"avatar": [Config getavatarThumb]};
    WhiteRoomConfig *roomConfig = [[WhiteRoomConfig alloc] initWithUuid:self.roomUuid roomToken:roomToken userPayload:payload];
    // * isWritable 預設為 yes,此處為了單元測試用
    roomConfig.isWritable = YES;
    // 配置,橡皮擦是否能刪除圖片。預設為 false,能夠刪除圖片。
    // roomConfig.disableEraseImage = YES;
    
    [self.sdk joinRoomWithConfig:roomConfig callbacks:nil completionHandler:^(BOOL success, WhiteRoom * _Nonnull room, NSError * _Nonnull error) {
        if (success) {
 
            self.roomToken = roomToken;
            self.room = room;
            isDisableTeachingAids = YES;
//禁止使用者的教具操作 ture為禁止
            [_room disableDeviceInputs:YES];
            
        } else {
            self.title = NSLocalizedString(@"加入失敗", nil);
            UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"加入房間失敗", nil) message:[NSString stringWithFormat:@"錯誤資訊:%@", [error localizedDescription]] preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *action = [UIAlertAction actionWithTitle:NSLocalizedString(@"確定", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
                [self.navigationController popViewControllerAnimated:YES];
            }];
            [alertVC addAction:action];
            [self presentViewController:alertVC animated:YES completion:nil];
        }
    }];
}

3、教具的使用操作

  WhiteMemberState *currentmState = [[WhiteMemberState alloc] init];
/*
WhiteApplianceNameKey const AppliancePencil = @"pencil";
WhiteApplianceNameKey const ApplianceSelector = @"selector";
WhiteApplianceNameKey const ApplianceText = @"text";
WhiteApplianceNameKey const ApplianceEllipse = @"ellipse";
WhiteApplianceNameKey const ApplianceRectangle = @"rectangle";
WhiteApplianceNameKey const ApplianceEraser = @"eraser";
*/
        currentmState.currentApplianceName = AppliancePencil;
//顏色可以自定義
        currentmState.strokeColor = [UIColor redColor];
//畫線寬度可以自定義
        currentmState.strokeWidth = 10;
        [self.room setMemberState:currentmState];

4、退出房間

  [self.room disconnect:nil];

以上就是iOS版本的線上教育平臺開發過程中,教學白板的實現和呼叫過程。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69968464/viewspace-2696259/,如需轉載,請註明出處,否則將追究法律責任。

相關文章