in app/src/main/java/com/amazonaws/ivs/basicbroadcast/viewModel/MainViewModel.kt [220:247]
fun cameraSelectionChanged(position: Int) {
Log.d(TAG, "Camera device changed")
if (position < context.getAvailableCameraSize()) {
val device = context.getSelectedCamera(position)
cameraDevice?.let {
if (it.deviceId != device.deviceId && session != null) {
clearPreview.value = true
try {
session?.exchangeDevices(it, device) { camera ->
if (!screenCaptureEnabled) {
displayCameraOutput(camera)
cameraDevice = camera.descriptor
}
}
} catch (e: BroadcastException) {
Log.d(TAG, "Camera exchange exception $e")
attachCameraDevice(device)
}
}
}
if (cameraDevice == null) {
attachCameraDevice(device)
}
if (session == null) cameraDevice = device
}
}