UNPKG

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

91 lines 6.47 kB
import { SoundPlayer } from '../../methods/utils/SoundPlayer'; import { recordingNotice as sharedRecordingNotice } from 'mediasfu-shared'; /** * Handles the recording notice state and updates various recording parameters accordingly. * * @param {RecordingNoticeOptions} options - The options object. * @param {string} options.state - The current state of the recording (e.g., "pause", "stop"). * @param {UserRecordingParams | null} options.userRecordingParam - The user recording parameters. * @param {number} options.pauseCount - The count of pauses during the recording. * @param {number} options.timeDone - The elapsed time of the recording. * @param {Object} options.parameters - The parameters object containing various update functions and state variables. * @param {string} options.parameters.islevel - The level of the recording. * @param {Object} options.parameters.userRecordingParams - The user recording parameters. * @param {number} options.parameters.pauseRecordCount - The count of pauses during the recording. * @param {number} options.parameters.recordElapsedTime - The elapsed time of the recording. * @param {number} options.parameters.recordStartTime - The start time of the recording. * @param {boolean} options.parameters.recordStarted - Indicates if the recording has started. * @param {boolean} options.parameters.recordPaused - Indicates if the recording is paused. * @param {boolean} options.parameters.canLaunchRecord - Indicates if the recording can be launched. * @param {boolean} options.parameters.stopLaunchRecord - Indicates if the recording launch should be stopped. * @param {boolean} options.parameters.recordStopped - Indicates if the recording is stopped. * @param {boolean} options.parameters.isTimerRunning - Indicates if the timer is running. * @param {boolean} options.parameters.canPauseResume - Indicates if the recording can be paused or resumed. * @param {string} options.parameters.eventType - The type of event triggering the recording notice. * @param {Function} options.parameters.updateRecordingProgressTime - Function to update the recording progress time. * @param {Function} options.parameters.updateShowRecordButtons - Function to update the visibility of record buttons. * @param {Function} options.parameters.updateUserRecordingParams - Function to update user recording parameters. * @param {Function} options.parameters.updateRecordingMediaOptions - Function to update recording media options. * @param {Function} options.parameters.updateRecordingAudioOptions - Function to update recording audio options. * @param {Function} options.parameters.updateRecordingVideoOptions - Function to update recording video options. * @param {Function} options.parameters.updateRecordingVideoType - Function to update recording video type. * @param {Function} options.parameters.updateRecordingVideoOptimized - Function to update recording video optimization. * @param {Function} options.parameters.updateRecordingDisplayType - Function to update recording display type. * @param {Function} options.parameters.updateRecordingAddHLS - Function to update HLS addition in recording. * @param {Function} options.parameters.updateRecordingNameTags - Function to update recording name tags. * @param {Function} options.parameters.updateRecordingBackgroundColor - Function to update recording background color. * @param {Function} options.parameters.updateRecordingNameTagsColor - Function to update recording name tags color. * @param {Function} options.parameters.updateRecordingOrientationVideo - Function to update recording orientation video. * @param {Function} options.parameters.updateRecordingAddText - Function to update recording text addition. * @param {Function} options.parameters.updateRecordingCustomText - Function to update custom text in recording. * @param {Function} options.parameters.updateRecordingCustomTextPosition - Function to update custom text position. * @param {Function} options.parameters.updateRecordingCustomTextColor - Function to update custom text color. * @param {Function} options.parameters.updatePauseRecordCount - Function to update pause record count. * @param {Function} options.parameters.updateRecordElapsedTime - Function to update record elapsed time. * @param {Function} options.parameters.updateRecordStartTime - Function to update record start time. * @param {Function} options.parameters.updateRecordStarted - Function to update record started status. * @param {Function} options.parameters.updateRecordPaused - Function to update record paused status. * @param {Function} options.parameters.updateCanLaunchRecord - Function to update can launch record status. * @param {Function} options.parameters.updateStopLaunchRecord - Function to update stop launch record status. * @param {Function} options.parameters.updateRecordStopped - Function to update record stopped status. * @param {Function} options.parameters.updateIsTimerRunning - Function to update timer running status. * @param {Function} options.parameters.updateCanPauseResume - Function to update can pause/resume status. * @param {Function} options.parameters.updateRecordState - Function to update the record state. * * @returns {Promise<void>} A promise that resolves when the recording notice handling is complete. * * @example * ```typescript * const options = { * state: "pause", * userRecordingParam: { * mainSpecs: { mediaOptions: "option1", audioOptions: "option2", videoOptions: "option3", videoType: "HD" }, * dispSpecs: { nameTags: true, backgroundColor: "blue", orientationVideo: "landscape" }, * textSpecs: { addText: true, customText: "Sample", customTextPosition: "top-right", customTextColor: "white" }, * }, * pauseCount: 2, * timeDone: 3600, * parameters: { * islevel: "2", * userRecordingParams: { }, * recordElapsedTime: 0, * recordStartTime: 0, * // various other parameters and update functions here... * }, * }; * await recordingNotice(options); * ``` */ export const recordingNotice = async ({ state, userRecordingParam, pauseCount, timeDone, parameters, }) => { return sharedRecordingNotice({ state, userRecordingParam, pauseCount, timeDone, parameters, soundPlayer: async ({ soundUrl }) => { await Promise.resolve(SoundPlayer({ soundUrl })); }, }); }; //# sourceMappingURL=recordingNotice.js.map