in chime-sdk-components/react-meeting-demo/src/providers/MeetingProvider/MeetingManager.ts [315:357]
async listAndSelectDevices(): Promise<void> {
await this.updateDeviceLists();
if (
!this.selectedAudioInputDevice &&
this.audioInputDevices &&
this.audioInputDevices.length
) {
this.selectedAudioInputDevice = this.audioInputDevices[0].deviceId;
try {
await this.audioVideo?.chooseAudioInputDevice(
this.audioInputDevices[0].deviceId
);
} catch (error) {
console.error(`Error in selecting audio input device - ${error}`);
}
this.publishSelectedAudioInputDevice();
}
if (
!this.selectedAudioOutputDevice &&
this.audioOutputDevices &&
this.audioOutputDevices.length
) {
this.selectedAudioOutputDevice = this.audioOutputDevices[0].deviceId;
if (supportsSetSinkId()) {
try {
await this.audioVideo?.chooseAudioOutputDevice(
this.audioOutputDevices[0].deviceId
);
} catch (error) {
console.error('Failed to choose audio output device.', error);
}
}
this.publishSelectedAudioOutputDevice();
}
if (
!this.selectedVideoInputDevice &&
this.videoInputDevices &&
this.videoInputDevices.length
) {
this.selectedVideoInputDevice = this.videoInputDevices[0].deviceId;
this.publishSelectedVideoInputDevice();
}
}