in chime-sdk-components/react-meeting-demo/src/providers/DevicesProvider/AudioInputProvider.tsx [63:91]
audioInputsChanged: async (newAudioInputs: MediaDeviceInfo[]) => {
console.log('AudioInputProvider - audio inputs updated');
const hasSelectedDevice = newAudioInputs.some(
(device) => device.deviceId === selectedInputRef.current
);
if (
selectedInputRef.current &&
!hasSelectedDevice &&
newAudioInputs.length
) {
console.log(
'Previously selected audio input lost. Selecting a default device.'
);
meetingManager.selectAudioInputDevice(newAudioInputs[0].deviceId);
} else if (selectedInputRef.current === 'default') {
console.log(
`Audio devices updated and "default" device is selected. Reselecting input.`
);
try {
await audioVideo?.chooseAudioInputDevice(selectedInputRef.current);
} catch (e) {
console.error(`Error in selecting audio input device - ${e}`);
}
}
setAudioInputs(newAudioInputs);
},