Запись медленного видео с использованием ConstrainedHighSpeedCaptureSession и setCaptureRate в MediaRecorder - PullRequest
0 голосов
/ 24 сентября 2019

Я использую Camera API 2 для моего примера приложения камеры.Я начал с примера google https://github.com/googlearchive/android-Camera2Video и изменил его, используя знания, полученные по ссылкам, указанным ниже, и базам кодов GitHub:

  1. Android захватывает видео в замедленном режиме

  2. Как реализовать запись видео SlowMotion и TimeLapse с помощью Camera API

  3. Доступ к камере с высоким fps на Android

  4. https://pastebin.com/LVdYkWFR

  5. https://github.com/thesleort/Android-Slow-Motion-Camera2/blob/master/java/CaptureHighSpeedVideoMode.java

Поговорить о коде в ссылках № 4 и 5Код в обоих файлах практически одинаков за исключением метода startPreview().Один использует обычный сеанс захвата, т.е. cameraDevice.createCaptureSession() для предварительного просмотра, а другой использует cameraDevice.createConstrainedHighSpeedCaptureSession() для предварительного просмотра.Если я использую createConstrainedHighSpeedCaptureSession() для предварительного просмотра, он работает на одном устройстве, но не на другом, и если я использую createCaptureSession() для предварительного просмотра, первое устройство идет с пустым белым предварительным просмотром, а второе получает предварительный просмотр просто отлично.И, наконец, запись просто не работает и выдает IllegalStateException.

. Я не совсем понимаю, как правильно настроить камеру, чтобы предварительный просмотр и захват видео работали для CameraConstrainedHighSpeedCaptureSession, тип 120 или выше, fps.захватывать сеансы.Я знаю, что setCaptureRate() поможет мне получить запись замедленной съемки.Но с захватом> 30 кадров в секунду - мое требование.

...