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
JavaScript
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