mediasfu-reactjs
Version:
MediaSFU Prebuilt ReactJS SDK
92 lines • 4.13 kB
TypeScript
import React from "react";
import { SelfieSegmentation } from "@mediapipe/selfie_segmentation";
import { ConnectSendTransportVideoType, CreateSendTransportType, CreateSendTransportParameters, OnScreenChangesType, DisconnectSendTransportVideoType, OnScreenChangesParameters, ShowAlert, SleepType, VidCons, ConnectSendTransportVideoParameters, DisconnectSendTransportVideoParameters } from "../../@types/types";
import { Producer, ProducerOptions } from "mediasoup-client/lib/types";
export interface BackgroundModalParameters extends CreateSendTransportParameters, ConnectSendTransportVideoParameters, DisconnectSendTransportVideoParameters, OnScreenChangesParameters {
customImage: string;
selectedImage: string;
segmentVideo: MediaStream | null;
selfieSegmentation: SelfieSegmentation | null;
pauseSegmentation: boolean;
processedStream: MediaStream | null;
keepBackground: boolean;
backgroundHasChanged: boolean;
virtualStream: MediaStream | null;
mainCanvas: HTMLCanvasElement | null;
prevKeepBackground: boolean;
appliedBackground: boolean;
videoAlreadyOn: boolean;
audioOnlyRoom: boolean;
islevel: string;
recordStarted: boolean;
recordResumed: boolean;
recordPaused: boolean;
recordStopped: boolean;
recordingMediaOptions: string;
mediaDevices: MediaDevices;
showAlert?: ShowAlert;
localStreamVideo: MediaStream | null;
vidCons: VidCons;
frameRate: number;
targetResolution: string;
updateCustomImage: (image: string) => void;
updateSelectedImage: (image: string) => void;
updateSegmentVideo: (stream: MediaStream | null) => void;
updateSelfieSegmentation: (segmentation: SelfieSegmentation | null) => void;
updatePauseSegmentation: (pause: boolean) => void;
updateProcessedStream: (stream: MediaStream | null) => void;
updateKeepBackground: (keep: boolean) => void;
updateBackgroundHasChanged: (changed: boolean) => void;
updateVirtualStream: (stream: MediaStream | null) => void;
updatePrevKeepBackground: (prev: boolean) => void;
updateAppliedBackground: (applied: boolean) => void;
videoProducer: Producer | null;
transportCreated: boolean;
videoParams: ProducerOptions;
updateVideoParams: (params: ProducerOptions) => void;
autoClickBackground: boolean;
updateAutoClickBackground: (autoClick: boolean) => void;
createSendTransport: CreateSendTransportType;
connectSendTransportVideo: ConnectSendTransportVideoType;
disconnectSendTransportVideo: DisconnectSendTransportVideoType;
onScreenChanges: OnScreenChangesType;
sleep: SleepType;
getUpdatedAllParams: () => BackgroundModalParameters;
[key: string]: any;
}
export interface BackgroundModalOptions {
isVisible: boolean;
onClose: () => void;
parameters: BackgroundModalParameters;
position?: string;
backgroundColor?: string;
}
export type BackgroundModalType = (props: BackgroundModalOptions) => React.JSX.Element;
/**
* BackgroundModal component provides a modal interface for managing background settings.
* It allows users to select, upload, and apply background images or videos.
*
* @component
* @param {BackgroundModalOptions} props - The properties for the BackgroundModal component.
* @param {boolean} props.isVisible - Determines if the modal is visible.
* @param {() => void} props.onClose - Function to close the modal.
* @param {object} props.parameters - Various parameters and state management functions.
* @param {string} [props.position="topLeft"] - Position of the modal on the screen.
* @param {string} [props.backgroundColor="#f5f5f5"] - Background color of the modal.
*
* @returns {React.JSX.Element | null} The rendered BackgroundModal component or null if not visible.
*
* @example
* ```tsx
* <BackgroundModal
* isVisible={true}
* onClose={handleClose}
* parameters={parameters}
* position="topRight"
* backgroundColor="#ffffff"
* />
* ```
*/
declare const BackgroundModal: React.FC<BackgroundModalOptions>;
export default BackgroundModal;
//# sourceMappingURL=BackgroundModal.d.ts.map