Предварительный просмотр android.hardware.camera: как вручную установить время экспозиции, выдержку, диафрагму и ISO

Я работаю над приложением, в котором у меня есть предварительный просмотр камеры, и я делаю снимки в темных условиях. Поэтому мне нужен способ ручного управления временем экспозиции камеры и настройками выдержки, диафрагмы и ISO.

Я знаю, что это должно быть возможно, потому что приложение Long Exposure Camera 2 (от AAASDream) имеет способ вручную изменить время экспозиции, и оно работает отлично. Я не имею в виду компенсацию воздействия, которую я уже пробовал, но не был достаточным.

Исходя из этого поста, я попытался установить

Camera.Parameters params = camera1.getParameters();
params.set("mode", "m");
params.set("aperture", 80);
params.set("shutter-speed", 9);
params.set("iso", 1600);

Но это не сработало вообще.

Существует ли какой-либо скрытый API или параметр, который я могу использовать, или любая сторонняя библиотека, которую я могу использовать для достижения этой цели.

Вся помощь приветствуется, спасибо.

2 ответа

Решение

Я думаю, что нет способа вручную установить вышеупомянутые значения в android.hardware.camera. Но похоже, что новая версия android.hardware.camera2 поддерживает эти функции.

Да, невозможно вручную установить один из двух упомянутых параметров напрямую через API-интерфейс Camera 1. Ни один из признаков не может быть запрошен с помощью стандартного метода, потому что он не поддерживается.

Конечно, есть способ обойти, запросить или установить такие свойства с помощью специальных методов, как в настоящее время упоминается в relime9:

// query all the settings you camera support (API 1)
mCamera.getParameters().flatten();
// set parameters - e.g. aperture
mCamera.getParameters().set("aperture", "80");

Кроме того, конкретное устройство должно поддерживать такую ​​настройку, которая варьируется от устройства к устройству. На некоторых устройствах могут быть установлены определенные значения, а с другими вы не можете и можете использовать только "автоматический" режим.

По этой причине они разработали API-интерфейс Camera 2, который более стандартизирован и поддерживает такие функции.

Другие вопросы по тегам