白板录制
白板支持录制操作。白板录制为白板的回放功能提供数据源。
说明
使用白板录制的前提是完成白板初始化。初始化接口请参见初始化。
支持的功能有:打开录制、结束录制、暂停录制、恢复录制。
API使用示例
开始录制
iOS:
id<AIRBRoomChannelProtocol> room = [[AIRBRoomEngine sharedInstance] getRoomChannelWithRoomID:@"xxx"];
[room.whiteboard startRecordingOnSuccess:^(NSString * _Nonnull recordID) {
NSLog(@"白板录制已开始");
} onFailure:^(NSString * _Nonnull error) {
NSLog(@"白板开始录制失败(%@)", error);
}];
Android:
whiteboardService.startWhiteboardRecording(new Callback<StartWhiteboardRecordingRsp>() {
@Override
public void onSuccess(StartWhiteboardRecordingRsp data) {
Logger.i(TAG, "onSuccess: ");
}
@Override
public void onError(String errorMsg) {
Logger.e(TAG, "onError: " + errorMsg);
}
});
Web:
whiteboardService.startWhiteboardRecording().then(() => { console.log('开始白板录制') })
Windows:
auto room_ptr =
alibaba::meta_space::MetaSpace::GetInstance()->GetRoomInstance(
room_id);
std::shared_ptr<IWhiteBoard> wb_plugin =
std::dynamic_pointer_cast<IWhiteBoard>(
room_ptr->GetPlugin(PluginWhiteBoard));
wb_plugin->StartRecord(doc_key, []() {
},[](const ::alibaba::dps::DPSError & error_msg){
});
结束录制
iOS:
id<AIRBRoomChannelProtocol> room = [[AIRBRoomEngine sharedInstance] getRoomChannelWithRoomID:@"xxx"];
[room.whiteboard stopRecordingOnSuccess:^{
NSLog(@"白板录制已结束");
} onFailure:^(NSString * _Nonnull error) {
NSLog(@"停止白板录制失败");
}];
Android:
whiteboardService.stopWhiteboardRecording(new Callback<Void>() {
@Override
public void onSuccess(Void data) {
Logger.i(TAG, "stopWhiteboardRecording onSuccess: " + data);
}
@Override
public void onError(String errorMsg) {
Logger.i(TAG, "stopWhiteboardRecording onError: " + errorMsg);
}
});
Web:
whiteboardService.stopWhiteboardRecording().then(() => { console.log('结束白板录制')
Windows:
auto room_ptr =
alibaba::meta_space::MetaSpace::GetInstance()->GetRoomInstance(
room_id);
std::shared_ptr<IWhiteBoard> wb_plugin =
std::dynamic_pointer_cast<IWhiteBoard>(
room_ptr->GetPlugin(PluginWhiteBoard));
wb_plugin->StopRecord(doc_key, []() {
},[](const ::alibaba::dps::DPSError & error_msg){
});
暂停录制
iOS:
id<AIRBRoomChannelProtocol> room = [[AIRBRoomEngine sharedInstance] getRoomChannelWithRoomID:@"xxx"];
[room.whiteboard pauseRecordingOnSuccess:^{
NSLog(@"白板录制已暂停");
} onFailure:^(NSString * _Nonnull error) {
NSLog(@"白板录制暂停失败");
}];
Android:
whiteboardService.pauseWhiteboardRecording(new Callback<Void>() {
@Override
public void onSuccess(Void data) {
Logger.i(TAG, "pauseWhiteboardRecording: " + data);
}
@Override
public void onError(String errorMsg) {
Logger.i(TAG, "pauseWhiteboardRecording onError: " + errorMsg);
}
});
Web:
whiteboardService.pauseWhiteboardRecording().then(() => { console.log('暂停白板录制')
Windows:
auto room_ptr =
alibaba::meta_space::MetaSpace::GetInstance()->GetRoomInstance(
room_id);
std::shared_ptr<IWhiteBoard> wb_plugin =
std::dynamic_pointer_cast<IWhiteBoard>(
room_ptr->GetPlugin(PluginWhiteBoard));
wb_plugin->PauseRecord(doc_key, []() {
},[](const ::alibaba::dps::DPSError & error_msg){
});
恢复录制
iOS:
id<AIRBRoomChannelProtocol> room = [[AIRBRoomEngine sharedInstance] getRoomChannelWithRoomID:@"xxx"];
[room.whiteboard resumeRecordingOnSuccess:^{
NSLog(@"白板录制已恢复");
} onFailure:^(NSString * _Nonnull error) {
NSLog(@"白板录制恢复失败");
}];
Android:
whiteboardService.resumeWhiteboardRecording(new Callback<Void>() {
@Override
public void onSuccess(Void data) {
Logger.i(TAG, "resumeWhiteboardRecording: " + data);
}
@Override
public void onError(String errorMsg) {
Logger.i(TAG, "resumeWhiteboardRecording onError: " + errorMsg);
}
});
Web:
whiteboardService.resumeWhiteboardRecording().then(() => { console.log('恢复白板录制')
Windows:
auto room_ptr =
alibaba::meta_space::MetaSpace::GetInstance()->GetRoomInstance(
room_id);
std::shared_ptr<IWhiteBoard> wb_plugin =
std::dynamic_pointer_cast<IWhiteBoard>(
room_ptr->GetPlugin(PluginWhiteBoard));
wb_plugin->ResumeRecord(doc_key, []() {
},[](const ::alibaba::dps::DPSError & error_msg){
});