agora-edu-core-lb
Version:
For publishing npm package agora-edu-core (Web & Electron). Get more information from https://docs.agora.io
244 lines (243 loc) • 9.04 kB
TypeScript
import { ReactElement } from 'react';
import { ScreenShareType, LocalUserRenderer, EduUser, EduStream, EduClassroomManager, MediaService, AgoraWebRtcWrapper, PrepareScreenShareParams } from 'agora-rte-sdk';
import { EduScenarioAppStore } from '.';
import { EduBoardService } from '../services/edu-board-service';
import { EduRecordService } from '../services/edu-record-service';
import { RoomApi } from '../services/room-api';
import { Mutex } from '../utilities/mutex';
import { ControlTool, EduMediaStream } from '../context/type';
import { DeviceStateEnum } from '../types';
export declare type SceneVideoConfiguration = {
width: number;
height: number;
frameRate: number;
};
export declare enum EduClassroomStateEnum {
beforeStart = 0,
start = 1,
end = 2,
close = 3
}
export declare enum ClassStateEnum {
started = 1
}
export declare enum UnmuteMediaEnum {
audio = 0,
video = 1
}
export declare enum CustomPeerApply {
unmuteAction = 10
}
export declare const networkQualities: {
[key: string]: string;
};
export type { EduMediaStream };
export declare class SimpleInterval {
_intervalMap: Record<string, any>;
addInterval(key: string, callback: CallableFunction, delay: number): void;
delInterval(key: string): void;
}
export declare class SceneStore extends SimpleInterval {
resolution: string;
_microphoneTrack?: any;
_cameraRenderer?: LocalUserRenderer;
_screenVideoRenderer?: LocalUserRenderer;
get videoEncoderConfiguration(): SceneVideoConfiguration;
get totalVolume(): number;
currentWindowId: string;
customScreenSharePickerVisible: boolean;
customScreenSharePickerType: ScreenShareType;
customScreenSharePickerItems: any[];
settingVisible: boolean;
autoplay: boolean;
recordState: boolean;
startTime: number;
sharing: boolean;
get localStreamUuid(): any;
_hasCamera?: boolean;
_hasMicrophone?: boolean;
readonly mutex: Mutex;
cameraLock: boolean;
microphoneLock: boolean;
waitingShare: boolean;
userList: EduUser[];
get teacher(): EduUser | undefined;
private _streamList;
get screenShareStreamList(): EduStream[];
get streamList(): EduStream[];
updateStreamList(streamList: EduStream[]): void;
unreadMessageCount: number;
joined: boolean;
classState: number;
_delay: number;
time: number;
_cameraEduStream?: EduStream;
_screenEduStream?: EduStream;
roomApi: RoomApi;
joiningRTC: boolean;
recordId: string;
recording: boolean;
_canChatting: boolean;
get canChatting(): boolean;
_roomManager?: EduClassroomManager;
appStore: EduScenarioAppStore;
screenShareType: ScreenShareType;
reset(): void;
constructor(appStore: EduScenarioAppStore);
get isHost(): boolean;
get remoteUsersRenderer(): any[];
get screenVideoRenderer(): LocalUserRenderer | undefined;
get cameraRenderer(): LocalUserRenderer | undefined;
get cameraId(): string;
get microphoneId(): string;
get boardService(): EduBoardService;
get recordService(): EduRecordService;
get canChat(): boolean;
showSetting(): void;
hideSetting(): void;
resetCameraTrack(): void;
resetMicrophoneTrack(): void;
resetScreenTrack(): void;
resetScreenStream(): void;
sendUnmuteApply(source: 'video' | 'audio', userUuid: string): Promise<void>;
showScreenShareWindowWithItems(type?: ScreenShareType): void;
get roomUuid(): string;
startNativeScreenShareBy(shareId: any, type?: ScreenShareType): Promise<void>;
removeScreenShareWindow(): void;
get mediaService(): MediaService;
get web(): AgoraWebRtcWrapper;
get isWeb(): boolean;
get isElectron(): boolean;
lockCamera(): void;
unLockCamera(): void;
openingTeacherCamera: boolean;
closingTeacherCamera: boolean;
openingStudentCamera: boolean;
closingStudentCamera: boolean;
loadingTeacherMicrophone: boolean;
loadingStudentMicrophone: boolean;
setOpeningCamera(value: boolean, userUuid: string): void;
setClosingCamera(value: boolean, userUuid: string): void;
setLoadingMicrophone(value: boolean, userUuid: string): void;
get openingCamera(): boolean;
get closingCamera(): boolean;
get loadingMicrophone(): boolean;
enableLocalAudio(): Promise<void>;
enableLocalVideo(): Promise<void>;
disableLocalVideo(): Promise<void>;
sendMuteLocalCamera(): Promise<void>;
sendUnmuteLocalCamera(): Promise<void>;
disableLocalAudio(): Promise<void>;
sendMuteLocalMicrophone(): Promise<void>;
sendUnmuteLocalMicrophone(): Promise<void>;
muteLocalCamera(sync?: boolean): Promise<void>;
unmuteLocalCamera(sync?: boolean): Promise<void>;
muteLocalMicrophone(sync?: boolean): Promise<void>;
unmuteLocalMicrophone(sync?: boolean): Promise<void>;
lockMicrophone(): void;
unLockMicrophone(): void;
stopWebSharing(): Promise<void>;
startWebSharing(): Promise<void>;
screenComponent: ReactElement | null;
attachScreenComponent(component: ReactElement): void;
stopRTCSharing(): Promise<void>;
startOrStopSharing(type?: ScreenShareType): Promise<void>;
prepareScreenShare(params?: PrepareScreenShareParams): Promise<void>;
stopNativeSharing(): Promise<void>;
resetWebPrepareScreen(): Promise<void>;
get roomInfo(): import("..").RoomInfo;
get delay(): string;
get roomManager(): EduClassroomManager;
get screenEduStream(): EduStream;
get cameraEduStream(): EduStream;
isBigClassStudent(): boolean;
get eduManager(): import("agora-rte-sdk").EduManager;
getStudentConfig(): {
sceneType: number;
userRole: string;
};
get teacherUuid(): string;
get localUser(): any;
get muteControl(): boolean;
get userUuid(): string;
get isRecording(): boolean;
prepareRTC(): void;
joinRTC(args: any): Promise<void>;
leaveRtc(): Promise<void>;
prepareCamera(): Promise<void>;
prepareMicrophone(): Promise<void>;
get defaultTeacherPlaceholder(): {
holderState: string;
text: string;
};
get defaultStudentPlaceholder(): {
holderState: string;
text: string;
};
get localCameraDeviceState(): DeviceStateEnum;
get localMicrophoneDeviceState(): DeviceStateEnum;
queryCameraDeviceState(userList: EduUser[], userUuid: string, streamUuid: string): any;
queryMicDeviceState(userList: EduUser[], userUuid: string, streamUuid: string): any;
queryRemoteCameraDeviceState(userList: EduUser[], userUuid: string, streamUuid: string): any;
queryRemoteMicrophoneDeviceState(userList: EduUser[], userUuid: string, streamUuid: string): any;
getLocalPlaceHolderProps(): {
holderState: string;
text: string;
};
getRemotePlaceHolderProps(userUuid: string, userRole: string): {
holderState: string;
text: string;
};
getFixAudioVolume(streamUuid: number): number;
queryLocalCameraDevice(userUuid: string): any;
queryLocalMicDevice(userUuid: string): any;
get cameraDevice(): any;
get micDevice(): any;
queryCamIssue(userUuid: string): boolean;
queryCamDisabled(userUuid: string): boolean;
queryVideoFrameIsNotFrozen(uid: number): boolean;
queryAudioIsNotFrozen(uid: number): boolean;
queryUserIsOnline(userUuid: string): boolean;
queryUserIsOnPodium(streamUuid: string): boolean;
get teacherStreamInfo(): any;
get teacherStream(): any;
get sceneVideoConfig(): {
hideOffPodium: boolean;
hideOffAllPodium: boolean;
isHost: boolean;
hideBoardGranted: boolean;
};
get controlTools(): ControlTool[];
get sceneType(): number;
private getUserBy;
private getStreamBy;
private getRemoteVideoStatsBy;
get screenShareStream(): EduMediaStream;
isLocalStream(stream: EduStream): boolean;
fixNativeVolume(volume: number): number;
fixWebVolume(volume: number): number;
get localVolume(): number;
get studentStreams(): EduMediaStream[];
startClass(): Promise<void>;
stopClass(): Promise<void>;
get mutedChat(): boolean;
muteChat(): Promise<void>;
unmuteChat(): Promise<void>;
/**
* @note only teacher or myself return true
* @param userUuid string
*/
hideControl(userUuid: string): boolean;
closeStream(userUuid: string, isLocal: boolean): Promise<void>;
muteAudio(userUuid: string, isLocal: boolean): Promise<void>;
unmuteAudio(userUuid: string, isLocal: boolean): Promise<void>;
muteVideo(userUuid: string, isLocal: boolean): Promise<void>;
unmuteVideo(userUuid: string, isLocal: boolean): Promise<void>;
muteUserChat(userUuid: string): Promise<void>;
unmuteUserChat(userUuid: string): Promise<void>;
startOrStopRecording(): Promise<void>;
startRecording(): Promise<void>;
stopRecording(): Promise<void>;
revokeCoVideo(userUuid: string): Promise<void>;
revokeAllCoVideo(): Promise<void>;
}