Мне даже не нужна замедленная съемка, просто камера с высокой частотой кадров для использования в режиме реального времени, поэтому 60 кадров в секунду будет достаточно.
Пример, который я попробовал для запроса частоты кадров камеры в старом API камеры;
Код: Выделить всё
List a = camera.getParameters().getSupportedPreviewSizes();
List b = camera.getParameters().getSupportedPreviewFpsRange();
int[] c = new int[2];
camera.getParameters().getPreviewFpsRange(c);
Код: Выделить всё
CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String[] cameras = manager.getCameraIdList();
for(String camera : cameras) {
CameraCharacteristics cc = manager.getCameraCharacteristics(camera);
Range[] fpsRange = cc.get(cc.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES);
}
[15, 15], [24, 24], [10, 30], [15, 30], [30, 30] (даже меньше диапазонов со старым API камеры).
В API камеры2 я нашел несколько методов доступа к записи с камеры с высокой частотой кадров: createConstrainedHighSpeedCaptureSession().
Но он определяет высокоскоростную запись видео как «частоту кадров >=120 кадров в секунду», поэтому мне она даже не нужна для 60 кадров в секунду. В любом случае я запросил эту возможность, но, похоже, она не поддерживается на S6. Код, который я пробовал:
Код: Выделить всё
CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String[] cameras = manager.getCameraIdList();
for(String camera : cameras) {
CameraCharacteristics cc = manager.getCameraCharacteristics(camera);
CameraCharacteristics.Key aa = cc.REQUEST_AVAILABLE_CAPABILITIES;
for (int i = 0; i < cc.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES).length; i++) {
Log.e(TAG, "Capability: " + cc.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES)[i]);
}
}
REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO будет 9.
На этом этапе у меня уже почти исчерпаны идеи, предполагающие, что эти возможности действительно недоступны через стандартные API для этих телефоны. Любая помощь приветствуется.
Я знаю, что вопрос очень похож/связан с этим: снимать видео с высокой частотой кадров с помощью нового API камеры.
Но мой вопрос более общий, не касающийся ни старого, ни нового API камеры, ни конкретных устройств. Мне также любопытно, какую частоту кадров в секунду поддерживают другие новые флагманские устройства через стандартные API, поскольку я смог протестировать это только на трех устройствах.
Подробнее здесь: https://stackoverflow.com/questions/356 ... on-android
Мобильная версия