UNPKG

mediasfu-reactnative-expo

Version:
84 lines (83 loc) 3.48 kB
import { Participant, Stream, AudioCardParameters, EventType, MediaStream } from '../@types/types'; export interface PrepopulateUserMediaParameters extends AudioCardParameters { participants: Participant[]; allVideoStreams: (Stream | Participant)[]; islevel: string; member: string; shared: boolean; shareScreenStarted: boolean; eventType: EventType; screenId?: string; forceFullDisplay: boolean; updateMainWindow: boolean; mainScreenFilled: boolean; adminOnMainScreen: boolean; mainScreenPerson: string; videoAlreadyOn: boolean; audioAlreadyOn: boolean; oldAllStreams: (Stream | Participant)[]; checkOrientation: () => string; screenForceFullDisplay: boolean; localStreamScreen: MediaStream | null; remoteScreenStream: Stream[]; localStreamVideo: MediaStream | null; mainHeightWidth: number; isWideScreen: boolean; localUIMode: boolean; whiteboardStarted: boolean; whiteboardEnded: boolean; virtualStream: MediaStream | null; keepBackground: boolean; annotateScreenStream: boolean; updateMainScreenPerson: (person: string) => void; updateMainScreenFilled: (filled: boolean) => void; updateAdminOnMainScreen: (admin: boolean) => void; updateMainHeightWidth: (heightWidth: number) => void; updateScreenForceFullDisplay: (force: boolean) => void; updateUpdateMainWindow: (update: boolean) => void; updateMainGridStream: (components: JSX.Element[]) => void; getUpdatedAllParams: () => PrepopulateUserMediaParameters; [key: string]: any; } export interface PrepopulateUserMediaOptions { name: string; parameters: PrepopulateUserMediaParameters; } export type PrepopulateUserMediaType = (options: PrepopulateUserMediaOptions) => Promise<JSX.Element[] | void>; /** * Processes consumer transports by pausing and resuming them based on certain conditions. * * @param {Object} options - The options for processing consumer transports. * @param {Array} options.consumerTransports - The list of consumer transports to process. * @param {Array} options.lStreams_ - The list of local streams. * @param {Object} options.parameters - The parameters object containing various stream arrays and utility functions. * * @returns {Promise<void>} - A promise that resolves when the processing is complete. * * @throws {Error} - Throws an error if there is an issue processing consumer transports. * * The function performs the following steps: * 1. Destructures and updates the parameters. * 2. Defines a helper function to check if a producerId is valid in given stream arrays. * 3. Filters consumer transports to resume based on certain conditions. * 4. Filters consumer transports to pause based on certain conditions. * 5. Pauses consumer transports after a short delay. * 6. Emits `consumer-pause` event for each filtered transport (not audio). * 7. Emits `consumer-resume` event for each filtered transport (not audio). * * @example * ```typescript * await processConsumerTransports({ * consumerTransports: [transport1, transport2], * lStreams_: [stream1, stream2], * parameters: { * remoteScreenStream: [], * oldAllStreams: [], * newLimitedStreams: [], * sleep: sleepFunction, * getUpdatedAllParams: () => parameters, * }, * }); * ``` */ export declare function prepopulateUserMedia({ name, parameters, }: PrepopulateUserMediaOptions): Promise<JSX.Element[] | void>;