mediasfu-reactnative-expo
Version:
mediasfu-reactnative-expo – Expo-managed React Native WebRTC SDK for video conferencing, webinars, live streaming, broadcast, screen sharing, whiteboard, chat, recording, live subtitles, translation, and AI agent rooms on iOS, Android, and web. Prebuilt r
76 lines (75 loc) • 3.38 kB
TypeScript
import { Participant, PrepopulateUserMediaType, ReorderStreamsType, ReUpdateInterParameters, ReUpdateInterType, ReorderStreamsParameters, PrepopulateUserMediaParameters } from '../../@types/types';
export interface ProducerMediaPausedParameters extends PrepopulateUserMediaParameters, ReorderStreamsParameters, ReUpdateInterParameters {
activeSounds: string[];
meetingDisplayType: string;
meetingVideoOptimized: boolean;
participants: Participant[];
oldSoundIds: string[];
shared: boolean;
shareScreenStarted: boolean;
updateMainWindow: boolean;
hostLabel: string;
islevel: string;
updateActiveSounds: (activeSounds: string[]) => void;
updateUpdateMainWindow: (updateMainWindow: boolean) => void;
reorderStreams: ReorderStreamsType;
prepopulateUserMedia: PrepopulateUserMediaType;
reUpdateInter: ReUpdateInterType;
getUpdatedAllParams: () => ProducerMediaPausedParameters;
[key: string]: any;
}
export interface ProducerMediaPausedOptions {
producerId: string;
kind: 'audio' | 'video' | 'screenshare' | 'screen';
name: string;
parameters: ProducerMediaPausedParameters;
}
export type ProducerMediaPausedType = (options: ProducerMediaPausedOptions) => Promise<void>;
/**
* Handles the event when media is paused for a producer.
*
* @param {ProducerMediaPausedOptions} options - The options for the producer media paused event.
* @param {string} options.producerId - The ID of the producer.
* @param {string} options.kind - The kind of media (e.g., "audio", "video").
* @param {string} options.name - The name of the producer.
* @param {ProducerMediaPausedParameters} options.parameters - The parameters for the event.
*
* @returns {Promise<void>} A promise that resolves when the media paused handling is complete.
*
* @description
* This function handles the event when media is paused for a producer. It performs the following tasks:
* - Updates the parameters.
* - Iterates through participants and updates the UI based on their muted status and other conditions.
* - Manages active sounds and screen sharing state.
* - Optimizes UI based on meeting display type and video optimization settings.
*
* @example
* ```typescript
* const options = {
* producerId: "abc123",
* kind: "audio",
* name: "Participant1",
* parameters: {
* activeSounds: [],
* meetingDisplayType: "media",
* meetingVideoOptimized: false,
* participants: [{ name: "Participant1", muted: true, islevel: "2", videoID: null }],
* oldSoundIds: ["Participant1"],
* shared: false,
* shareScreenStarted: false,
* updateMainWindow: false,
* hostLabel: "Host",
* islevel: "1",
* updateActiveSounds: (sounds) => console.log("Active sounds updated:", sounds),
* updateUpdateMainWindow: (update) => console.log("Main window update:", update),
* reorderStreams: async (params) => console.log("Reordered streams:", params),
* prepopulateUserMedia: async (params) => console.log("Prepopulated user media:", params),
* reUpdateInter: async (params) => console.log("Re-updated interface:", params),
* getUpdatedAllParams: () => ({ }),
* },
* };
*
* await producerMediaPaused(options);
* ```
*/
export declare const producerMediaPaused: ({ producerId, kind, name, parameters, }: ProducerMediaPausedOptions) => Promise<void>;