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
TypeScript
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;
}