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
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:
<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 →
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
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 }
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. |
| isSupported | Verdadeiro 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. |
| mode | Verdadeiro 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
- Licença para um app AIR
- Todas as atualizações por 12 meses
- Sem suporte
- Licença para um app AIR
- Todas as atualizações por 12 meses
- Resposta por e-mail em até 7 dias
- Licença para um app AIR
- Todas as atualizações por 12 meses
- Resposta por e-mail em até 48 horas
Requisitos
| AIR SDK | 51.x (HARMAN) |
| iOS | iOS 17 ou posterior |
| Android | Android 6.0 (API 23) ou posterior |
| Permissões | Nenhuma própria |
| Hardware | Uma luz de câmera ao lado da câmera traseira |