Предварительный просмотр 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, который более стандартизирован и поддерживает такие функции.