Oversigt
En kameraapp har ofte brug for lys: et overvågningskamera i et mørkt rum, en scanner, et videoopkald om natten. KlugTorch tænder og slukker kameralyset (LED'en ved siden af bagkameraet), mens kameraet bliver ved med at køre.
KlugTorch registrerer først, om enheden overhovedet har et kameralys. Mange tablets og nogle telefoner har intet, så en app kan blot skjule sin lysknap dér.
Den virker side om side med en live kamerastream. KlugTorch åbner ikke et kamera af sig selv, så den konkurrerer aldrig med streamen om kameraet.
Apps, der streamer med KlugMedia, kan også bruge dens indbyggede lommelygtestyring. KlugTorch er i daglig brug i vores apps, vores proof of concept.
Funktioner
- Selvstændig: én ANE, intet kernebibliotek eller afhængige ANE'er at tilføje
- Registrerer, om enheden har et kameralys
- Tænd og sluk kameralyset med ét kald
- Virker, mens kameraet streamer på iOS, uden afbrydelse
- Læser lysets aktuelle tilstand
- En change-hændelse efter hvert skift, også når det mislykkes
- Én API til iOS og Android
Understøttede platforme
På enheder uden kameralys og på andre platforme returnerer isSupported false, så den samme kode kan blive i enhver app.
Kom i gang
Tilføj udvidelsen til din applikationsdescriptor:
<extensions>
<extensionID>com.klug.torch.Torch</extensionID>
</extensions>
Lyset sidder ved siden af bagkameraet, så bagkameraet bør være det aktive.
Kodeeksempler
Tre komplette flows. on() og off() vender straks tilbage; en change-hændelse følger efter hvert kald, og mode fortæller dig resultatet. Fuld dokumentation →
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 ); }
API-oversigt
| Torch.getInstance() | Returnerer den enkelte instans. |
| isSupported | Sand kun hvis enheden har et brugbart kameralys: på iOS har standardkameraet (bag) en lommelygte, på Android 6+ har et bagudvendt kamera en flash. |
| on() | Tænder kameralyset; en change-hændelse følger. |
| off() | Slukker kameralyset; en change-hændelse følger. |
| mode | Sand, mens lyset er tændt. iOS læser kameraets lommelygtetilstand; Android rapporterer tilstanden fra det seneste vellykkede on() / off(). |
Events
| Event.CHANGE ("change") | Udsendes efter hvert on() og off(), også når lyset ikke kunne skiftes. Læs mode for resultatet. |
Køb KlugTorch
En årlig licens til én AIR-applikation, med alle opdateringer i 12 måneder. Efter betaling modtager du udvidelsen, ActionScript-biblioteket og dokumentationen pr. e-mail, normalt inden for én hverdag. Licens og vilkår
- Licens til én AIR-applikation
- Alle opdateringer i 12 måneder
- Svar pr. e-mail inden for 7 dage
- Licens til én AIR-applikation
- Alle opdateringer i 12 måneder
- Svar pr. e-mail inden for 48 timer
Krav
| AIR SDK | 51.x (HARMAN) |
| iOS | iOS 17 eller nyere |
| Android | Android 6.0 (API 23) eller nyere |
| Tilladelser | Ingen egne |
| Hardware | Et kameralys ved siden af bagkameraet |