mediasfu-angular
Version:
MediaSFU Prebuilt Angular SDK
162 lines (161 loc) • 11.8 kB
TypeScript
import { Socket } from 'socket.io-client';
import { Participant, PrepopulateUserMediaParameters, ShowAlert, CreateSendTransportParameters, ConnectSendTransportAudioParameters, ResumeSendTransportAudioParameters, PrepopulateUserMediaType, CreateSendTransportType, ConnectSendTransportAudioType, ResumeSendTransportAudioType } from '../@types/types';
import { ProducerOptions } from 'mediasoup-client/lib/types';
import * as i0 from "@angular/core";
export interface StreamSuccessAudioParameters extends CreateSendTransportParameters, ConnectSendTransportAudioParameters, ResumeSendTransportAudioParameters, PrepopulateUserMediaParameters {
socket: Socket;
participants: Participant[];
localStream: MediaStream | null;
transportCreated: boolean;
transportCreatedAudio: boolean;
audioAlreadyOn: boolean;
micAction: boolean;
audioParams: ProducerOptions;
localStreamAudio: MediaStream | null;
defAudioID: string;
userDefaultAudioInputDevice: string;
params: ProducerOptions;
audioParamse?: ProducerOptions;
aParams: ProducerOptions;
hostLabel: string;
islevel: string;
member: string;
updateMainWindow: boolean;
lock_screen: boolean;
shared: boolean;
videoAlreadyOn: boolean;
showAlert?: ShowAlert;
updateParticipants: (participants: Participant[]) => void;
updateTransportCreated: (transportCreated: boolean) => void;
updateTransportCreatedAudio: (transportCreatedAudio: boolean) => void;
updateAudioAlreadyOn: (audioAlreadyOn: boolean) => void;
updateMicAction: (micAction: boolean) => void;
updateAudioParams: (audioParams: ProducerOptions) => void;
updateLocalStream: (localStream: MediaStream | null) => void;
updateLocalStreamAudio: (localStreamAudio: MediaStream | null) => void;
updateDefAudioID: (defAudioID: string) => void;
updateUserDefaultAudioInputDevice: (userDefaultAudioInputDevice: string) => void;
updateUpdateMainWindow: (updateMainWindow: boolean) => void;
createSendTransport: CreateSendTransportType;
connectSendTransportAudio: ConnectSendTransportAudioType;
resumeSendTransportAudio: ResumeSendTransportAudioType;
prepopulateUserMedia: PrepopulateUserMediaType;
getUpdatedAllParams: () => StreamSuccessAudioParameters;
[key: string]: any;
}
export interface StreamSuccessAudioOptions {
stream: MediaStream;
parameters: StreamSuccessAudioParameters;
}
export type StreamSuccessAudioType = (options: StreamSuccessAudioOptions) => Promise<void>;
/**
* Handles the successful streaming of audio by setting up the necessary transports and updating the relevant states.
*
* This method updates the local media stream with the new audio track, manages the transport connection,
* and updates the participants' states to reflect changes in audio settings.
*
* @param {StreamSuccessAudioOptions} options - The options for streaming success audio.
* @param {MediaStream} options.stream - The media stream containing the audio track.
* @param {StreamSuccessAudioParameters} options.parameters - The parameters required for setting up the audio stream.
* @param {Socket} options.parameters.socket - The socket connection for real-time communication.
* @param {Participant[]} options.parameters.participants - The list of participants in the session.
* @param {MediaStream | null} options.parameters.localStream - The local media stream that includes video and audio tracks.
* @param {boolean} options.parameters.transportCreated - Indicates if the audio transport has been created.
* @param {boolean} options.parameters.transportCreatedAudio - Indicates if the audio transport has been created.
* @param {boolean} options.parameters.audioAlreadyOn - Indicates if the audio is already active.
* @param {boolean} options.parameters.micAction - Indicates the microphone action state.
* @param {ProducerOptions} options.parameters.audioParams - The current audio parameters for the producer.
* @param {MediaStream | null} options.parameters.localStreamAudio - The local audio stream.
* @param {string} options.parameters.defAudioID - The default audio device ID for the stream.
* @param {string} options.parameters.userDefaultAudioInputDevice - The user default audio input device.
* @param {ProducerOptions} options.parameters.params - Additional parameters for the producer.
* @param {ProducerOptions} [options.parameters.audioParamse] - Additional audio parameters.
* @param {ProducerOptions} options.parameters.aParams - Producer parameters for the audio.
* @param {string} options.parameters.hostLabel - The label of the host for this session.
* @param {string} options.parameters.islevel - The participant's level (e.g., admin, regular user).
* @param {string} options.parameters.member - The member name for identification.
* @param {boolean} options.parameters.updateMainWindow - Indicates if the main window needs to be updated.
* @param {boolean} options.parameters.lock_screen - Indicates if the screen is locked for participants.
* @param {boolean} options.parameters.shared - Indicates if the screen is currently shared.
* @param {boolean} options.parameters.videoAlreadyOn - Indicates if the video stream is currently active.
* @param {ShowAlert} [options.parameters.showAlert] - Optional function to show alert messages.
* @param {Function} options.parameters.updateParticipants - Function to update the list of participants.
* @param {Function} options.parameters.updateTransportCreated - Function to update the audio transport created status.
* @param {Function} options.parameters.updateTransportCreatedAudio - Function to update the audio transport created status.
* @param {Function} options.parameters.updateAudioAlreadyOn - Function to update the audio active status.
* @param {Function} options.parameters.updateMicAction - Function to update the microphone action state.
* @param {Function} options.parameters.updateAudioParams - Function to update the audio parameters.
* @param {Function} options.parameters.updateLocalStream - Function to update the local stream.
* @param {Function} options.parameters.updateLocalStreamAudio - Function to update the local audio stream.
* @param {Function} options.parameters.updateDefAudioID - Function to update the default audio device ID.
* @param {Function} options.parameters.updateUserDefaultAudioInputDevice - Function to update the default audio input device.
* @param {Function} options.parameters.updateUpdateMainWindow - Function to update the main window status.
* @param {Function} options.parameters.createSendTransport - Function to create a send transport for audio.
* @param {Function} options.parameters.connectSendTransportAudio - Function to connect the send transport for audio.
* @param {Function} options.parameters.resumeSendTransportAudio - Function to resume the send transport for audio.
* @param {Function} options.parameters.prepopulateUserMedia - Function to prepopulate user media based on current settings.
*
* @returns {Promise<void>} A promise that resolves when the audio streaming setup is complete.
*
* @throws {Error} Throws an error if there is an issue during the audio stream setup.
*
* @example
* await streamSuccessAudio({
* stream: newAudioStream,
* parameters: {
* socket: socketInstance,
* participants: participantList,
* // other parameters...
* },
* });
*/
export declare class StreamSuccessAudio {
/**
* Handles the successful streaming of audio by setting up the necessary transports and updating the relevant states.
*
* @param {Object} options - The options for streaming success audio.
* @param {MediaStream} options.stream - The media stream containing the audio track.
* @param {Object} options.parameters - The parameters required for setting up the audio stream.
* @param {Object} options.parameters.socket - The socket connection.
* @param {Array} options.parameters.participants - The list of participants.
* @param {MediaStream} options.parameters.localStream - The local media stream.
* @param {boolean} options.parameters.transportCreated - Flag indicating if the transport is created.
* @param {boolean} options.parameters.transportCreatedAudio - Flag indicating if the audio transport is created.
* @param {boolean} options.parameters.audioAlreadyOn - Flag indicating if the audio is already on.
* @param {boolean} options.parameters.micAction - Flag indicating the microphone action.
* @param {Object} options.parameters.audioParams - The audio parameters.
* @param {MediaStream} options.parameters.localStreamAudio - The local audio stream.
* @param {string} options.parameters.defAudioID - The default audio device ID.
* @param {string} options.parameters.userDefaultAudioInputDevice - The user default audio input device.
* @param {Object} options.parameters.params - Additional parameters.
* @param {Object} options.parameters.audioParamse - Additional audio parameters.
* @param {Object} options.parameters.aParams - Additional parameters for audio.
* @param {string} options.parameters.hostLabel - The label of the host.
* @param {string} options.parameters.islevel - The level of the user.
* @param {string} options.parameters.member - The member name.
* @param {boolean} options.parameters.updateMainWindow - Flag indicating if the main window should be updated.
* @param {boolean} options.parameters.lock_screen - Flag indicating if the screen is locked.
* @param {boolean} options.parameters.shared - Flag indicating if the screen is shared.
* @param {boolean} options.parameters.videoAlreadyOn - Flag indicating if the video is already on.
* @param {Function} options.parameters.showAlert - Function to show alert messages.
* @param {Function} options.parameters.updateParticipants - Function to update participants.
* @param {Function} options.parameters.updateTransportCreated - Function to update transport created flag.
* @param {Function} options.parameters.updateTransportCreatedAudio - Function to update audio transport created flag.
* @param {Function} options.parameters.updateAudioAlreadyOn - Function to update audio already on flag.
* @param {Function} options.parameters.updateMicAction - Function to update microphone action flag.
* @param {Function} options.parameters.updateAudioParams - Function to update audio parameters.
* @param {Function} options.parameters.updateLocalStream - Function to update local stream.
* @param {Function} options.parameters.updateLocalStreamAudio - Function to update local audio stream.
* @param {Function} options.parameters.updateDefAudioID - Function to update default audio device ID.
* @param {Function} options.parameters.updateUserDefaultAudioInputDevice - Function to update user default audio input device.
* @param {Function} options.parameters.updateUpdateMainWindow - Function to update main window flag.
* @param {Function} options.parameters.createSendTransport - Function to create send transport.
* @param {Function} options.parameters.connectSendTransportAudio - Function to connect send transport audio.
* @param {Function} options.parameters.resumeSendTransportAudio - Function to resume send transport audio.
* @param {Function} options.parameters.prepopulateUserMedia - Function to prepopulate user media.
* @returns {Promise<void>} A promise that resolves when the audio streaming setup is complete.
*/
streamSuccessAudio({ stream, parameters }: StreamSuccessAudioOptions): Promise<void>;
static ɵfac: i0.ɵɵFactoryDeclaration<StreamSuccessAudio, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<StreamSuccessAudio>;
}