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
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 :
<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 →
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 ); }
Aperçu de l’API
| Torch.getInstance() | Renvoie l’instance unique. |
| isSupported | Vrai 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. |
| mode | Vrai 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
- Licence pour une application AIR
- Toutes les mises à jour pendant 12 mois
- Sans support
- Licence pour une application AIR
- Toutes les mises à jour pendant 12 mois
- Réponse par e-mail sous 7 jours
- Licence pour une application AIR
- Toutes les mises à jour pendant 12 mois
- Réponse par e-mail sous 48 heures
Prérequis
| SDK AIR | 51.x (HARMAN) |
| iOS | iOS 17 ou version ultérieure |
| Android | Android 6.0 (API 23) ou version ultérieure |
| Autorisations | Aucune qui lui soit propre |
| Matériel | Une lampe de caméra à côté de la caméra arrière |