#android #camera #led #flashlight #camera-flash
#Android #камера #светодиод #фонарик #камера-вспышка
Вопрос:
Есть ли способ установить желаемую интенсивность светодиодов? Я знаю, что для включения светодиода, который я использую:
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
mycam.setParameters(p);
Но этот код просто включает светодиод. Но есть ли способ установить другую интенсивность светодиода для более яркого освещения или уменьшить интенсивность света?
Комментарии:
1. Я так не думаю, но я не уверен. И если да, то это определенно не будет работать на всех устройствах. Вы также могли бы рассмотреть возможность удаления тега [flash], поскольку он предназначен для Adobe flash, и кто-то может прийти сюда, ожидая, что вопрос будет связан с этим.
2. Мой HTC Evo оснащен функцией «фонарик», которая использует светодиодную «вспышку», и имеет три разных параметра яркости. Тоже работает как чемпион. Итак, должен быть какой -то способ сделать это. Поскольку это встроенное приложение, я полагаю, что оно может зависеть от конкретного устройства.
3. надеюсь, мой ответ поможет вам.
Ответ №1:
У HTC есть альтернативный API, который поддерживает это, однако он доступен только на устройствах HTC Sense, а начиная с Gingerbread они изменили разрешения, так что это доступно только для их приложения Flashlight, а не для сторонних приложений (если вы не используете root).
Но на устройствах HTC 2.2 вы можете использовать это, введя строку в /sys/devices/platform/flashlight.0/leds/flashlight/brightness
. Это определяет, горит ли светодиод и насколько он яркий. Для записи с максимальной яркостью "128n"
записывайте с половиной яркости "64n"
. Легко протестировать из adb shell:
echo "128" > /sys/devices/platform/flashlight.0/leds/flashlight/brightness
И, наконец, отключите его, написав "0n"
там.
Комментарии:
1. Спасибо @Kevin TeslaCoil.. Я понял, что вы сказали. Но не знаю, как это реализовать. Можете ли вы показать руководство или туториал, связанный с этим?
2. Пока я получил code.google.com/p/quick-settings/source/browse/trunk /… …..
3. Быстрые настройки, круто. Я думаю, вы просто пропускаете часть n. Вот что я использую для TeslaLED teslacoilsw.com/tmp/SysDevicesLED.java
4. есть ли где-нибудь обзор того, что можно изменить, записав в sysfs?
5. Этот пост был написан 3 года назад. есть ли какие-либо обновления?
Ответ №2:
Короткий ответ: НЕТ.
Более длинный ответ — возможно, на некоторых устройствах используются недокументированные вызовы / параметры. Поддерживаемые режимы вспышки и их значения (и поведение) отличаются от устройства к устройству.
Ваш лучший вариант — запросить поддерживаемые режимы вспышки и надеяться, что они работают так, как задумано.
Ответ №3:
Попробуйте установить различные режимы вспышки, доступные для параметров камеры.
* FLASH_MODE_OFF
* FLASH_MODE_AUTO
* FLASH_MODE_ON
* FLASH_MODE_RED_EYE
* FLASH_MODE_TORCH
вы можете установить режим вспышки с помощью метода setFlashMode ().
Это было сделано только для подсветки камеры. но если вы хотите изменить интенсивность всего экрана. взгляните на приведенный здесь пример.
Ответ №4:
Попробуйте найти код этой функции:
private native final void native_setParameters(String params);
Я верю, что вы узнаете, возможно ли это, когда просмотрите его.
Глядя на public
s, это кажется невозможным
Ответ №5:
Я пробовал это на своем Samsung Galaxy S3 Mini. Я не пробовал на других устройствах.
Всякий раз, когда я делаю это (при включенном светодиоде):
public void changeIntensity()
{
cam.stopPreview();
cam.startPreview();
}
Светодиод переключается между 3 уровнями интенсивности. Это не имеет смысла, но это работает.