← Toutes les extensions

Extension native

KlugTorch

com.klug.torch.Torch

AUCUN APM NÉCESSAIRE. Téléchargez et profitez-en. Impossible de faire plus simple.

Détecte si un appareil dispose d’une lampe de caméra et l’allume ou l’éteint. Sur iOS, cela fonctionne aussi pendant que la caméra diffuse, sans interrompre le flux.

iOSAndroid En production À partir de €19 / an · Acheter

Vue d’ensemble

Une application de caméra a souvent besoin de lumière : une caméra de surveillance dans une pièce sombre, un scanner, un appel vidéo la nuit. KlugTorch allume et éteint la lampe de la caméra (la LED à côté de la caméra arrière) pendant que la caméra continue de fonctionner.

KlugTorch commence par détecter si l’appareil dispose d’une lampe de caméra. De nombreuses tablettes et certains téléphones n’en ont pas : une application peut alors simplement masquer son bouton de lampe.

Il fonctionne en parallèle d’un flux caméra en direct. KlugTorch n’ouvre pas de caméra propre : il n’entre donc jamais en concurrence avec le flux pour l’accès à la caméra.

Les applications qui diffusent avec KlugMedia peuvent aussi utiliser son contrôle de lampe intégré. KlugTorch est utilisé chaque jour dans nos applications, notre preuve de concept.

Fonctionnalités

  • Autonome : une seule ANE, sans bibliothèque centrale ni ANE de dépendance à ajouter
  • Détecte si l’appareil dispose d’une lampe de caméra
  • Allume et éteint la lampe de la caméra en un seul appel
  • Fonctionne pendant la diffusion de la caméra sur iOS, sans interruption
  • Lit l’état actuel de la lampe
  • Un événement de changement après chaque commutation, même en cas d’échec
  • Une seule API pour iOS et Android

Plateformes prises en charge

iOS arm64
Android arm64 · armv7

Sur les appareils sans lampe de caméra, et sur les autres plateformes, isSupported renvoie false : le même code peut donc rester dans toutes les applications.

Prise en main

Ajoutez l’extension au descripteur de votre application :

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

La lampe se trouve à côté de la caméra arrière : c’est donc la caméra arrière qui doit être active.

Exemples de code

Trois flux complets. on() et off() retournent immédiatement ; un événement de changement suit chaque appel, et mode indique le résultat. Documentation complète →

1 · Afficher le bouton de lampe uniquement là où il y a une lampe
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 · Commuter la lampe et suivre le résultat
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
}
Sur Android, le système n’allume pas la lampe tant qu’une autre partie de l’application maintient la caméra ouverte, par exemple un flux de la flash.media.Camera d’AIR. on() se termine alors par un événement de changement et mode reste à false. Les applications qui diffusent avec KlugMedia utilisent à la place son setTorch().
3 · Éteindre la lampe lorsque la caméra s’arrête
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 );
}

Aperçu de l’API

Torch.getInstance()Renvoie l’instance unique.
isSupportedVrai uniquement si l’appareil dispose d’une lampe de caméra utilisable : sur iOS, la caméra par défaut (arrière) possède une torche ; sur Android 6+, une caméra orientée vers l’arrière possède un flash.
on()Allume la lampe de la caméra ; un événement de changement suit.
off()Éteint la lampe de la caméra ; un événement de changement suit.
modeVrai tant que la lampe est allumée. iOS lit l’état de la torche de la caméra ; Android indique l’état du dernier on() / off() réussi.

Événements

Event.CHANGE ("change")Émis après chaque on() et off(), même si la lampe n’a pas pu être commutée. Lisez mode pour connaître le résultat.

Acheter KlugTorch

Une licence annuelle pour une application AIR, avec toutes les mises à jour pendant 12 mois. Après le paiement, vous recevez l’extension, la bibliothèque ActionScript et la documentation par e-mail, généralement sous un jour ouvré. Licence et conditions

Simple
€19 / an
  • Licence pour une application AIR
  • Toutes les mises à jour pendant 12 mois
  • Sans support
Acheter Simple
Standard
€149 / an
  • Licence pour une application AIR
  • Toutes les mises à jour pendant 12 mois
  • Réponse par e-mail sous 7 jours
Acheter Standard
Priority
€299 / an
  • Licence pour une application AIR
  • Toutes les mises à jour pendant 12 mois
  • Réponse par e-mail sous 48 heures
Acheter Priority
Les taxes sont calculées lors du paiement par Link (Stripe). Vous saisissez l’identifiant d’application de votre app AIR pendant le paiement.

Prérequis

SDK AIR51.x (HARMAN)
iOSiOS 17 ou version ultérieure
AndroidAndroid 6.0 (API 23) ou version ultérieure
AutorisationsAucune qui lui soit propre
MatérielUne lampe de caméra à côté de la caméra arrière