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

41 lines 2.12 kB
import { switchUserAudio as sharedSwitchUserAudio } from 'mediasfu-shared'; /** * Switches the user's audio input device based on the provided audio preference. * * @param {SwitchUserAudioOptions} options - The options for switching the user's audio input device. * @param {string} options.audioPreference - The preferred audio input device ID. * @param {Object} options.parameters - Additional parameters required for switching the audio input device. * @param {MediaDevices} options.parameters.mediaDevices - The media devices interface for accessing user media. * @param {string} options.parameters.prevAudioInputDevice - The previous audio input device ID. * @param {Function} options.parameters.showAlert - Function to show alert messages. * @param {boolean} options.parameters.hasAudioPermission - Flag indicating if the user has granted audio permission. * @param {Function} options.parameters.updateUserDefaultAudioInputDevice - Function to update the user's default audio input device. * @param {Function} options.parameters.streamSuccessAudioSwitch - Function to handle successful audio stream switch. * @param {Function} options.parameters.requestPermissionAudio - Function to request audio permission from the user. * @param {Function} options.parameters.checkMediaPermission - Function to check if media permission is granted. * * @returns {Promise<void>} A promise that resolves when the audio input device has been successfully switched. * * @throws Will throw an error if the audio input device cannot be accessed or if there is an unexpected error. * * @example * ```typescript * await switchUserAudio({ * audioPreference: 'audio-device-id', * parameters: { * mediaDevices, * prevAudioInputDevice: 'prev-audio-device-id', * showAlert, * hasAudioPermission, * updateUserDefaultAudioInputDevice, * streamSuccessAudioSwitch, * requestPermissionAudio, * checkMediaPermission, * }, * }); * ``` */ export const switchUserAudio = async (options) => { await sharedSwitchUserAudio(options); }; //# sourceMappingURL=switchUserAudio.js.map