← Все расширения

Нативное расширение

KlugTorch

com.klug.torch.Torch

APM НЕ НУЖЕН. Скачайте и пользуйтесь. Проще уже некуда.

Определяет, есть ли на устройстве подсветка камеры, и включает и выключает её. На iOS это работает и во время трансляции с камеры, не прерывая поток.

iOSAndroid В продакшене От €19 / год · Купить

Обзор

Приложению с камерой часто нужен свет: камера наблюдения в тёмной комнате, сканер, видеозвонок ночью. KlugTorch включает и выключает подсветку камеры (светодиод рядом с задней камерой), пока камера продолжает работать.

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

Он работает параллельно с живым потоком камеры. KlugTorch не открывает собственную камеру, поэтому никогда не конкурирует с потоком за камеру.

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

Возможности

  • Автономность: один ANE, без базовой библиотеки и зависимых ANE
  • Определяет, есть ли на устройстве подсветка камеры
  • Включение и выключение подсветки камеры одним вызовом
  • Работает во время трансляции с камеры на iOS, без прерываний
  • Считывает текущее состояние подсветки
  • Событие изменения после каждого переключения, в том числе при неудаче
  • Один API для iOS и Android

Поддерживаемые платформы

iOS arm64
Android arm64 · armv7

На устройствах без подсветки камеры и на других платформах isSupported возвращает false, поэтому один и тот же код можно оставить в любом приложении.

Начало работы

Добавьте расширение в дескриптор вашего приложения:

app.xml
<extensions>
    <extensionID>com.klug.torch.Torch</extensionID>
</extensions>

Подсветка находится рядом с задней камерой, поэтому активной должна быть задняя камера.

Примеры кода

Три полных сценария. on() и off() возвращаются сразу; после каждого вызова следует событие изменения, а mode сообщает результат. Полная документация →

1 · Показ кнопки света только там, где есть подсветка
Setup.as
import com.klug.torch.Torch;
import flash.events.Event;

var torch:Torch = Torch.getInstance();

// iOS: true if the default (back) camera has a torch.
// Android 6+: true if a back-facing camera has a flash.
// False on devices without a light and on other platforms.
lightButton.visible = torch.isSupported;   // lightButton: your app's toggle button
2 · Переключение света и отслеживание результата
Light.as
var wantLight:Boolean = false;

torch.addEventListener( Event.CHANGE, onTorchChange );   // after every on() / off()

function setLight( on:Boolean ):void
{
    wantLight = on;
    if ( on ) torch.on();
    else      torch.off();
}

function onTorchChange( e:Event ):void
{
    // the event carries no detail: read mode for the current state
    lightButton.selected = torch.mode;

    if ( torch.mode != wantLight )   // the light could not be switched
        showMessage( "The light is not available right now." );   // your app
}
На Android система не включает подсветку, пока другая часть приложения держит камеру открытой, например поток из flash.media.Camera AIR. Тогда on() завершается событием изменения, а mode остаётся false. Приложения, которые ведут трансляцию через KlugMedia, используют вместо этого его setTorch().
3 · Выключение света при остановке камеры
Stream.as
function stopStreaming():void
{
    if ( torch.mode ) setLight( false );   // first the light, then the camera
    stopCamera();                          // your app's stream shutdown
    torch.removeEventListener( Event.CHANGE, onTorchChange );
}

Обзор API

Torch.getInstance()Возвращает единственный экземпляр.
isSupportedTrue, только если на устройстве есть пригодная подсветка камеры: на iOS у камеры по умолчанию (задней) есть фонарик, на Android 6+ у задней камеры есть вспышка.
on()Включает подсветку камеры; следует событие изменения.
off()Выключает подсветку камеры; следует событие изменения.
modeTrue, пока свет включён. iOS считывает состояние фонарика камеры; Android сообщает состояние последнего успешного on() / off().

События

Event.CHANGE ("change")Отправляется после каждого on() и off(), в том числе когда переключить свет не удалось. Результат читайте в mode.

Купить KlugTorch

Годовая лицензия на одно приложение AIR со всеми обновлениями в течение 12 месяцев. После оплаты вы получаете расширение, библиотеку ActionScript и документацию по e-mail, обычно в течение одного рабочего дня. Лицензия и условия

Базовый
€19 / год
  • Лицензия на одно приложение AIR
  • Все обновления в течение 12 месяцев
  • Без поддержки
Купить Базовый
Стандартный
€149 / год
  • Лицензия на одно приложение AIR
  • Все обновления в течение 12 месяцев
  • Ответ по e-mail в течение 7 дней
Купить Стандартный
Приоритетный
€299 / год
  • Лицензия на одно приложение AIR
  • Все обновления в течение 12 месяцев
  • Ответ по e-mail в течение 48 часов
Купить Приоритетный
Налоги рассчитываются при оформлении заказа через Link (Stripe). ID приложения вашего приложения AIR вы указываете при оформлении заказа.

Требования

AIR SDK51.x (HARMAN)
iOSiOS 17 или новее
AndroidAndroid 6.0 (API 23) или новее
РазрешенияСобственных нет
ОборудованиеПодсветка камеры рядом с задней камерой