fun microphoneSelectionChanged()

in app/src/main/java/com/amazonaws/ivs/basicbroadcast/viewModel/MainViewModel.kt [252:281]


    fun microphoneSelectionChanged(position: Int) {
        Log.d(TAG, "Microphone device changed")
        if (position < context.getAvailableMicrophoneSize()) {
            val device = context.getSelectedMicrophone(position)
            Log.d(TAG, "Selected device ${device.deviceId}")
            microphoneDevice?.let {
                if (it.deviceId != device.deviceId && session != null) {
                    try {
                        session?.exchangeDevices(it, device) { microphone ->
                            Log.d(TAG, "Device attached ${microphone.descriptor.deviceId}")
                            microphoneDevice = microphone.descriptor
                            if (isMuted) {
                                microphone as AudioDevice
                                microphone.setGain(0f)
                            }
                        }
                    } catch (e: BroadcastException) {
                        Log.d(TAG, "Microphone exchange exception $e")
                        attachMicrophoneDevice(device)
                    }
                }
            }

            if (microphoneDevice == null) {
                attachMicrophoneDevice(device)
            }

            if (session == null) microphoneDevice = device
        }
    }