@arcware-cloud/pixelstreaming-websdk
Version:
WebSDK for easy implementation of pixel streaming with Arcware Cloud Services. Heavily based on the '@epicgames-ps' library.
98 lines (97 loc) • 3.55 kB
TypeScript
import { Messages } from "@arcware-cloud/shared-pixelstreaming-websdk";
import { PixelStreaming, PixelStreamingOverrides } from "@epicgames-ps/lib-pixelstreamingfrontend-ue5.5";
import { ArcwareConfig } from "./ArcwareConfig";
import { EventHandler } from "./domain/EventHandler";
import { Session } from "./domain/Session";
import { WebsocketState } from "./domain/ConnectionIdentifier";
export declare class ArcwarePixelStreaming extends PixelStreaming {
/** Override default config with ArcwareConfig. */
config: ArcwareConfig;
streamInfo?: Messages.StreamInfo;
loveLettersContainer: HTMLDivElement | undefined;
private loveLettersList;
private loveLettersQueue;
private isProcessingQueue;
private microphoneOverlay;
/** Returns a list of WebSocketStates of all PixelStreaming Instances generated. */
get WebsocketStates(): WebsocketState[];
/** Counts all active PixelStreaming Instances generated. (CONNECTING & CONNECTED) */
get ActiveInstances(): () => number;
/** Returns this PixelStreaming Instances websocket state. */
get websocketState(): WebsocketState;
constructor(config: ArcwareConfig, overrides?: PixelStreamingOverrides);
/** Getter for the session object. */
get session(): Session;
/**
* * * * * * *
* Listen *
* * * * * * *
*/
/** On version requested, the version of the WebSDK would be returned. */
private onVersion;
/** On ping the session creation timestamp will be updated. */
private onPing;
/** Handle incoming configurations. */
private onStreamInfo;
/** On ping the session creation timestamp will be updated. */
readonly queueHandler: EventHandler<{
type?: "queue";
queue?: {
index?: number;
queueLength?: number;
waited?: number;
estimatedWaitTime?: number;
averageWaitTime?: number;
valueType?: "milliseconds" | "seconds" | "minutes" | "hours" | "days";
};
}>;
private onQueue;
/** Error receiver. */
readonly errorHandler: EventHandler<{
type?: "error";
code?: number;
reason?: string;
verbosity?: number;
}>;
private onError;
/** LoveLetter */
readonly loveLetterHandler: EventHandler<{
type?: "letter";
reason?: string;
code?: number;
verbosity?: number;
}>;
private onLoveLetter;
/** SessionId */
readonly sessionIdHandler: EventHandler<string>;
private onSessionId;
/** VideoInitialized */
readonly videoInitializedHandler: EventHandler<never>;
private onVideoInitialized;
/** WebSocket Close */
readonly websocketOnCloseHandler: EventHandler<CloseEvent>;
/** Adding a zod-safe handler. */
private addMessageHandler;
/**
* * * * * *
* Send *
* * * * * *
*/
private sendStats;
private send;
private handleResolutionChange;
private applyResolutionIfPlaying;
removePlayer(): void;
private handleMouseLock;
initLoveLettersContainer(): void;
private pushLetter;
private processLoveLetterQueue;
private handleRemoveLoveLetters;
toggleAudio(videoElement: HTMLVideoElement, enabled: boolean): void;
private createMicrophoneOverlay;
toggleMic(enable: boolean, isDefault: boolean): void;
private wrapWebSocketOnCloseHandler;
onStreamingStateChange(callback: (isStreaming: boolean) => void): void;
private removeXRIconIfDisabled;
private injectCustomUI;
}