Camera2 API Samsung Galaxy S9 + нет поддерживаемых диапазонов FPS выше 240? - PullRequest
0 голосов
/ 11 октября 2018

Я пишу приложение, используя Camera2 API для захвата замедленного видео.Я знаю, что Samsung Galaxy S9 + может записывать замедленное движение до 960 кадров в секунду, и для этого конкретного проекта мне нужно записать 480 кадров в секунду.

Проблема, с которой я столкнулся, заключается в том, что map.getHighSpeedVideoFpsRangesFor () с разрешением 720p или 1080p возвращаетмаксимальный диапазон [240, 240], и если я пытаюсь вручную задать CaptureRequest.Builder диапазон [480, 480], я получаю следующее исключение:

IllegalArgumentException while invoking public abstract void android.hardware.camera2.CameraCaptureSession$StateCallback.onConfigured(android.hardware.camera2.CameraCaptureSession)
                 java.lang.IllegalArgumentException: Fps range [480, 480] in the request is not a supported high speed fps range [[120, 120], [240, 240], [60, 120], [30, 120], [60, 240], [30, 240]]
                     at android.hardware.camera2.utils.SurfaceUtils.checkConstrainedHighSpeedSurfaces(SurfaceUtils.java:151)
                     at android.hardware.camera2.impl.CameraConstrainedHighSpeedCaptureSessionImpl.createHighSpeedRequestList(CameraConstrainedHighSpeedCaptureSessionImpl.java:83)
                     at ch.package.app.RecordActivity.updatePreview(RecordActivity.java:655)
                     at ch.package.app.RecordActivity.access$700(RecordActivity.java:74)
                     at ch.package.app.RecordActivity$3.onConfigured(RecordActivity.java:257)
                     at android.hardware.camera2.impl.CameraConstrainedHighSpeedCaptureSessionImpl$WrapperCallback.onConfigured(CameraConstrainedHighSpeedCaptureSessionImpl.java:398)
                     at java.lang.reflect.Method.invoke(Native Method)
                     at android.hardware.camera2.dispatch.InvokeDispatcher.dispatch(InvokeDispatcher.java:39)
                     at android.hardware.camera2.dispatch.HandlerDispatcher$1.run(HandlerDispatcher.java:65)
                     at android.os.Handler.handleCallback(Handler.java:789)
                     at android.os.Handler.dispatchMessage(Handler.java:98)
                     at android.os.Looper.loop(Looper.java:164)
                     at android.os.HandlerThread.run(HandlerThread.java:65)

Невозможно записать 480 FPS наэто устройство через API?Могу ли я выбрать другой подход?или я что-то не так делаю?

...