@klever-one/web-sdk
Version:
Web SDK for integrating real-time room management and streaming functionality into web applications
45 lines (44 loc) • 1.76 kB
TypeScript
import { PixelStreaming } from '@epicgames-ps/lib-pixelstreamingfrontend-ue5.4';
import { AvatarData } from '../types/streaming.types';
/**
* Streaming UI 상호작용을 담당하는 서비스
* 책임: 화면 크기 조정, 풀스크린, 아바타 설정, UI 상호작용
*/
export declare class StreamingUIService {
private static instance;
private stream;
private resizeHandler;
private currentCamera;
private containerElement;
private constructor();
static getInstance(): StreamingUIService;
setupResizeHandler(): void;
setStream(stream: PixelStreaming | null): void;
setContainer(element: HTMLElement | null): void;
getContainer(): HTMLElement | null;
getResizeHandler(): (() => void) | null;
resetResizeHandler(): void;
resize(width: number, height: number, type?: string | null): void;
private handleMouseDown;
private handleMouseUp;
private emitUnrealCoordinates;
/**
* 중앙화된 데이터 채널 전송 메서드
* 모든 emitUIInteraction 호출을 이 메서드를 통해 래핑
*/
private emitToDataChannel;
enteredFullpage(): void;
exitedFullpage(containerRef: React.RefObject<HTMLDivElement | null>): void;
private setCameraConfig;
sendAvatarNum(avatarNum: number | string): void;
sendAvatarAppearanceChange(avatarData: AvatarData): void;
private sendAvatarAppearanceChangeInternal;
generateDigitalHuman(taskId: string, gender: string): void;
sendFailedGenerateAvatarHead(): void;
sendPlaceBackgroundChange(id: string): void;
sendPageSetting(type: string, value: string): void;
sendVoiceSetting(voiceId: string): void;
emitUIInteraction(data: any): void;
reset(): void;
cleanup(): void;
}