2015-04-19 27 views
7

In un'app che sto sviluppando vorrei consentire all'utente di scegliere la risoluzione della registrazione video. A causa delle specifiche, non sono possibile utilizzare le costanti AVCaptureSessionPreset.
Ottenere l'elenco dei formati ci sono risoluzioni superiori a 3000px che ovviamente non possono funzionare per l'acquisizione di video ma solo per lo scatto di foto.
Comprendere se un formato AVCaptureDevice si adatta alla registrazione video

AVCaptureDeviceFormat: 0x17020c830 'vide'/'420F' 3264x2448, {2- 30 fps }, HRSi: 3264x2448, FOV: 58,040, zoom max: 153.00 (upscaling @ 1.00), AF sistema: 2 , ISO: 29.0-1856.0, SS: 0.000013-0.500000

Non riesco a trovare un modo per vedere se un formato specifico è adatto per la registrazione video.
Il problema è che con questo tipo di risoluzione, se provo a catturare un video, l'app genera un'eccezione che dice che non vi è alcuna connessione attiva o abilitata.

- [AVCaptureMovieFileOutput startRecordingToOutputFileURL: recordingDelegate:] - non attivo/abilitato connessioni.

Inoltre, non voglio limiti hardcode per ogni tipo di dispositivo.
Non riesco anche a limitare il limite a AVCaptureSessionPresetHigh perché come indicato in un Apple note non è il formato massimo effettivo.
C'è un modo per capire se un AVCaptureDeviceFormat è adatto per l'acquisizione di video?

risposta

2

Dopo aver impostato tutte le connessioni con l'opzione -activeFormat selezionata, verificare se l'attuale AVCaptureConnectionisActive o osservare utilizzando KVO la proprietà -active. Se non lo è, il formato non è disponibile per l'acquisizione video, se è sì può essere utilizzato.

+1

Grazie per aver postato questa soluzione! – AlexeyVMP

+2

Venerato. Una buona idea per eseguire il debug e testare le cose, ma non per il codice di produzione, dal momento che occorrono diversi secondi per esaminare tutti i formati su iPhone 5s. L'app sembra bloccata. –

Problemi correlati