Как узнать максимальный поддерживаемый fps устройством Android на уровне API?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как узнать максимальный поддерживаемый fps устройством Android на уровне API?

Сообщение Anonymous »

При поиске в 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как узнать максимально поддерживаемые FPS от Android Device на уровне API?
    Anonymous » » в форуме Android
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Можем ли мы программно узнать NPU, используемый устройством Android?
    Anonymous » » в форуме Android
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как узнать FPS в видео с помощью Nvidia DALI?
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как получить тип, поддерживаемый Enum?
    Anonymous » » в форуме Php
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Cacert.pem не поддерживается, где найти или как создать поддерживаемый сертификат?
    Anonymous » » в форуме Php
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»