← Todas as extensões

Extensão nativa

KlugTorch

com.klug.torch.Torch

NÃO É NECESSÁRIO APM. Baixe e aproveite. Não tem como ser mais simples.

Detecta se um dispositivo tem luz de câmera e a liga e desliga. No iOS, isso também funciona enquanto a câmera está transmitindo, sem interromper o stream.

iOSAndroid Em produção A partir de €19 / ano · Comprar

Visão geral

Um app de câmera muitas vezes precisa de luz: uma câmera de segurança em um quarto escuro, um leitor, uma videochamada à noite. O KlugTorch liga e desliga a luz da câmera (o LED ao lado da câmera traseira) enquanto a câmera continua em funcionamento.

O KlugTorch primeiro detecta se o dispositivo tem uma luz de câmera. Muitos tablets e alguns celulares não têm nenhuma, então um app pode simplesmente ocultar o botão de luz nesses casos.

Ele funciona junto com um stream de câmera ao vivo. O KlugTorch não abre uma câmera própria, por isso nunca disputa a câmera com o stream.

Apps que transmitem com o KlugMedia também podem usar o controle de lanterna integrado dele. O KlugTorch é usado diariamente em nossos apps, nossa prova de conceito.

Recursos

  • Autossuficiente: uma ANE, sem biblioteca principal nem ANEs de dependência para adicionar
  • Detecta se o dispositivo tem uma luz de câmera
  • Liga e desliga a luz da câmera com uma única chamada
  • Funciona enquanto a câmera transmite no iOS, sem interrupção
  • Lê o estado atual da luz
  • Um evento de mudança após cada acionamento, também quando falha
  • Uma única API para iOS e Android

Plataformas compatíveis

iOS arm64
Android arm64 · armv7

Em dispositivos sem luz de câmera, e em outras plataformas, isSupported retorna false, para que o mesmo código possa permanecer em todos os apps.

Primeiros passos

Adicione a extensão ao descritor do seu aplicativo:

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

A luz fica ao lado da câmera traseira, então a câmera traseira deve ser a ativa.

Exemplos de código

Três fluxos completos. on() e off() retornam imediatamente; um evento de mudança segue cada chamada, e mode informa o resultado. Documentação completa →

1 · Mostrar o botão de luz somente onde há uma luz
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 · Acionar a luz e acompanhar o resultado
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
}
No Android, o sistema não aciona a luz enquanto outra parte do app mantém a câmera aberta, por exemplo um stream da flash.media.Camera do AIR. Então on() termina com um evento de mudança e mode continua false. Apps que transmitem com o KlugMedia usam o setTorch() dele.
3 · Desligar a luz quando a câmera parar
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 );
}

Visão geral da API

Torch.getInstance()Retorna a instância única.
isSupportedVerdadeiro somente se o dispositivo tem uma luz de câmera utilizável: no iOS, a câmera padrão (traseira) tem lanterna; no Android 6+, uma câmera traseira tem flash.
on()Liga a luz da câmera; um evento de mudança se segue.
off()Desliga a luz da câmera; um evento de mudança se segue.
modeVerdadeiro enquanto a luz está ligada. O iOS lê o estado da lanterna da câmera; o Android informa o estado do último on() / off() bem-sucedido.

Eventos

Event.CHANGE ("change")Disparado após cada on() e off(), também quando a luz não pôde ser acionada. Leia mode para ver o resultado.

Compre o KlugTorch

Uma licença anual para um app AIR, com todas as atualizações por 12 meses. Após o pagamento, você recebe a extensão, a biblioteca ActionScript e a documentação por e-mail, normalmente em até um dia útil. Licença e termos

Simples
€19 / ano
  • Licença para um app AIR
  • Todas as atualizações por 12 meses
  • Sem suporte
Comprar Simples
Padrão
€149 / ano
  • Licença para um app AIR
  • Todas as atualizações por 12 meses
  • Resposta por e-mail em até 7 dias
Comprar Padrão
Prioritário
€299 / ano
  • Licença para um app AIR
  • Todas as atualizações por 12 meses
  • Resposta por e-mail em até 48 horas
Comprar Prioritário
Os impostos são calculados no checkout pelo Link (Stripe). Você informa o ID do aplicativo do seu app AIR durante o checkout.

Requisitos

AIR SDK51.x (HARMAN)
iOSiOS 17 ou posterior
AndroidAndroid 6.0 (API 23) ou posterior
PermissõesNenhuma própria
HardwareUma luz de câmera ao lado da câmera traseira