Tip iOS #30 – Pilotare il led del flash del dispositivo

iOSBuonasera a tutti,

con l’arrivo dei recenti modelli di iPhone è finalmente stato aggiunto un led per il flash in grado di illuminare propriamente la scena.

Questo Led, decisamente potente, può essere pilotato indipendentemente dalle caratteristiche della fotocamera ed essere acceso e spento a comando, per un tempo indeterminato.

Questo ha permesso alle applicazioni in stile torcia di avvantaggiarsi non solo della luce del display, ma anche della luce del Led, per illuminare una stanza buia.

Va ricordato, però, che il LED consuma energia e quindi va usato con parsimonia, inoltre, contrariamente allo schermo dell’iPhone ha un solo colore, anche se decisamente brillante.

Con il codice che andremo ad esaminare a breve, valido per le versioni dell’SDK dalla 5.0 in poi, potremo accendere e spegnere il Led a comando, purchè esso sia presente.

Prima di tutto va ricordato che il controllo del Led è integrato all’interno del framework AVFoundation e che esso va quindi aggiunto al nostro progetto prima di compilarlo, per aggiungere un framework al proprio progetto potete fare riferimento a questo articolo.

Una volta aggiunto il framework, bisogna importarlo all’interno del view controller che lo adopererà aggiungendo la riga:

#import "AVFoundation/AVFoundation.h"

La funzione che permetterà di accendere il Led ad un determinato comando è la seguente:

- (void)torciaOnOff: (BOOL) onOff
{
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    if ([device hasTorch]) {
        [device lockForConfiguration:nil];
        [device setTorchMode: onOff ? AVCaptureTorchModeOn : AVCaptureTorchModeOff];
        [device unlockForConfiguration];
    }
}

Richiamandola con il parametro onOff a YES accenderemo la torcia, se invece il parametro è NO la spegneremo.

Arrivederci al prossimo suggerimento,

Roberto S.



Related Posts Plugin for WordPress, Blogger...

Questa voce è stata pubblicata in iOS Tips e contrassegnata con , , , , , , , , . Contrassegna il permalink.
Wordpress Code Snippet by Allan Collins