Android – переключение между передней и задней камерами во время записи видео

Я пытаюсь реализовать пользовательскую камеру для записи видео. Я следил за этим образцом, и он работает нормально.

Теперь я хочу добавить функциональность «Switch Camera» над нажатием кнопки. Он должен иметь возможность переключаться между передней / задней камерой, даже когда видео записывается.

Поэтому, пожалуйста, помогите мне узнать, возможно ли это?

1. Если да, то как?

2. Если нет, то предложите некоторое обходное решение?

Некоторые примеры кодов или ссылок будут очень полезны …

Примечание. Я искал информацию об этом и нашел несколько ответов StackOverFlow, например

Android Camera2 API переключает обратно – передние камеры

Android: переключение камеры при нажатии кнопки

Но ни один из них не дает возможности переключать камеру во время записи видео .

Пожалуйста помоги.

Код такой же, как и этот образец . И это API Camera2 .

Solutions Collecting From Web of "Android – переключение между передней и задней камерами во время записи видео"

Насколько мне известно, эта камера является устройством и @Selvin объяснил, что передние и задние камеры – это разные устройства. Теперь позвольте мне начать сначала,

Некоторые из устройств имеют собственные функции, которые вы можете переключить камеру во время видеозаписи. Например, Nexus 9 . Для более подробной информации, пожалуйста, обратитесь к этому вопросу .

Другой способ, который вы можете сделать, используя MediaRecorder . Вы можете реализовать такой ответ. Как переключаться между передней и задней камерами при использовании MediaRecorder android?

Я больше не знаю об этом, но если вы хотите это сделать, сделайте вот так:

1. Когда вы записываете видеозапись с помощью камеры заднего вида и переключаетесь на фронтальную камеру, затем временно сохраняйте это видео в локальной и звезде с передней камерой.
2. Теперь остановите видеозапись, затем запустите этот файл и сохраните как один файл.

 camera = Camera.open(currentCameraId); // Pass 0 And 1 currentCameraId setCameraDisplayOrientation(CameraActivity.this, currentCameraId, camera); try { camera.setPreviewDisplay(previewHolder); } catch (IOException e) { e.printStackTrace(); } camera.startPreview(); }