При поиске в Google я получил информацию: если я хочу, чтобы моя камера могла записывать видео с высокой частотой кадров на устройстве Android, мне нужно указать поставщиком устройства определенные параметры для вызова API камеры.
/>
Например, вызвав приведенные ниже методы, я мог бы включить приложение камеры Galaxy S6, постоянно записывающее 120 кадров в секунду.
camera = Camera.open();
Camera.Parameters parms = camera.getParameters();
// for 120fps
parms.set("fast-fps-mode", 2); // 2 for 120fps
parms.setPreviewFpsRange(120000, 120000);
Но проблема в том, что не все устройства (включая LG и других производителей) поддерживают частоту 120 кадров в секунду (или выше). Поэтому мне нужно знать максимальную частоту кадров на уровне API в режиме реального времени при запуске приложения камеры для обработки ошибок.
В моем случае Camera.Parameters.getSupportedPreviewFpsRange() нет работал у меня.
Он возвращает максимум 30 000 (что означает 30 кадров в секунду), даже если он может записывать со скоростью 120 000 (120 кадров в секунду). Я думаю, это потому, что запись с высокой частотой кадров (более 30 кадров в секунду) тесно связана с аппаратными свойствами камеры, и поэтому мне нужно вызывать API-интерфейсы конкретного поставщика.
Есть ли это распространенный способ получить максимальное количество кадров в секунду для устройства камеры на уровне API?
--------------------- - РЕДАКТИРОВАТЬ ----------------------
В API21 (LOLLIPOP) мы могли бы использовать StreamConfigurationMap для получить максимальное значение для высокоскоростной записи кадров в секунду. Использование показано ниже.
CameraManager manager = (CameraManager)activity.getSystemService(Context.CAMERA_SERVICE);
String cameraId = manager.getCameraIdList()[0];
CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId);
StreamConfigurationMap map = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
Range[] fpsRange = map.getHighSpeedVideoFpsRanges(); // this range intends available fps range of device's camera.
Подробнее здесь: https://stackoverflow.com/questions/369 ... -api-level
Как узнать максимальный поддерживаемый fps устройством Android на уровне API? ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как узнать максимально поддерживаемые FPS от Android Device на уровне API?
Anonymous » » в форуме Android - 0 Ответы
- 1 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Cacert.pem не поддерживается, где найти или как создать поддерживаемый сертификат?
Anonymous » » в форуме Php - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-