mediasfu-reactnative-expo
Version:
MediaSFU Prebuilt React Native (Expo) SDK
84 lines (83 loc) • 3.48 kB
TypeScript
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>;