Как управлять выдержкой и диафрагмой камеры в Android?

Я хотел бы управлять выдержкой или диафрагмой камеры в Android, но я ничего не нашел по этому поводу.

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

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

Я использую как Samsung Nexus S, так и Samsung Galaxy W. С Samusng Galaxy ACE проблем с белым изображением не существует: в этом случае кажется, что перед съемкой есть какая-то аппаратная калибровка мощности света.

Большое спасибо!

3 ответа

Извините, что довел это до вас, но эта функция просто не поддерживается и дата выхода не запланирована.
Смотрите функцию / отчет об ошибке:

Изменить выдержку и диафрагму камеры

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

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

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

Экспозиция

Обычно все мобильные устройства имеют встроенный элемент управления экспозицией и называется элементом управления автоматической экспозицией (AE). С помощью АЭ устройство автоматически контролирует экспозицию изображения по умолчанию и выравнивает изображение над или под экспонированным изображением.

Зона замера (MA) и значение экспозиции (EV) - компенсация могут помочь.

// Android (API 1)
mCamera.getParameters().setMeteringAreas(List<Camera.Area> meteringAreas);
mCamera.getParameters().setExposureCompensation(int value);

Извините, что поздно, но может быть полезно для других

Чтобы установить диафрагму:

Camera.Parameters params = camera.getParameters ();

params.set ("mode", "m");

params.set ("диафрагма", "28"); // может быть 28 32 35 40 45 50 56 63 71 80 по умолчанию zoom

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