Sto provando a realizzare un'app torcia per il mio iPhone. Ho un iPhone 4 e vorrei utilizzare il LED sul mio iPhone per il mio progetto. Qualcuno può aiutarmi a iniziare?Attiva il LED per un'app torcia
risposta
Usa la seguente:
AVCaptureSession * session = [[AVCaptureSession alloc] init];
[session beginConfiguration];
AVCaptureDevice * device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([device hasTorch] && [device hasFlash]){
[device lockForConfiguration:nil];
[device setTorchMode:AVCaptureTorchModeOn];
[device setFlashMode:AVCaptureFlashModeOn];
[device unlockForConfiguration];
AVCaptureDeviceInput * flashInput = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
if (flashInput){
[session addInput:flashInput];
}
AVCaptureVideoDataOutput * output = [[AVCaptureVideoDataOutput alloc] init];
[session addOutput:output];
[output release];
[session commitConfiguration];
[session startRunning];
}
[self setTorchSession:session];
[session release];
(Da un discussion su iPhoneDevSDK)
Ecco una versione più breve è ora possibile utilizzare per accendere il LED acceso o spento:
- (void)torchOnOff: (BOOL) onOff
{
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([device hasTorch]) {
[device lockForConfiguration:nil];
[device setTorchMode: onOff ? AVCaptureTorchModeOn : AVCaptureTorchModeOff];
[device unlockForConfiguration];
}
}
AGGIORNAMENTO: (marzo 2015)
È inoltre possibile impostare la luminosità della torcia:
- (void)setTorchToLevel:(float)torchLevel
{
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([device hasTorch]) {
[device lockForConfiguration:nil];
if (torchLevel <= 0.0) {
[device setTorchMode:AVCaptureTorchModeOff];
}
else {
if (torchLevel >= 1.0)
torchLevel = AVCaptureMaxAvailableTorchLevel;
BOOL success = [device setTorchModeOnWithLevel:torchLevel error:nil];
}
[device unlockForConfiguration];
}
}
È necessario avere la sessione in esecuzione se si utilizza questo codice nelle versioni iOS precedenti alla 5.0 – mahboudz
Questo funziona su iOS 5.1, la risposta precedente no. –
Potresti commentare quali versioni funziona? –
- 1. Torcia a LED su Galaxy Nexus controllabile tramite quale API?
- 2. Problemi con il LED di Arduino RGB
- 3. Controllo torcia in Marshmallow
- 4. Apertura della torcia del Galaxy Nexus
- 5. LED Flashlight non funziona su Samsung Galaxy Nexus
- 6. Accensione torcia/flash su iPhone
- 7. Controllo Android LED dalla shell
- 8. LED lampeggiante usando Visual C++
- 9. Accesso individuale alla telecamera Luci a LED di iPhone 5s
- 10. LED di notifica Android non utilizza il mio colore
- 11. Torcia/Lua dopo l'installazione non funziona
- 12. LED di programma con solo porta USB
- 13. Attiva il widget Tkinter
- 14. C'è un modo per regolare il livello di luminosità della torcia/flash su un dispositivo iOS?
- 15. Il pannello non si attiva
- 16. NSTimer non attiva il selettore
- 17. Attiva manualmente il datapicker onselect
- 18. Modifica del colore della notifica LED ogni 5 secondi
- 19. Configura i parametri del trigger LED dallo spazio del kernel
- 20. Cambio hearbeat led su beaglebone nero con overlay albero dispositivo
- 21. Controllo delle luci a LED della tastiera mediante c
- 22. Quale sarebbe il codice Visual Basic per un'opzione Sempre attiva?
- 23. Swift: Attiva il pulsante per passare alla nuova scena
- 24. HighCharts attiva l'animazione false per il grafico a linee
- 25. La torcia Iphone non funziona mentre l'app è in background
- 26. Come faccio a lampeggiare un LED, usando libftdi v0.18?
- 27. C'è qualche carattere simile a LED in iPhone?
- 28. Come accendere contemporaneamente torcia e fotocamera frontale in Android
- 29. Come cambiare il colore della scheda attiva
- 30. Ottenere il nome della finestra attiva
Grazie, così ho aggiunto un pulsante nel viewcontroller.xib in interfacebuilder. Come faccio a far partire il pulsante e fermare la torcia? –
Crea un IBOutlet per IBAction e collegalo al selettore del pulsante. Quindi, nell'IBAction, a seconda se il LED è già acceso, chiamare il codice o chiamare una versione modificata del codice con tutti gli on sostituiti con off. – jrtc27
Hai controllato il mio altro post? Ho aggiunto IBOutlet e IBActon ma non so come aggiungere il mio codice al pulsante. Puoi dare un'occhiata e aiutarmi e mostrarmi come aggiungere il codice al pulsante. So che ho bisogno di cambiare; [device setTorchMode: AVCaptureTorchModeOn]; [device setFlashMode: AVCaptureFlashModeOn]; a [dispositivo setTorchMode: AVCaptureTorchModeOff]; [device setFlashMode: AVCaptureFlashModeOff]; Potete guardare il mio codice in altri post e mi mostra come fare questo, è possibile inviare me holmes2870 @ yahoo.com Sono nuovo di questo in modo da avere pazienza ... ringrazio David H –