Sto cercando di incorporare una visualizzazione semplice nella mia applicazione iPhone per scattare istantanee. Tutto funziona bene, ma sto affrontando alcuni problemi con il tempo di avvio delle telecamere. In un progetto di esempio Apple, il file -startRunning
di AVCaptureSession non viene eseguito sul thread principale, cosa che sembra essere necessaria. Sto configurando la sessione di cattura durante l'inizializzazione della vista e l'avvio in un thread separato. Ora aggiungo lo AVCaptureVideoPreviewLayer
in -didMoveToSuperview
. Va tutto bene senza multithreading (l'interfaccia utente è bloccata per circa un secondo), ma con GCD l'interfaccia utente a volte funziona, a volte ci vuole troppo tempo perché l'interfaccia utente si sblocchi o l'anteprima venga mostrata.Come evitare di bloccare l'interfaccia utente quando si utilizza la fotocamera dell'iPhone tramite AVFoundation?
Come posso gestire il ritardo di avvio della videocamera in modo affidabile, senza bloccare il thread principale (il ritardo stesso non è il problema)?
spero che voi ragazzi capire il mio problema: D
Grazie in anticipo!
BTW: Ecco il mio proof-of-concept-progetto (senza GCD) ora sto riutilizzando per un'altra app: http://github.com/dariolass/QuickShotView
Grazie! La chiave per me era l'esecuzione di 'AvvioRunning' di AVCaptureSession' e' stopRunning' su un thread in background. – the4kman