← Todas las extensiones

Extensión nativa

KlugTorch

com.klug.torch.Torch

NO NECESITAS APM. Descarga y disfruta. No puede ser más sencillo.

Detecta si un dispositivo tiene luz de cámara y la enciende y apaga. En iOS esto funciona también mientras la cámara transmite, sin interrumpir el stream.

iOSAndroid En producción Desde €19 / año · Comprar

Resumen

Una app de cámara a menudo necesita luz: una cámara de seguridad en una habitación oscura, un escáner, una videollamada por la noche. KlugTorch enciende y apaga la luz de la cámara (el LED junto a la cámara trasera) mientras la cámara sigue funcionando.

KlugTorch primero detecta si el dispositivo tiene luz de cámara. Muchas tabletas y algunos teléfonos no la tienen, así que una app puede simplemente ocultar allí su botón de luz.

Funciona junto con un stream de cámara en directo. KlugTorch no abre una cámara propia, por lo que nunca compite con el stream por la cámara.

Las apps que hacen streaming con KlugMedia también pueden usar su control de linterna integrado. KlugTorch se usa a diario en nuestras apps, nuestra prueba de concepto.

Funciones

  • Autónoma: una ANE, sin biblioteca central ni ANE de dependencias que añadir
  • Detecta si el dispositivo tiene luz de cámara
  • Enciende y apaga la luz de la cámara con una sola llamada
  • Funciona mientras la cámara transmite en iOS, sin interrupciones
  • Lee el estado actual de la luz
  • Un evento de cambio tras cada conmutación, también cuando falla
  • Una única API para iOS y Android

Plataformas compatibles

iOS arm64
Android arm64 · armv7

En dispositivos sin luz de cámara, y en otras plataformas, isSupported devuelve false, por lo que el mismo código puede permanecer en todas las apps.

Primeros pasos

Añade la extensión al descriptor de tu aplicación:

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

La luz está junto a la cámara trasera, por lo que la cámara trasera debe ser la activa.

Ejemplos de código

Tres flujos completos. on() y off() devuelven de inmediato; tras cada llamada llega un evento de cambio, y mode te indica el resultado. Documentación completa →

1 · Mostrar el botón de luz solo donde hay 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 · Conmutar la luz y seguir el 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
}
En Android el sistema no conmuta la luz mientras otra parte de la app mantiene la cámara abierta, por ejemplo un stream de flash.media.Camera de AIR. En ese caso on() termina con un evento de cambio y mode permanece en false. Las apps que hacen streaming con KlugMedia usan en su lugar su setTorch().
3 · Apagar la luz cuando la cámara se detiene
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 );
}

Resumen de la API

Torch.getInstance()Devuelve la instancia única.
isSupportedVerdadero solo si el dispositivo tiene una luz de cámara utilizable: en iOS la cámara predeterminada (trasera) tiene linterna, en Android 6+ una cámara trasera tiene flash.
on()Enciende la luz de la cámara; sigue un evento de cambio.
off()Apaga la luz de la cámara; sigue un evento de cambio.
modeVerdadero mientras la luz está encendida. iOS lee el estado de la linterna de la cámara; Android informa del estado del último on() / off() correcto.

Eventos

Event.CHANGE ("change")Se emite tras cada on() y off(), también cuando no se pudo conmutar la luz. Lee mode para ver el resultado.

Compra KlugTorch

Una licencia anual para una aplicación AIR, con todas las actualizaciones durante 12 meses. Tras el pago recibes la extensión, la biblioteca ActionScript y la documentación por e-mail, normalmente en un día hábil. Licencia y términos

Simple
€19 / año
  • Licencia para una aplicación AIR
  • Todas las actualizaciones durante 12 meses
  • Sin soporte
Comprar Simple
Standard
€149 / año
  • Licencia para una aplicación AIR
  • Todas las actualizaciones durante 12 meses
  • Respuesta por e-mail en un plazo de 7 días
Comprar Standard
Priority
€299 / año
  • Licencia para una aplicación AIR
  • Todas las actualizaciones durante 12 meses
  • Respuesta por e-mail en un plazo de 48 horas
Comprar Priority
Link (Stripe) calcula los impuestos al pagar. Durante el pago indicas el ID de aplicación de tu app AIR.

Requisitos

AIR SDK51.x (HARMAN)
iOSiOS 17 o posterior
AndroidAndroid 6.0 (API 23) o posterior
PermisosNinguno propio
HardwareUna luz de cámara junto a la cámara trasera