7

Sto cercando di costruire un sostituto per UIImagePickerController, utilizzando AVCaptureSession con AVCaptureDeviceInput e AVCaptureStillImageOutput, come input/output, rispettivamente.differenze telecamera tra UIImagePickerController e AVCaptureSession su iPhone

Per visualizzare l'anteprima del flusso della telecamera Sto usando AVCaptureVideoPreviewLayer.

Ora funziona correttamente per l'acquisizione e la memorizzazione di foto, proprio come la fotocamera predefinita.

Tuttavia, ho trovato 3 problemi non sono riuscito a risolvere:

  • foto catturate non si ottiene la stessa qualità della fotocamera di default fornisce
  • l'angolo di visione/acquisizione è accorciato, proprio come con il di acquisizione video sulla fotocamera di default
  • c'è modo di controllare le opzioni specifiche della fotocamera come flash

esiste un modo per arrivare al livello di UIImagePickerController utilizzando un approccio più personalizzabile (es. AVFoundation o qualsiasi altro)?

+0

Che cosa esattamente vuoi fare, forse non hai bisogno del buffer dei pixel, forse basta sovrapporre qualcosa? Se si desidera ottenere un buffer di alta qualità come UIImagePickerController in modo da poter eseguire l'elaborazione di alcune immagini, non credo sia possibile (o almeno non facile, perché come hai detto, non sono disponibili API pubbliche di controllo flash o di messa a fuoco). Con AVFoundation otterrai ** buffer ** raw di input per la videocamera, quindi non aspettarti che siano così buoni;) – nacho4d

+0

Avevo bisogno di più personalizzazione rispetto a un overlay su UIImagePickerController, ma se non c'è un altro modo per ottenere il suo caratteristiche, penso che dovrò attenermi ... Grazie per il tuo commento. – paulo

risposta

10

Controllare "Sessione 409 - Uso della fotocamera con AV Foundation" nello WWDC 2010 videos. In base al video, lo sembra come se fosse possibile risolvere tutti e tre i problemi con AVFoundation.

Spero che questo aiuti!

+0

Dead on, donkim! Sto digitando questo da una macchina Windows quindi non posso testare nulla al momento, ma ho guardato il PDF di Session 409 e, come hai detto tu, tutti i miei 3 numeri sono indirizzati e molto altro! Grazie per segnalarlo. Ho salvato la mia giornata! – paulo

+0

Ora è possibile confermare che tutto funzioni come previsto, utilizzando le informazioni della suddetta sessione WWDC 2010. La chiave sta nell'usare ** AVCaptureSessionPresetPhoto ** e nella configurazione dell'input ** AVCaptureDevice ** se necessario. Grazie ancora, @donkim! – paulo

+0

Sono contento che abbia funzionato per te! :) – donkim