UNPKG

mediasfu-reactnative

Version:
101 lines (100 loc) 3.71 kB
import { Socket } from 'socket.io-client'; import { CheckPermissionType, DisconnectSendTransportVideoParameters, DisconnectSendTransportVideoType, RequestPermissionCameraType, ShowAlert, StreamSuccessVideoParameters, StreamSuccessVideoType, VidCons, MediaDevices, MediaStream } from '../../@types/types'; export interface ClickVideoParameters extends DisconnectSendTransportVideoParameters, StreamSuccessVideoParameters { checkMediaPermission: boolean; hasCameraPermission: boolean; videoAlreadyOn: boolean; audioOnlyRoom: boolean; recordStarted: boolean; recordResumed: boolean; recordPaused: boolean; recordStopped: boolean; recordingMediaOptions: string; islevel: string; youAreCoHost: boolean; adminRestrictSetting: boolean; videoRequestState: string | null; videoRequestTime: number; member: string; socket: Socket; roomName: string; userDefaultVideoInputDevice: string; currentFacingMode: string; vidCons: VidCons; frameRate: number; videoAction: boolean; localStream: MediaStream | null; audioSetting: string; videoSetting: string; screenshareSetting: string; chatSetting: string; updateRequestIntervalSeconds: number; showAlert?: ShowAlert; updateVideoAlreadyOn: (value: boolean) => void; updateVideoRequestState: (state: string) => void; updateLocalStream: (stream: MediaStream | null) => void; mediaDevices: MediaDevices; streamSuccessVideo: StreamSuccessVideoType; disconnectSendTransportVideo: DisconnectSendTransportVideoType; requestPermissionCamera: RequestPermissionCameraType; checkPermission: CheckPermissionType; getUpdatedAllParams: () => ClickVideoParameters; [key: string]: any; } export interface ClickVideoOptions { parameters: ClickVideoParameters; } export type ClickVideoType = (options: ClickVideoOptions) => Promise<void>; /** * Handles the click event to toggle the participant's video on/off and manages video permission requests. * * @param {ClickVideoOptions} options - The function parameters. * @returns {Promise<void>} * * @example * ```typescript * clickVideo({ * parameters: { * checkMediaPermission: true, * hasCameraPermission: false, * videoAlreadyOn: false, * audioOnlyRoom: false, * recordStarted: true, * recordResumed: false, * recordPaused: true, * recordStopped: false, * recordingMediaOptions: 'video', * islevel: '1', * youAreCoHost: false, * adminRestrictSetting: false, * videoRequestState: null, * videoRequestTime: Date.now(), * member: 'John Doe', * socket: socketInstance, * roomName: 'room123', * userDefaultVideoInputDevice: 'default', * currentFacingMode: 'user', * vidCons: { width: 1280, height: 720 }, * frameRate: 30, * videoAction: false, * localStream: null, * audioSetting: 'allow', * videoSetting: 'allow', * screenshareSetting: 'allow', * chatSetting: 'allow', * updateRequestIntervalSeconds: 60, * showAlert: showAlertFunction, * updateVideoAlreadyOn: setVideoAlreadyOn, * updateVideoRequestState: setVideoRequestState, * updateLocalStream: setLocalStream, * mediaDevices: navigator.mediaDevices, * streamSuccessVideo: streamSuccessVideoFunction, * disconnectSendTransportVideo: disconnectVideoTransportFunction, * requestPermissionCamera: requestCameraPermissionFunction, * checkPermission: checkPermissionFunction, * getUpdatedAllParams: getUpdatedParamsFunction * } * }); * ``` */ export declare const clickVideo: ({ parameters }: ClickVideoOptions) => Promise<void>;