Мне даже не нужна замедленная съемка, достаточно камеры с высокой частотой кадров для использования в режиме реального времени, поэтому 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 camera2 я нашел несколько методов доступа к записи с камеры с высокой частотой кадров: 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