agora-edu-core
Version:
Core APIs for building an online classroom
815 lines (814 loc) • 20.7 kB
TypeScript
import { AgoraRteMediaPublishState, AgoraRteMediaSourceState, ApiBase } from 'agora-rte-sdk';
import { CloudDriveResourceInfo, ConversionOption } from '../stores/domain/common/cloud-drive/type';
import { EduSessionInfo, EduRoleTypeEnum, AgoraStreamStates } from '../type';
import { ClassState } from '../stores/domain/common/room/type';
import { BroadcastMessageRange, BroadcastMessageType, GroupDetail, PatchGroup } from '../stores/domain/common/group/type';
import { GroupState } from '../stores/domain/common/group/type';
export declare class EduApiService extends ApiBase {
/**
* 预检
* @param session
* @param handsUpLimit
* @param stream
* @returns
*/
checkIn(session: Partial<EduSessionInfo>, handsUpLimit?: {
maxAccept: number;
maxWait: number;
type: number;
timeout: number;
}, stream?: {
videoState?: AgoraRteMediaPublishState;
audioState?: AgoraRteMediaPublishState;
videoSourceState?: AgoraRteMediaSourceState;
audioSourceState?: AgoraRteMediaSourceState;
}): Promise<any>;
/**
* 进入房间
* @param session
* @param handsUpLimit
* @param stream
* @returns
*/
entry(session: Partial<EduSessionInfo>, stream?: {
videoState?: AgoraRteMediaPublishState;
audioState?: AgoraRteMediaPublishState;
videoSourceState?: AgoraRteMediaSourceState;
audioSourceState?: AgoraRteMediaSourceState;
}): Promise<any>;
/**
* 获取个人资源列表
* @param userUuid
* @param options
* @returns
*/
fetchPersonalResources(userUuid: string, options: {
nextId?: string;
tags?: string[];
resourceName?: string;
limit?: number;
pageSize?: number;
pageNo?: number;
converted?: number;
orderBy?: string;
parentResourceUuid?: string;
}): Promise<any>;
/**
* 删除个人资源
* @param resourceUuids
* @param userUuid
* @returns
*/
removeMaterials(resourceUuids: string[], userUuid: string): Promise<any>;
/**
* 获取上传信息
* @param param0
* @returns
*/
fetchFileUploadSts({ userUuid, resourceName, contentType, ext, size, conversion, }: Partial<{
userUuid: string;
resourceName: string;
contentType: string;
ext: string;
size: number;
conversion?: Partial<ConversionOption>;
}>): Promise<any>;
/**
* 新增云盘资源
* @param resourceUuid
* @param userUuid
* @param resourceInfo
* @returns
*/
addCloudDriveFile(resourceUuid: string, userUuid: string, resourceInfo: CloudDriveResourceInfo): Promise<any>;
/**
* 修改云盘资源
* @param resourceUuid
* @param userUuid
* @param resourceInfo
* @returns
*/
updateCloudDriveFile(resourceUuid: string, userUuid: string, resourceInfo: Pick<CloudDriveResourceInfo, 'resourceName'>): Promise<any>;
/**
* @deprecated This API will be removed in near future.
* 新增云盘资源
* @param resourceUuid
* @param userUuid
* @param resourceInfo
* @returns
*/
addCloudDriveFileV3(resourceUuid: string, userUuid: string, resourceInfo: CloudDriveResourceInfo): Promise<any>;
/**
* 获取聊天历史记录
* @param params
* @returns
*/
getHistoryChatMessage(params: {
roomUuid: string;
userUuid: string;
data: {
nextId: string;
sort: number;
};
}): Promise<any>;
/**
* 获取聊天历史会话信息
* @param params
* @returns
*/
getConversationHistoryChatMessage(params: {
roomUuid: string;
data: {
nextId: string;
sort: number;
studentUuid: string;
};
}): Promise<any>;
/**
* 获取聊天会话列表
* @param params
* @returns
*/
getConversationList(params: {
roomUuid: string;
data: {
nextId: string;
};
}): Promise<any>;
/**
* 发送聊天信息
* @param params
* @returns
*/
sendChat(params: {
roomUuid: string;
userUuid: string;
data: {
message: string;
type: number;
};
}): Promise<any>;
/**
* 开启轮播
* @param payload
* @returns
*/
startCarousel(payload: {
roomUuid: string;
range?: number;
type?: number;
interval?: number;
count?: number;
}): Promise<any>;
/**
* 发送聊天会话信息
* @param params
* @returns
*/
sendConversationChat(params: {
roomUuid: string;
userUuid: string;
data: {
message: string;
type: number;
};
}): Promise<any>;
/**
* 关闭轮播
* @param payload
* @returns
*/
stopCarousel(payload: {
roomUuid: string;
}): Promise<any>;
/**
* 踢出房间
* @param userUuid
* @param isBan
* @param roomUuid
* @returns
*/
kickOutOnceOrBan(userUuid: string, isBan: boolean, roomUuid: string): Promise<any>;
/**
* 聊天禁言
* @param params
* @returns
*/
muteChat(params: {
roomUuid: string;
muteChat: number;
}): Promise<any>;
/**
* 发送奖励
* @param params
* @param isBatch
* @returns
*/
sendRewards(params: {
roomUuid: string;
rewards: Array<{
userUuid: string;
changeReward: number;
}>;
}, isBatch?: boolean): Promise<any>;
/**
* 允许举手上台申请
* @param params
* @returns
*/
allowHandsUp(params: {
roomUuid: string;
state: number;
defaultAcceptRole?: 'audience' | '';
}): Promise<any>;
/**
* 举手
* @param params
* @returns
*/
handsUp(params: {
roomUuid: string;
toUserUuid: string;
timout?: number;
retry?: boolean;
payload?: unknown;
}): Promise<any>;
/**
* 挥手
* @param params
* @returns
*/
handsWave(params: {
roomUuid: string;
toUserUuid: string;
timout?: number;
retry?: boolean;
payload?: unknown;
}): Promise<any>;
/**
* 接受举手上台请求
* @param params
* @returns
*/
acceptHandsUp(params: {
roomUuid: string;
toUserUuid?: string;
}): Promise<any>;
/**
* 取消举手
* @param params
* @returns
*/
cancelHandsUp(params: {
roomUuid: string;
toUserUuid?: string;
}): Promise<any>;
/**
* 取消挥手
* @param params
* @returns
*/
cancelHandsWave(params: {
roomUuid: string;
toUserUuid?: string;
}): Promise<any>;
/**
* 下台,停止连麦
* @param params
* @returns
*/
revokeCoVideo(params: {
roomUuid: string;
toUserUuid?: string;
}): Promise<any>;
/**
* 所有成员下台,停止连麦
* @param params
* @returns
*/
revokeAllCoVideo(params: {
roomUuid: string;
}): Promise<any>;
/**
* 更新录制状态
* @param params
* @returns
*/
updateRecordingState(params: {
roomUuid: string;
state: number;
args?: unknown;
backupCount?: number;
}): Promise<any>;
/**
* 更新录制状态(录制中)
* @param params
* @returns
*/
updateRecordingStateOngoing(params: {
roomUuid: string;
opts: {
onHold: boolean;
};
}): Promise<any>;
/**
* 更新教室状态
* @param params
* @returns
*/
updateClassState(params: {
roomUuid: string;
state: ClassState;
}): Promise<any>;
/**
* 开启屏幕共享
* @param roomId
* @param userUuid
* @returns
*/
startShareScreen(roomId: string, userUuid: string, audioOptions?: Partial<AgoraStreamStates>): Promise<any>;
/**
* 停止屏幕共享
* @param roomId
* @param userUuid
* @returns
*/
stopShareScreen(roomId: string, userUuid: string): Promise<any>;
/**
* 开启屏幕共享
* @param roomId
* @param userUuid
* @returns
*/
startShareScreenStateless(roomId: string, userUuid: string): Promise<any>;
/**
* 停止屏幕共享
* @param roomId
* @param userUuid
* @returns
*/
stopShareScreenStateless(roomId: string, userUuid: string): Promise<any>;
/**
* 更新房间 widget 属性
* @param roomUuid
* @param widgetUuid
* @param properties
* @returns
*/
updateWidgetProperties(roomUuid: string, widgetUuid: string, properties: unknown): Promise<{
data: any;
}>;
/**
* 删除房间 widget
* @param roomUuid
* @param widgetUuid
* @returns
*/
deleteWidget(roomUuid: string, widgetUuid: string): Promise<{
data: any;
}>;
/**
* 移除 extra 中的属性
* @param roomUuid
* @param widgetUuid
* @param properties
* @returns
*/
removeWidgetExtraProperties(roomUuid: string, widgetUuid: string, properties: unknown): Promise<{
data: any;
}>;
/**
* 设置用户 widget 属性
* @param roomUuid
* @param widgetUuid
* @param userUuid
* @param properties
* @returns
*/
updateWidgetUserProperties(roomUuid: string, widgetUuid: string, userUuid: string, properties: unknown): Promise<{
data: any;
}>;
/**
* 移除用户 widget 属性
* @param roomUuid
* @param widgetUuid
* @param userUuid
* @param properties
* @returns
*/
removeWidgetUserProperties(roomUuid: string, widgetUuid: string, userUuid: string, properties: unknown): Promise<{
data: any;
}>;
/**
* 开启选择题
* @param roomUuid
* @param properties
* @returns
*/
startAnswer(roomUuid: string, properties: unknown): Promise<{
data: any;
}>;
/**
* 停止选择
* @param roomUuid
* @param popupQuizId
* @returns
*/
stopAnswer(roomUuid: string, popupQuizId: string): Promise<{
data: any;
}>;
/**
* 修改答题正确选项
* @param roomUuid
* @param popupQuizId
* @param correctItems
* @returns
*/
updateAnswerCorrectItems(roomUuid: string, popupQuizId: string, correctItems: string[]): Promise<{
data: any;
}>;
/**
* 获取答题列表
* @param roomUuid
* @param popupQuizId
* @param query
* @returns
*/
getAnswerList(roomUuid: string, popupQuizId: string, query: {
nextId: number;
count: number;
}): Promise<{
data: any;
}>;
/**
* 提交答案
* @param roomUuid
* @param properties
* @returns
*/
submitAnswer(roomUuid: string, popupQuizId: string, userUuid: string, properties: unknown): Promise<{
data: any;
}>;
/**
* 开启投票
* @param roomUuid
* @param properties
* @returns
*/
startPolling(roomUuid: string, properties: unknown): Promise<{
data: any;
}>;
/**
* 投票
* @param roomUuid
* @param pollId 投票id
* @param userUuid 用户ID
* @param properties
* @returns
*/
submitResult(roomUuid: string, pollId: string, userUuid: string, properties: unknown): Promise<{
data: any;
}>;
/**
* 结束投票
* @param roomUuid
* @param pollId
* @returns
*/
stopPolling(roomUuid: string, pollId: string): Promise<{
data: any;
}>;
/**
* 开启倒计时
* @param roomUuid
* @param duration
* @returns
*/
startCountdownTimer(roomUuid: string, duration: number): Promise<{
data: any;
}>;
/**
* 暂停倒计时
* @param roomUuid
* @param countdownTimerId
* @returns
*/
pauseCountdownTimer(roomUuid: string, countdownTimerId: string): Promise<{
data: any;
}>;
/**
* 恢复倒计时
* @param roomUuid
* @param countdownTimerId
* @returns
*/
resumeCountdownTimer(roomUuid: string, countdownTimerId: string): Promise<{
data: any;
}>;
/**
* 结束倒计时
* @param roomUuid
* @param countdownTimerId
* @returns
*/
stopCountdownTimer(roomUuid: string, countdownTimerId: string): Promise<{
data: any;
}>;
/**
* 更新用户属性
* @param roomUuid
* @param properties
* @param cause
* @returns
*/
updateFlexProperties(roomUuid: string, params: {
properties?: unknown;
increments?: unknown;
cause?: unknown;
throttleTime?: number;
}): Promise<any>;
/**
* 上报麦克风设备状态(兼容历史版本)
* @param payload
* @returns
*/
reportMicCameraStateLeagcy(payload: {
roomUuid: string;
userUuid: string;
data: unknown;
}): Promise<any>;
/**
* 获取房间内用户列表
* @param roomId
* @param params
* @returns
*/
fetchUserList(roomId: string, params: {
role: EduRoleTypeEnum;
type?: '0' | '1';
nextId: string | number | null | undefined;
count?: number;
userName?: string;
}): Promise<any>;
/**
* 新增组
* @param roomUuid
* @param data
* @returns
*/
addGroup(roomUuid: string, data: {
groups: GroupDetail[];
inProgress: boolean;
}): Promise<any>;
/**
* 开启/关闭分组
* @param roomUuid
* @param state
* @param data
* @returns
*/
updateGroupState(roomUuid: string, data: {
groups: GroupDetail[];
inProgress?: boolean;
syncBoardScenes?: boolean;
}, state?: GroupState): Promise<any>;
/**
* 删除分组
* @param roomUuid
* @param data
* @returns
*/
removeGroup(roomUuid: string, data: {
removeGroupUuids: string[];
}): Promise<any>;
/**
* 接受分组邀请
* @param roomUuid
* @param groupUuid
*/
acceptGroupInvite(roomUuid: string, groupUuid: string, data?: {
leaveGroupUuids: string[];
}): Promise<any>;
/**
* 拒绝进入分组邀请
* @param roomUuid
* @param groupUuid
* @returns
*/
rejectGroupInvite(roomUuid: string, groupUuid: string): Promise<any>;
/**
* 更新分组成员
* @param roomUuid
* @param data 🔢 inProgress 是否邀请,true 发送邀请 false 直接加入
* @returns
*/
updateGroupUsers(roomUuid: string, data: {
groups: PatchGroup[];
inProgress: boolean;
}): Promise<any>;
/**
* 发送全体消息
* @param roomUuid
* @param data
* rang: 1.大房间 2.指定组 3.全体(大房间+所有组)
* toGroupUuids: 当type=2时,传入指定小组id
* type: 消息类型;txt:文本消息,img:图片消息,loc:位置消息,audio:语音消息,video:视频消息,file:文件消息
* msg: 消息
* @returns
*/
sendNotificationMessage(roomUuid: string, data: {
rang: number;
toGroupUuids: string[];
type: string;
msg: string;
}): Promise<any>;
/**
* 修改分组信息
* @param roomUuid
* @param data
* @returns
*/
updateGroupInfo(roomUuid: string, data: {
groups: PatchGroup[];
}): Promise<any>;
/**
* 发送全体消息(根据区域判断)
* @param roomUuid
* @param data
* @returns
*/
broadcastMessage(roomUuid: string, data: {
range: BroadcastMessageRange;
type: BroadcastMessageType;
msg: string;
toGroupUuids?: string[];
}): Promise<any>;
/**
* 发送全体消息(AgoraChat)
* @param roomUuid
* @param data
* @returns
*/
broadcastHxChatMessage(roomUuid: string, data: {
range: BroadcastMessageRange;
type: BroadcastMessageType;
msg: string;
toGroupUuids?: string[];
}): Promise<any>;
/**
* 发送全体消息(RTM)
* @param roomUuid
* @param data
* @returns
*/
broadcastRtmChatMessage(roomUuid: string, data: {
range: BroadcastMessageRange;
type: BroadcastMessageType;
msg: string;
toGroupUuids?: string[];
}): Promise<any>;
/**
* 保存白板windowManager属性(课件)
* @param roomUuid
* @param data
* @returns
*/
setWindowManagerAttributes(roomUuid: string, data: unknown): Promise<any>;
/**
* 远程控制授权
* @param roomUuid
* @param userUuid
* @returns
*/
remoteControlTeacherAuthorization(roomUuid: string, userUuid: string): Promise<any>;
/**
* 获取白板windowManager属性(课件)
* @param roomUuid
* @returns
*/
getWindowManagerAttributes(roomUuid: string): Promise<any>;
/**
* 复制房间笔迹
* @param roomUuid
* @param fromRoomUuid
* @returns
*/
copyScenes(roomUuid: string, fromRoomUuid: string): Promise<any>;
/**
* 远程控制取消授权
* @param roomUuid
* @param userUuid
* @returns
*/
remoteControlTeacherUnauthorization(roomUuid: string, userUuid: string): Promise<any>;
/**
* 远程控制-老师发起邀请
* @param roomUuid
* @param data
* @returns
*/
remoteControlTeacherInvite(roomUuid: string, data: {
toUserUuid: string;
}): Promise<any>;
/**
* 远程控制-老师结束邀请
* @param roomUuid
* @param toUserUuid
* @returns
*/
remoteControlTeacherStopInvite(roomUuid: string, toUserUuid: string): Promise<any>;
/**
* 远程控制-学生同意邀请
* @param roomUuid
* @param userUuid
* @returns
*/
remoteControlStudentAcceptInvite(roomUuid: string, userUuid: string): Promise<any>;
/**
* 远程控制-获取远程控制需要的token
* @param roomUuid
* @param userUuid
* @returns
*/
remoteControlGetTokens(roomUuid: string, userUuid: string): Promise<any>;
/**
* 更新视频墙开关状态和发流用户列表
* @param roomUuid 课堂 ID
* @param state :视频墙开关状态
* - 1:开启视频墙功能
* - 0:关闭视频墙功能
* @param data 想要控制发流权限的用户 ID 列表
* @returns
*/
updateExpandedScopeAndStreams(roomUuid: string, state: 1 | 0, data: {
userUuids: string[];
}): Promise<any>;
/**
* 批量更新用户属性
* @param param0
* @returns
*/
updateBatchUserProperties({ roomUuid, data, }: {
data: {
userUuid: string;
properties: unknown;
cause?: unknown;
}[];
roomUuid: string;
}): Promise<any>;
/**
* 批量删除用户属性
* @param param0
* @returns
*/
deleteBatchUserProperties({ roomUuid, data, }: {
roomUuid: string;
data: {
properties: string[];
userUuid: string;
cause?: unknown;
}[];
}): Promise<any>;
/**
* 更新用户tag属性
* @param param0
* @returns
*/
updateUserTags({ key, data, roomUuid, userUuid, }: {
key: string;
data: unknown;
roomUuid: string;
userUuid: string;
}): Promise<any>;
/**
* 查询房间sequences事件
* @param param0
* @returns
*/
getRoomEvents({ roomUuid, userUuid, nextId, cmd, causeDataFilterKeys, causeDataFilterValues, }: {
roomUuid: string;
userUuid?: string;
nextId?: number;
cmd?: number;
causeDataFilterKeys?: string;
causeDataFilterValues?: string;
}): Promise<any>;
/**
* 查询房间录制列表
* @param param0
* @returns
*/
getRecordList({ roomUuid, nextId }: {
roomUuid: string;
nextId?: number;
}): Promise<any>;
/**
* 获取 AgoraChat 用户登录 Token
* @param param0
* @returns
*/
getAgoraChatToken({ roomUuid, userUuid }: {
roomUuid: string;
userUuid: string;
}): Promise<any>;
}