UNPKG

agora-classroom-sdk

Version:

For publishing npm package agora-classroom-sdk (Web & Electron). Get more information from https://docs.agora.io

258 lines (257 loc) 6.74 kB
import { AgoraRteMediaSourceState, AGRenderMode } from 'agora-rte-sdk'; import { IReactionDisposer, Lambda } from 'mobx'; import { EduUIStoreBase } from '../base'; import { CameraPlaceholderType, EduStreamUI, StreamBounds } from './struct'; import { EduStreamTool } from './tool'; import { AgoraEduClassroomEvent, ClassroomState, EduStream } from 'agora-edu-core'; import { ShareStreamStateKeeper } from './state-keeper'; export declare enum StreamIconColor { active = "#357bf6", deactive = "#bdbdca", activeWarn = "#f04c36" } export declare class StreamUIStore extends EduUIStoreBase { protected _disposers: (IReactionDisposer | Lambda)[]; /** * 视频窗位置信息 */ /** @en * video stream bounds */ streamsBounds: Map<string, StreamBounds>; shareScreenStateKeeperMap: Map<string, ShareStreamStateKeeper>; settingsOpened: boolean; get screenShareStateAccessor(): { trackState: AgoraRteMediaSourceState; classroomState: ClassroomState; }; onInstall(): void; _handleRewardsChange(e: AgoraEduClassroomEvent, params: unknown): void; protected _setRenderAt(stream: EduStreamUI): void; /** * 奖励信息 */ awardAnims: { id: string; userUuid: string; }[]; /** * 分离窗口视频流 * @returns */ get allUIStreams(): Map<string, EduStreamUI>; /** * 老师流信息(教室内只有一个老师时使用,如果有一个以上老师请使用 teacherStreams) * @returns */ get teacherCameraStream(): EduStreamUI | undefined; /** * 学生流信息(教室内只有一个学生时使用,如果有一个以上老师请使用 studentStreams) * @returns */ get studentCameraStream(): EduStreamUI | undefined; /** * 学生流信息(教室内只有一个学生时使用,如果有一个以上老师请使用 studentStreams) * @returns */ get studentCameraStreams(): EduStreamUI[]; /** * 屏幕共享流 * @returns */ get screenShareStream(): EduStream | undefined; /** * 获取远端流音量 * @returns */ remoteStreamVolume: (stream: EduStreamUI) => number; /** * 本地音量 * @returns */ get localVolume(): number; /** * 本地摄像头设备状态 * @returns */ get localCameraTrackState(): AgoraRteMediaSourceState; /** * 本地麦克风设备状态 * @returns */ get localMicTrackState(): AgoraRteMediaSourceState; /** * 本地屏幕共享状态 * @returns */ get localScreenShareOff(): boolean; /** * 本地摄像头设备是否关闭 * @returns */ get localCameraOff(): boolean; /** * 本地麦克风设备是否关闭 * @returns */ get localMicOff(): boolean; /** * 镜像是否开启 * @returns */ get isMirror(): boolean; /** * 白板授权用户列表 * @returns */ get whiteboardGrantUsers(): Set<string>; /** * 视频窗口显示的挂件信息 * reward: 奖励信息 * grant: 授权状态 * @returns */ get layerItems(): string[]; /** * 远端流是否正在举手 * @returns */ isWaveArm: (stream: EduStreamUI) => boolean; /** * 远端流奖励信息 * @returns */ awards: (stream: EduStreamUI) => number; /** * 远端流奖励动画列表 * @returns */ streamAwardAnims: (stream: EduStreamUI) => { id: string; userUuid: string; }[]; /** * 本地视频窗摄像头 * @returns */ localCameraTool: () => EduStreamTool; /** * 本地视频窗麦克风 * @returns */ localMicTool: () => EduStreamTool; /** * 本地视频窗上下台 * @returns */ localPodiumTool: () => EduStreamTool; /** * 远端视频窗摄像头 * @returns */ remoteCameraTool: (stream: EduStreamUI) => EduStreamTool; /** * 远端视频窗麦克风 * @returns */ remoteMicTool: (stream: EduStreamUI) => EduStreamTool; /** * 远端视频窗上下台 * @returns */ remotePodiumTool: (stream: EduStreamUI) => EduStreamTool; /** * 远端视频窗白板授权 * @returns */ remoteWhiteboardTool: (stream: EduStreamUI) => EduStreamTool; /** * 远端视频窗奖励 * @returns */ remoteRewardTool: (stream: EduStreamUI) => EduStreamTool; /** * 本地视频窗工具列表 * @returns */ get localStreamTools(): EduStreamTool[]; /** * 远端视频窗工具列表 * @returns */ remoteStreamTools: (stream: EduStreamUI) => EduStreamTool[]; /** * 本地音频图标 * @returns */ get localMicIconType(): "microphone-on" | "microphone-off"; /** * 本地视频占位符 * @returns */ cameraPlaceholder: (stream: EduStreamUI) => CameraPlaceholderType; /** * 视频窗工具栏定位 * @returns */ get toolbarPlacement(): 'left' | 'bottom'; /** * 视频窗工具栏定位 * @returns */ get toolbarOffset(): number[]; /** * 大窗视频窗工具栏定位 * @returns */ get fullScreenToolbarPlacement(): 'left' | 'bottom'; /** * 大窗视频窗工具栏定位 * @returns */ get fullScreenToolbarOffset(): number[]; /** * 移除奖励动画 * @param id */ removeAward(id: string): void; /** * 切换本地摄像头设备开关状态 */ toggleLocalVideo(): void; /** * 切换本地麦克风设备开关状态 */ toggleLocalAudio(): void; /** * 渲染本地 Stream 视频到 DOM * @param stream * @param dom * @param mirror * @returns */ setupLocalVideo(dom: HTMLElement, mirror?: boolean, renderMode?: AGRenderMode): void; /** * 渲染远端 Stream 视频到 DOM * @param stream * @param dom * @param mirror * @param renderMode * @returns */ setupRemoteVideo(stream: EduStream, dom: HTMLElement, mirror: boolean, renderMode?: AGRenderMode): void; /** * 渲染本地屏幕共享到 DOM * @param dom */ setupLocalScreenShare(dom: HTMLElement): void; /** * 停止屏幕视频采集 * @returns */ stopScreenShareCapture(): void; setStreamBoundsByStreamUuid(streamUuid: string, bounds: StreamBounds): void; removeStreamBoundsByStreamUuid(streamUuid: string): void; setSettingsOpened(opened: boolean): void; onDestroy(): void; }