mediasfu-angular
Version:
mediasfu-angular - Angular 17/18/19 WebRTC SDK for video conferencing, webinars, broadcasts, live streaming, chat, recording, whiteboard, and AI agents. Prebuilt rooms and fully custom UIs.
72 lines (71 loc) • 3.44 kB
TypeScript
import * as i0 from "@angular/core";
export interface RecordStartTimerParameters {
recordStartTime: number;
recordTimerInterval?: NodeJS.Timeout | null;
isTimerRunning: boolean;
canPauseResume: boolean;
recordChangeSeconds: number;
recordPaused: boolean;
recordStopped: boolean;
roomName: string | null;
updateRecordStartTime: (time: number) => void;
updateRecordTimerInterval: (interval: NodeJS.Timeout | null) => void;
updateIsTimerRunning: (isRunning: boolean) => void;
updateCanPauseResume: (canPause: boolean) => void;
getUpdatedAllParams: () => RecordStartTimerParameters;
[key: string]: any;
}
export interface RecordStartTimerOptions {
parameters: RecordStartTimerParameters;
}
export type RecordStartTimerType = (options: RecordStartTimerOptions) => Promise<void>;
/**
* Starts the recording timer and manages its state.
*
* @param {RecordStartTimerOptions} options - The options for starting the recording timer.
* @param {Object} options.parameters - The parameters for the recording timer.
* @param {Function} options.parameters.getUpdatedAllParams - Function to get updated parameters.
* @param {number} options.parameters.recordStartTime - The start time of the recording.
* @param {NodeJS.Timeout | null} options.parameters.recordTimerInterval - The interval ID for the recording timer.
* @param {boolean} options.parameters.isTimerRunning - Flag indicating if the timer is currently running.
* @param {boolean} options.parameters.canPauseResume - Flag indicating if pause/resume actions are enabled.
* @param {number} options.parameters.recordChangeSeconds - The time after which pause/resume actions are enabled.
* @param {Function} options.parameters.updateRecordStartTime - Function to update the recording start time.
* @param {Function} options.parameters.updateRecordTimerInterval - Function to update the recording timer interval.
* @param {Function} options.parameters.updateIsTimerRunning - Function to update the timer running state.
* @param {Function} options.parameters.updateCanPauseResume - Function to update the pause/resume state.
*
* @returns {Promise<void>} A promise that resolves when the timer is started.
*
* @remarks
* This function initializes the recording start time and sets up an interval to update the timer every second.
* It also manages the state of the timer, including enabling and disabling pause/resume actions.
* The timer is stopped if the recording is paused, stopped, or if the room name is invalid.
*
* @example
* ```typescript
* const options: RecordStartTimerOptions = {
* parameters: {
* recordStartTime: Date.now(),
* recordTimerInterval: null,
* isTimerRunning: false,
* canPauseResume: false,
* recordChangeSeconds: 15,
* recordPaused: false,
* recordStopped: false,
* roomName: 'room1',
* updateRecordStartTime: (time) => { },
* updateRecordTimerInterval: (interval) => { },
* updateIsTimerRunning: (isRunning) => { },
* updateCanPauseResume: (canPause) => {},
* getUpdatedAllParams: () => { },
* },
* };
* await recordStartTimer(options);
* ```
*/
export declare class RecordStartTimer {
recordStartTimer: ({ parameters }: RecordStartTimerOptions) => Promise<void>;
static ɵfac: i0.ɵɵFactoryDeclaration<RecordStartTimer, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<RecordStartTimer>;
}