CameraDevice.CreateCaptureSession Metodo

Definizione

Overload

Nome Descrizione
CreateCaptureSession(SessionConfiguration)

Creare un nuovo CameraCaptureSession oggetto helper SessionConfiguration che aggrega tutti i parametri supportati.

CreateCaptureSession(IList<Surface>, CameraCaptureSession+StateCallback, Handler)

CreateCaptureSession(SessionConfiguration)

Creare un nuovo CameraCaptureSession oggetto helper SessionConfiguration che aggrega tutti i parametri supportati.

[Android.Runtime.Register("createCaptureSession", "(Landroid/hardware/camera2/params/SessionConfiguration;)V", "GetCreateCaptureSession_Landroid_hardware_camera2_params_SessionConfiguration_Handler", ApiSince=28)]
public virtual void CreateCaptureSession(Android.Hardware.Camera2.Params.SessionConfiguration? config);
[<Android.Runtime.Register("createCaptureSession", "(Landroid/hardware/camera2/params/SessionConfiguration;)V", "GetCreateCaptureSession_Landroid_hardware_camera2_params_SessionConfiguration_Handler", ApiSince=28)>]
abstract member CreateCaptureSession : Android.Hardware.Camera2.Params.SessionConfiguration -> unit
override this.CreateCaptureSession : Android.Hardware.Camera2.Params.SessionConfiguration -> unit

Parametri

config
SessionConfiguration

Una configurazione di sessione (vedere SessionConfiguration).

Attributi

Commenti

Creare un nuovo CameraCaptureSession oggetto helper SessionConfiguration che aggrega tutti i parametri supportati.

La sessione di acquisizione attiva determina il set di potenziali superfici di output per il dispositivo fotocamera per ogni richiesta di acquisizione. Una determinata richiesta può usare tutti o solo alcuni degli output. Dopo aver creato CameraCaptureSession, le richieste possono essere inviate con CameraCaptureSession#capture capture, CameraCaptureSession#captureBurst captureBurstCameraCaptureSession#setRepeatingRequest setRepeatingRequest, o CameraCaptureSession#setRepeatingBurst setRepeatingBurst.

Le superfici adatte per l'inclusione come output della fotocamera possono essere create per vari casi d'uso e destinazioni:

<ul>

<li>Per disegnare su un android.view.SurfaceView SurfaceViewoggetto : una volta che il Surface di SurfaceView è android.view.SurfaceHolder.Callback#surfaceCreated created, impostare le dimensioni del Surface con come android.view.SurfaceHolder#setFixedSize una delle dimensioni restituite da StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(SurfaceHolder.class) e quindi ottenere il Surface chiamando android.view.SurfaceHolder#getSurface. Se le dimensioni non sono impostate dall'applicazione, verranno arrotondate alle dimensioni supportate più vicine inferiori a 1080p dal dispositivo fotocamera.</li>

<li>Per l'accesso tramite una trama OpenGL tramite un android.graphics.SurfaceTexture SurfaceTexture: impostare le dimensioni di SurfaceTexture con per android.graphics.SurfaceTexture#setDefaultBufferSize essere una delle dimensioni restituite da StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(SurfaceTexture.class) prima di creare un Surface da SurfaceTexture con Surface#Surface(SurfaceTexture). Se la dimensione non è impostata dall'applicazione, verrà impostata in modo che sia la dimensione più piccola supportata inferiore a 1080p, dal dispositivo fotocamera.</li>

<li>Per la registrazione con android.media.MediaCodec: Chiamare android.media.MediaCodec#createInputSurface dopo aver configurato il codec multimediale per usare una delle dimensioni restituite da StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(MediaCodec.class)</li>

<li>Per la registrazione con android.media.MediaRecorder: chiamare android.media.MediaRecorder#getSurface dopo aver configurato il registratore multimediale per l'uso di una delle dimensioni restituite da StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(MediaRecorder.class)o la configurazione per l'uso di uno dei supporti supportati android.media.CamcorderProfile CamcorderProfiles.</li>

<li>Per l'accesso ai dati YUV NON compressi o NON compressi nell'applicazione: creare un android.media.ImageReader oggetto con uno dei formati di output supportati forniti da StreamConfigurationMap#getOutputFormats(), impostandone le dimensioni su una delle dimensioni supportate corrispondenti passando il formato di output scelto in StreamConfigurationMap#getOutputSizes(int). Ottenere quindi un android.view.Surface oggetto da esso con android.media.ImageReader#getSurface(). Se la dimensione imageReader non è impostata su una dimensione supportata, verrà arrotondata a una dimensione supportata inferiore a 1080p dal dispositivo fotocamera. </li>

</ul>

Il dispositivo fotocamera eseguirà una query sulle dimensioni e i formati di ogni Surface su questa chiamata, quindi devono essere impostati su un'impostazione valida in questo momento.

Il completamento della configurazione della sessione può richiedere diverse centinaia di millisecondi, perché l'hardware della fotocamera potrebbe dover essere acceso o riconfigurato. Una volta completata la configurazione e la sessione è pronta per acquisire effettivamente i dati, verrà chiamato il CameraCaptureSession.StateCallbackcallback fornito CameraCaptureSession.StateCallback#onConfigured .

Se una sessione precedente di CameraCaptureSession esiste già quando viene chiamato questo metodo, la sessione precedente non sarà più in grado di accettare nuove richieste di acquisizione e verrà chiusa. Tutte le richieste di acquisizione in corso effettuate nella sessione precedente verranno completate prima della chiusura. CameraCaptureSession.StateCallback#onConfigured per la nuova sessione può essere richiamata prima CameraCaptureSession.StateCallback#onClosed di essere richiamata per la sessione precedente. Una volta che la nuova sessione è CameraCaptureSession.StateCallback#onConfigured configured, è in grado di avviare l'acquisizione delle proprie richieste. Per ridurre al minimo il tempo di transizione, è possibile usare la CameraCaptureSession#abortCaptures chiamata per eliminare le richieste rimanenti per la sessione di acquisizione precedente prima della creazione di una nuova sessione. Si noti che una volta creata la nuova sessione, il vecchio non può più avere le acquisizioni interrotte.

L'uso di output di risoluzione più grandi o più output può comportare una velocità di output più lenta dal dispositivo.

La configurazione di una sessione con un elenco vuoto o Null chiuderà la sessione corrente, se presente. Può essere usato per rilasciare le superfici di destinazione della sessione corrente per un altro uso.

Questa funzione genera un'eccezione IllegalArgumentException se viene chiamata con un oggetto SessionConfiguration privo di callback di stato o superfici di output valide. Le uniche eccezioni sono gli output di SurfaceView o SurfaceTexture posticipati. Per informazioni dettagliate, vedere OutputConfiguration#OutputConfiguration(Size, Class).

<h3>Acquisizione regolare</h3>

Anche se una qualsiasi delle dimensioni di può essere usata quando è configurato un singolo flusso di output, un determinato dispositivo fotocamera potrebbe non essere in grado di supportare tutte le combinazioni StreamConfigurationMap#getOutputSizes di dimensioni, formati e destinazioni quando più output sono configurati contemporaneamente. Le tabelle seguenti elencano le risoluzioni massime garantite per combinazioni di flussi e destinazioni, date le funzionalità del dispositivo fotocamera. Questi valori sono validi per quando android.hardware.camera2.params.SessionConfiguration#setInputConfiguration input configuration non è impostato e pertanto non è attiva alcuna rielaborazione.

Se un'applicazione tenta di creare una sessione usando un set di destinazioni che superano i limiti descritti nelle tabelle seguenti, può verificarsi una delle tre possibilità. Prima di tutto, la sessione può essere creata correttamente e funzionare normalmente. In secondo luogo, la sessione può essere creata correttamente, ma il dispositivo fotocamera non soddisfa le garanzie di frequenza dei fotogrammi, come descritto in StreamConfigurationMap#getOutputMinFrameDuration. In alternativa, se il set di output non può essere usato affatto, la creazione della sessione avrà esito negativo e CameraCaptureSession.StateCallback#onConfigureFailed verrà richiamata.

Per la colonna di tipo, PRIV fa riferimento a qualsiasi destinazione le cui dimensioni disponibili vengono trovate usando StreamConfigurationMap#getOutputSizes(Class) senza un formato visibile all'applicazione diretta, YUV fa riferimento a un Surface di destinazione usando il android.graphics.ImageFormat#JPEGandroid.graphics.ImageFormat#YUV_420_888 formato, JPEG fa riferimento al formato e RAW fa riferimento al android.graphics.ImageFormat#RAW_SENSOR formato.

Per la colonna dimensioni massime, PREVIEW fa riferimento alla migliore corrispondenza tra le dimensioni e la risoluzione dello schermo del dispositivo o a 1080p (1920x1080), a qualsiasi valore inferiore. RECORD fa riferimento alla risoluzione massima supportata della registrazione del dispositivo fotocamera, come determinato da android.media.CamcorderProfile. E MAXIMUM fa riferimento alla risoluzione di output massima del dispositivo fotocamera per tale formato o destinazione da StreamConfigurationMap#getOutputSizes.

Per usare queste tabelle, determinare il numero e i formati/destinazioni degli output necessari e trovare le righe della tabella con tali destinazioni. Le dimensioni indicano il set massimo di dimensioni che possono essere usate; è garantito che per tali destinazioni, le dimensioni elencate e qualsiasi elemento più piccolo dall'elenco specificato da StreamConfigurationMap#getOutputSizes può essere usato correttamente per creare una sessione. Ad esempio, se una riga indica che è possibile usare un output di 8 YUV_420_888 YUV_420_888 insieme a un output di 2 MP PRIV , è possibile creare una sessione con [8 MP YUV, 2 MP PRIV] destinazioni o destinazioni [2 MP YUV, 2 MP PRIV], ma una sessione con [8 MP YUV, 4 MP PRIV]destinazioni , [4 MP YUV, 4 MP PRIV]destinazioni o destinazioni [8 MP PRIV, 2 MP YUV] non dovrebbe funzionare, a meno che alcune altre righe della tabella non elenchino tale combinazione.

<style scoped> #rb { border-right-width: thick; }</style>

<h5>configurazioni garantite< a livello LEGACY/h5>

I dispositivi legacy (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY LEGACY) supportano almeno le combinazioni di flusso seguenti:

<table><tr><th colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th th><colspan="2" id="rb">Target 3</th th<>rowspan="2">Sample use case(s)</th></tr><<>tr th>Type</th th><id="rb">Max size</th th>><Type</th th><id="rb">Max size</th<>>Type</th th><id="rb" >Max size</th></tr tr><<>td><PRIV/td td><id="rb"><MAXIMUM/td td td<>colspan="2" id="rb"></td td td<>colspan="2" id="rb"></td td><>Simple preview, gpu video processing, no-preview video recording.</td></tr tr><<>td><JPEG/td td><id="rb"MAXIMUM<>/td td><colspan="2" id="rb"></td td td><colspan="2" id="rb"></td td<>>no-viewfinder still image capture.</td></tr tr><<>td><YUV/td td><id="rb"MAXIMUM<>/td td><colspan="2" id="rb"></td td td><colspan="2" id="rb"></td td<>>In-application video/image processing.</td></tr tr><><td><PRIV/td td><id="rb"PREVIEW></td td><td><>JPEG< id="rb"><MAXIMUM/td td td><colspan="2" id="rb"></td<>td>Standard ancora imaging.</td></tr tr>><<td>YUV</td td><id="rb"><PREVIEW/td td><>JPEG< td><id="rb"><MAXIMUM/td td td><colspan="2" id="rb"></td td<>>In-app processing plus still capture.</td></tr tr>><<td>PRIV</td td><id="rb"><PREVIEW/td td><>PRIV< td><id="rb"><PREVIEW/td td td><colspan="2" id="rb"></td<>td>Standard recording.</td></tr tr>><<td>PRIV</td td><id="rb"><PREVIEW/td td><>YUV< td><id="rb"><PREVIEW/td td td><colspan="2" id="rb"></td td<>>Preview più elaborazione in-app.</td></tr tr><><td><PRIV/td td><id="rb"><PREVIEW/td td>><<YUV td><id="rb">PREVIEW</td><td tdJPEG<>/td><id="rb"><MAXIMUM/td td td<>>capture plus in-app processing.</td></tr></table><br>

<h5>LIMITED-level configurazioni aggiuntive garantite</h5>

I dispositivi a livello limitato (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED) supportano almeno le combinazioni di flusso seguenti oltre a quelle per CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY LEGACY i dispositivi:

<table>tr th colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th><colspan="2" id="rb">Target 3</th rowspan="th<>rowspan="22">Case d'uso di esempio/s)</th></tr tr>><><th Type</th th><id="rb">Max size</th th><>Type</th><id="rb">Max size</th>><th Type</th th><id="rb">Max size</th></tr>><<<tr><td><PRIV/td td><id="rb"<>PREVIEW/td td><td><>PRIV< id="rb"><RECORD/td><colspan="2" id="rb"></td td<>>Registrazione video ad alta risoluzione con anteprima.</td></tr tr><><td><PRIV/td td><id="rb"PREVIEW></td td><td><>YUV< id="rb"><RECORD/td td td><colspan="2" id="rb"></td td td<>>Elaborazione video in-app ad alta risoluzione con anteprima.</td></tr tr>><<td>YUV</td td><id="rb"><PREVIEW/td td><>YUV< td><id="rb"><RECORD/td td td><colspan="2" id="rb"></td td td<>>Elaborazione video in-app a due input.</td></tr tr><<>td><PRIV/td td><id="rb"<PREVIEW>/td td<>td<><>PRIV id="rb">RECORD</td><td tdJPEG<>/td><id="rb"><RECORD/td td td<>>registrazione ad alta risoluzione con snapshot video.</td></tr tr><<>td><PRIV/td td><id="rb"PREVIEW></td td<<>><YUV> td id="rb"RECORD<>/td<>td td/td>><JPEG< id="rb"><RECORD/td td td<>>High resolution in-app processing with video snapshot.</td></tr tr><<>td><YUV/td td><id="rb"PREVIEW></td td<>YUV<>>< td id="rb">PREVIEW</td><td tdJPEG<>/td><id="rb"><MAXIMUM/td td<>>Two-input in-app processing with still capture.</td></tr></table><br>

<h5>configurazioni garantite aggiuntive< a livello COMPLETO/h5>

I dispositivi a livello COMPLETO (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL) supportano almeno le combinazioni di flusso seguenti oltre a quelle per CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED i dispositivi:

<table>tr th colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th><colspan="2" id="rb">Target 3</th rowspan="th<>rowspan="22">Case d'uso di esempio/s)</th></tr tr>><><th Type</th th><id="rb">Max size</th th>><Type</th><id="rb">Max size</th><>th Type</th th><id="rb">Max size</th></tr><<><tr><td>PRIV</td td><id="rb"/td td><td><><PRIV id="rb">MAXIMUM</td td<>colspan="2" id="rb"PREVIEW>><</td td<>>Elaborazione GPU con risoluzione massima con anteprima.</td></tr tr>><<td><PRIV/td td><id="rb"PREVIEW<>/td td<><><YUV> td id="rb"><MAXIMUM/td td td><colspan="2" id="rb"></td td td<>>Elaborazione in-app con anteprima.</td></tr tr>><<td><YUV/td td><id="rb"PREVIEW<>/td td<><><YUV> td id="rb"><MAXIMUM/td td td><colspan="2" id="rb"></td td<>>Maximum-resolution in-app processing.</td></tr tr>><<td>PRIV</td td><id="rb"<>PREVIEW/td td<<>PRIV> td id="rb"<PREVIEW>/td><td td><><JPEG id="rb"<>MAXIMUM/td td>><Video recording with maximum-size video snapshot</><td<>/tr>><<><YUV>< td td id="rb">640x480</td td><<PRIV>/td td><id="rb"PREVIEW></td td<>td><<>YUV id="rb"><MAXIMUM/td td<>>Standard registrazione video più elaborazione in-app con risoluzione massima.</td></tr tr><><td><YUV/td td><id="rb"><640x480/td td>><<YUV td><id="rb">PREVIEW</td<>td td><<>YUV id="rb"><MAXIMUM/td td<>>Preview plus two-input maximum-resolution in-app processing.</td></tr></table><br>

<h5>RAW-capability additional configurations</h5>

I dispositivi RAW-capability (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES include CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW RAW) supportano anche almeno le combinazioni di flusso seguenti in entrambi CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL i dispositivi e CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED :

<table>tr th colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th><colspan="2" id="rb">Target 3</th rowspan="th<>rowspan="22">Case d'uso di esempio/s)</th></tr tr>><><th Type</th th><id="rb">Max size</th th>><Type</th><id="rb">Max size</th><>th Type</th th><id="rb">Max size</th></tr><<><tr><td>RAW</td td><id="rb"<MAXIMUM>/td td><colspan="2" id="rb"></td td><colspan="2" id="rb"></td td td<>>No-preview DNG capture.</td></tr tr>><<td>PRIV</td td><id="rb"><PREVIEW/td td><>RAW< td><id="rb"><MAXIMUM/td td td><colspan="2" id="rb"></td td<>>Standard DNG capture.</td></tr tr>><<td>YUV</td td><id="rb"><PREVIEW/td td><>RAW< td><id="rb"><MAXIMUM/td td td><colspan="2" id="rb"></td td<>>in-app processing plus DNG capture.</td></tr tr><><td><PRIV/td td><id="rb"><PREVIEW/td td>><<PRIV td><id="rb">PREVIEW</td><td tdRAW<>/td><id="rb"><MAXIMUM/td td<>>Video recording with DNG capture.</td></tr tr><<>td><PRIV/td td><id="rb"<PREVIEW>/td td<>td<><>YUV id="rb">PREVIEW</td><td tdRAW<>/td><id="rb"><MAXIMUM/td td<>>Preview con elaborazione in-app e acquisizione DNG.</td></tr tr><><td><YUV/td td><id="rb"><PREVIEW/td td>><<YUV td><id="rb">PREVIEW</td><td tdRAW<>/td><id="rb"><MAXIMUM/td td<>>Two-input in-app processing plus DNG capture.</td></tr tr><<>td><PRIV/td td><id="rb"PREVIEW></td td<>JPEG<>>< td id="rb">MAXIMUM</td><td tdRAW<>/td><id="rb"><MAXIMUM/td td<>>ancora capture con JPEG e DNG simultanei.</td></tr tr><><td><YUV/td td><id="rb"><PREVIEW/td td>><<JPEG td><id="rb">MAXIMUM</td><td tdRAW<>/td><id="rb"><MAXIMUM/td td td<>>elaborazione in-app con JPEG e DNG simultanei.</td></tr></table><br>

<h5>burst-capability additional configurations</h5>

I dispositivi BURST-capability (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES include CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE BURST_CAPTURE) supportano almeno le combinazioni di flusso seguenti oltre a quelle per CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED i dispositivi. Si noti che tutti i dispositivi a livello COMPLETO supportano la funzionalità BURST e l'elenco seguente è un sottoinsieme rigoroso dell'elenco per i dispositivi a livello COMPLETO, quindi questa tabella è rilevante solo per i dispositivi a livello LIMITED che supportano la funzionalità di BURST_CAPTURE.

<table>tr th colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th><rowspan="2">Sample use case(s)</th/th></tr<><>th>Type</th th><id="rb">Max size</th th><>Type</th th><id="rb">Max size</th<>/tr tr><<>td><PRIV/td td><id="rb"<PREVIEW>/td td<<PRIV>>/td><<><td id="rb">MAXIMUM</td td><>Elaborazione GPU con risoluzione massima con anteprima.</td></tr tr><><td>PRIV</td td><id="rb"PREVIEW<>/td tdYUV>><< td><id="rb"><MAXIMUM/td td<>td>Maximum resolution in-app processing with preview.</td></tr tr><><td>YUV</td td><id="rb"PREVIEW<>/td tdYUV>><< td><id="rb"><MAXIMUM/td td<>td>Maximum resolution two-input in-app processing.</td></tr></table><br>

<h5>LEVEL-3 configurazioni aggiuntive garantite</h5>

LEVEL-3 (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3 LEVEL_3) supporta almeno le combinazioni di flusso seguenti oltre alle combinazioni per CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL e per la funzionalità RAW (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES include ):CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW RAW

<table>tr th colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th th><colspan="2" id="rb">Target 3</th th><colspan="2" id="2"rb">Target 4</th><rowspan="2">Sample use case(s)</th<>/tr tr<>><th>Type</th th><id="rb">Max size</th><>th Type</th th><id="rb">Max size</th>><Type</th th><id="rb><<">Max size</th th><>Type</th th><id="rb">Max size</th<>/tr tr><<>td><PRIV/td><td id="rb"><PREVIEW/td><td>PRIV< td><id="rb"><640x480/td td><><YUV td id="rb"/td td><id="rb"<MAXIMUM>/td<RAW<>> td td><id="rb"<>MAXIMUM/td td td><>In-app viewfinder analysis with with selezione dinamica del formato di output.</td></tr tr><<>td>PRIV</td td><id="rb"<>PREVIEW/td td><PRIV>< td><id="rb"640x480></td><td td><JPEG/td><id="rb"<MAXIMUM>/td td td<><RAW> id="rb"/td><td id="rb"><MAXIMUM/td td>><In-app viewfinder analysis with dynamic selection of output format.</td></tr></table><br>

<h5>Configurazioni garantite del flusso simultaneo</h5>

BACKWARD_COMPATIBLE dispositivi in grado di eseguire lo streaming simultaneamente con altri dispositivi come descritto da android.hardware.camera2.CameraManager#getConcurrentCameraIds hanno i flussi garantiti seguenti (quando lo streaming è simultaneo con altri dispositivi)

Nota: le dimensioni indicate per questi flussi simultanei sono le dimensioni massime garantite. Le dimensioni inferiori a queste, ottenute da StreamConfigurationMap#getOutputSizes per un formato specifico, sono supportate anche.

<table><tr><th colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th th><rowspan="2">Sample use case(s)</th/tr<>tr><th<>> Type</th><id="rb">Max size</th th>><Type</th th><id="rb">Max size</th<>/tr><td><YUV<>/td td><id="rb"s1440p<>/td td td><colspan="2" id="rb" ></td><td>Elaborazione video/immagine in-app.</td></tr tr><><td>PRIV</td td><id="rb"><s1440p/td td td><colspan="2" id="rb"></td td td<>>Analisi del visualizzatore in-app.</td></tr tr><><td>JPEG</td td><id="rb"><s1440p/td td td><colspan="2" id="rb"></td td<>>No viewfinder still image capture.</td></tr tr>><<td><YUV / PRIV/td td><id="rb"s720p></td td<>td><<>JPEG id="rb"><s1440p/td td<>> Standard ancora imaging.</td></tr tr><><td>YUV / PRIV</td td><id="rb"s720p<>/td tdYUV / PRIV>><< td><id="rb"><s1440p/td td td<>>Video in-app/elaborazione con anteprima.</td></tr></table><br>

I dispositivi che non sono compatibili con le versioni precedenti supportano un singolo flusso obbligatorio di dimensioni sVGA con formato DEPTH16 immagine durante l'operazione simultanea.

Per configurazioni di flusso simultanee garantite:

sVGA si riferisce alla risoluzione massima del dispositivo fotocamera per tale formato dalla StreamConfigurationMap#getOutputSizes risoluzione o VGA (640X480) a qualsiasi valore inferiore.

s720p si riferisce alla risoluzione massima del dispositivo fotocamera per tale formato da StreamConfigurationMap#getOutputSizes o 720p(1280X720) a qualsiasi livello inferiore.

s1440p si riferisce alla risoluzione massima del dispositivo fotocamera per tale formato da StreamConfigurationMap#getOutputSizes o 1440p(1920X1440) a qualsiasi livello inferiore.

La funzionalità MONOCHROME (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES include CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME MONOCHROME) dispositivi che supportano la android.graphics.ImageFormat#Y8 Y8 sostituzione YUV dei flussi con Y8 in tutte le combinazioni di flusso garantite per il livello hardware e le funzionalità del dispositivo.

I client possono accedere alle tabelle di combinazione di flusso obbligatorie precedenti tramite android.hardware.camera2.params.MandatoryStreamCombination.

I dispositivi in grado di generare formati HEIC (StreamConfigurationMap#getOutputFormats contiene android.graphics.ImageFormat#HEIC) supporteranno la sostituzione JPEG dei flussi con HEIC in tutte le combinazioni di flusso garantite per il livello hardware e le funzionalità del dispositivo. La chiamata a createCaptureSession con output JPEG e HEIC non è supportata.

<h5>combinazioni garantite di livello LEGACY aggiuntive con output< a risoluzione multipla/h5>

I dispositivi che supportano l'output a risoluzione multipla per un formato specifico ( android.hardware.camera2.params.MultiResolutionStreamConfigurationMap#getOutputInfo restituisce un elenco non vuoto) supportano l'uso MultiResolutionImageReader per i flussi di risoluzione MASSIMO di tale formato per tutte le combinazioni di flusso obbligatorie. Ad esempio, se un dispositivo fotocamera LIMITED supporta flussi di output a risoluzione multipla per e JPEGPRIVATE, oltre alle configurazioni di flusso nella tabella LIMITED e Legacy precedente, il dispositivo fotocamera supporta le combinazioni di flusso garantite seguenti (MULTI_RES nella colonna Dimensioni massime si riferisce a un MultiResolutionImageReader creato in base alle risoluzioni massime variabili supportate):

<table><tr><th colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th th><colspan="2" id="rb">Target 3</th th<>rowspan="2">Sample use case(s)</th></tr><<>tr th>Type</th th><id="rb">Max size</th th>><Type</th th><id="rb">Max size</th<>>Type</th th><id="rb" >Max size</th></tr tr><<>td><PRIV/td td><id="rb"><MULTI_RES/td td td<>colspan="2" id="rb"></td td td<>colspan="2" id="rb"></td td><>Simple preview, gpu video processing, no-preview video recording.</td></tr tr><<>td><JPEG/td td><id="rb"MULTI_RES<>/td td><colspan="2" id="rb"></td td td><colspan="2" id="rb"></td td<>>no-viewfinder still image capture.</td></tr tr><><td><PRIV/td td><id="rb"PREVIEW></td td><td><>JPEG< id="rb"><MULTI_RES/td td td><colspan="2" id="rb"></td<>td>Standard ancora imaging.</td></tr tr><><td><PRIV/td td><id="rb"><PREVIEW/td td>><<YUV td><id="rb">PREVIEW</td><td tdJPEG<>/td><id="rb"><MULTI_RES/td td td<>>capture plus in-app processing.</td></tr></table><br>

<h5>configurazioni garantite di livello LIMITATO aggiuntive con output< a risoluzione multipla/h5>

<table>tr th colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th><colspan="2" id="rb">Target 3</th rowspan="th<>rowspan="22">Case d'uso di esempio/s)</th></tr tr>><><th Type</th th><id="rb">Max size</th th><>Type</th><id="rb">Max size</th>><th Type</th th><id="rb">Max size</th></tr>><<<tr><td>YUV</td><td id="rb"<PREVIEW>/td td<>td<YUV><> id="rb">PREVIEW</td<>td td><<>JPEG id="rb"><MULTI_RES/td td td<>>Two-input in-app processing with still capture.</td></tr></table><br> La stessa logica si applica ad altri livelli e funzionalità hardware.

<h5>Combinazioni garantite aggiuntive per sensori< ULTRA_HIGH_RESOLUTION/h5>

I dispositivi con la funzionalità ULTRA_HIGH_RESOLUTION_SENSOR hanno alcune garanzie aggiuntive che i client possono sfruttare:

<table><tr><th colspan="3" id="rb">Target 1</th><colspan="3" id="rb">Target 2</th<>colspan="3" id="rb">Target 3</th rowspan="th<>rowspan="32">Case d'uso di esempio/s)</th<>/tr<>tr>><th Type</th><id="rb"> SC Map</th th><id="rb">Max size</th>><th Type</th><id="rb"> SC Map</th th><id="rb" >Max size</th<>>Type</th th><id="rb"> SC Map</th th><id="rb">Max size</th></tr tr><><td/td<>YUV / JPEG / RAW>< id="rb"><MAX_RES/td td><id="rb""rb"><MAX/td td><id="rb"<>PRIV / YUV/td td><id="rb">DEFAULT</td td><id="rb"<>PREVIEW/td td><colspan="3" id="rb"></td td><>Ultra high res capture with preview</td></tr><tr><td><YUV / JPEG / RAW/td td><id="rb"><MAX_RES/td td><id="rb">MAX</td><td id="rb"PRIV<>/td><td id="rb">DEFAULT</td><td id="rb"<PREVIEW>/td td><id="rb"><PRIV / YUV/td td><id="rb"<DEFAULT>/td><td id="rb"<RECORD>/td><td>Acquisizione res ultra elevata con anteprima + analisi< delle dimensioni RECORD basate sull'app/td/tr<>td<<>YUV / JPEG / RAW><>/td td><id="rb"<MAX_RES>/td><td id="rb"><MAX/td td id="rb"<>PRIV//td><td td><id="rb"DEFAULT></td td><id="rb">PREVIEW</td td><id="rb"JPEG / YUV / RAW<>/td><td id="rb"DEFAULT<>/td td><id="rb">MAX</td td>><Ultra high res still image capture with preview + default sensor pixel mode analysis stream</td></tr></table><br>

In questo caso, SC Map, fa riferimento a StreamConfigurationMap, è necessario scegliere tra le dimensioni del flusso di destinazione. DEFAULT fa riferimento alla modalità StreamConfigurationMap pixel del sensore predefinita e MAX_RES fa riferimento alla risoluzione StreamConfigurationMapmassima . Per MAX_RES i flussi, MAX nella Max size colonna si intende la dimensione massima da StreamConfigurationMap#getOutputSizes e StreamConfigurationMap#getHighResolutionOutputSizes. Nota: la stessa richiesta di acquisizione non deve combinare destinazioni da StreamConfigurationMaps corrispondenti a diverse modalità pixel del sensore.

<h5>output a 10 bit configurazioni aggiuntive garantite</h5>

I dispositivi con supporto CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT per l'output a 10 bit supportano almeno le combinazioni di flusso seguenti:

<table>tr th colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th><colspan="2" id="rb">Target 3</th rowspan="th<>rowspan="22">Case d'uso di esempio/s)</th></tr tr>><><th Type</th th><id="rb">Max size</th th><>Type</th><id="rb">Max size</th>><th Type</th th><id="rb">Max size</th></tr>><<<tr><td>PRIV</td td><id="rb">MAXIMUM</td<>/td td><colspan="4" id="rb"></td td<>>Simple preview, elaborazione video GPU o registrazione video senza anteprima.</td></tr tr><<>td>YUV</td td><id="rb"<>MAXIMUM/td/td<> td td><colspan="4" id="rb"></td td<>>in-application video/image processing.</td></tr tr><><td><PRIV/td td><id="rb"PREVIEW></td td><td><>JPEG< id="rb"><MAXIMUM/td td td><colspan="2" id="rb"></td<>td>Standard ancora imaging.</td></tr tr>><<td><PRIV/td td><id="rb"PREVIEW<>/td td<><><YUV> td id="rb"><MAXIMUM/td td td><colspan="2" id="rb"></td td td<>>Elaborazione in-app con anteprima.</td></tr tr>><<td><YUV/td td><id="rb"PREVIEW<>/td td<><><YUV> td id="rb"><MAXIMUM/td td td><colspan="2" id="rb"></td td<>>Maximum-resolution in-app processing.</td></tr tr>><<td>PRIV</td td><id="rb"><PREVIEW/td td><>PRIV< td><id="rb"><RECORD/td td td><colspan="2" id="rb"></td td<>>registrazione video ad alta risoluzione con anteprima.</td></tr tr><<>td><PRIV/td td><id="rb"PREVIEW></td td<>PRIV<>>< td id="rb">RECORD</td><td tdYUV<>/td><id="rb"><RECORD/td td td<>>registrazione ad alta risoluzione con snapshot in-app.</td></tr tr><<>td><PRIV/td td><id="rb"<PREVIEW>/td td<>td<><>PRIV id="rb">RECORD</td><td tdJPEG<>/td><id="rb"><RECORD/td td td<>>registrazione ad alta risoluzione con snapshot video.</td></tr></table><br>

Qui PRIV può essere formato pixel a 8 o 10 bit android.graphics.ImageFormat#PRIVATE . YUV può essere android.graphics.ImageFormat#YUV_420_888 o android.graphics.ImageFormat#YCBCR_P010. Per la colonna dimensioni massime, PREVIEW fa riferimento alla migliore corrispondenza tra le dimensioni e la risoluzione dello schermo del dispositivo o a 1080p (1920x1080), a qualsiasi valore inferiore. RECORD fa riferimento alla risoluzione massima supportata della registrazione del dispositivo fotocamera, come determinato da android.media.CamcorderProfile. MAXIMUM fa riferimento alla risoluzione di output massima del dispositivo fotocamera per tale formato o destinazione da StreamConfigurationMap#getOutputSizes(int). Si noti che combinazioni non valide, ad esempio la presenza di una superficie della fotocamera configurata per l'uso del formato android.graphics.ImageFormat#YUV_420_888 pixel con un profilo a 10 bit, causerà un errore di inizializzazione della sessione di acquisizione.

android.graphics.ImageFormat#JPEG_R può essere supportato anche se annunciato da android.hardware.camera2.params.StreamConfigurationMap. Quando si inizializza una sessione di acquisizione che include un client di output della fotocamera Jpeg/R, è necessario considerare gli elementi seguenti w.r.t. La tabella di combinazione di flusso obbligatoria a 10 bit:

<ul><li>Per generare l'immagine Jpeg/R compressa, un singolo android.graphics.ImageFormat#YCBCR_P010 output verrà usato internamente dal dispositivo fotocamera.</li><li>Nei dispositivi fotocamera in grado di supportare le richieste android.hardware.camera2.params.DynamicRangeProfiles#getProfileCaptureRequestConstraints di acquisizione simultanee a 10 e a 8 bit, verrà configurato internamente anche per android.graphics.ImageFormat#JPEG velocizzare il processo di codifica.</li></ul>

Gli output della fotocamera Jpeg/R in genere saranno in grado di supportare la risoluzione MASSIMA del dispositivo. I client possono anche chiamare StreamConfigurationMap#getOutputSizes(int) per un elenco completo delle dimensioni supportate. I client fotocamera che registrano un output Jpeg/R all'interno di una combinazione di flusso che non rientra nella tabella di flusso obbligatoria precedente possono chiamare #isSessionConfigurationSupported per garantire che questa configurazione specifica sia supportata.

<h5>STREAM_USE_CASE funzionalità aggiuntive garantite</h5>

I dispositivi con la funzionalità STREAM_USE_CASE (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES include CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE) supportano le combinazioni di flusso aggiuntive seguenti:

<table>tr th colspan="3" id="rb">Target 1</th><colspan="3" id="rb">Target 2</th><colspan="3" id="rb">Target 3</th<>rowspan=="2">Case d'uso di esempio/s)</th></tr<><>tr th>Type</th th><id="rb">Max size</th th>><Usecase</th>><th Type</th><id="rb">Max size</th Usecase</>><th><th Type>><<</th th><id="rb">Max size</th th>><Usecase</th></tr tr<<>>td<YUV / PRIV>/td td><id="rb"PREVIEW></td td><id="rb"><PREVIEW/td td<>colspan="3" id="rb"></td td<>colspan="3" id="rb"></td td><>Simple preview or in-app image processing</td<>/tr><tr><td<>YUV / PRIV/td td><id="rb">RECORD</td td><id="rb"<>VIDEO_RECORD/td td<>colspan="3" id="rb"></td td<>colspan="3" id="rb"></td td><>Simple video recording or in-app video processing</td<>/tr<>tr><tdYUV / JPEG></td td><id="rb"MAXIMUM></td td><id="rb"><STILL_CAPTURE/td td><colspan="3" id="rb"></td td<>colspan="3" id="rb"></td><td>Simple JPEG o YUV still image capture</td/tr><td<<YUV / PRIV>><>/td td><id="rb"><s1440p/td td><id="rb"<PREVIEW_VIDEO_STILL>/td td td<>colspan="3" id="rb"></td<>td td colspan="3" id="rb"></td td td td<>>Multi-purpose stream for preview, video and still image capture</td<>/tr><<><>YUV / PRIV td/td><td id="rb">s1440p</td td><id="rb"<>VIDEO_CALL/td td<>colspan="3" id="rb"></td td<>colspan="3" id="rb"></td td>><Simple video call</td<>/tr tr<>><td<>PRIV/td td><id="rb"<PREVIEW>/td td><id="rb"PREVIEW></td<>td><<>YUV / JPEG td id="rb">MAXIMUM</td td><id="rb"/>STILL_CAPTURE< td td colspan="3" id="rb"/td td td><>Preview con JPEG o YUV still image capture</td></tr td<>></td tdPRIV><>< id="rb"<><PREVIEW>/td td><id ="rb"<PREVIEW>/td td<>td>><<YUV / PRIV id="rb"RECORD<>/td td><id="rb"><VIDEO_RECORD/td td><colspan="3" id="rb"></td td td>><><Anteprima con registrazione video o elaborazione< video in-app/td></tr tr><><td>PRIV</td td><id="rb"<>PREVIEW/td td><id="rb"<PREVIEW>/td><td><YUV td><id="rb"PREVIEW></td><td id="rb"><PREVIEW/td><td colspan="3" id="rb"></td td<>>Preview con elaborazione< immagini in-applicazione/td></tr tr><<>td>PRIV</td td><id="rb">PREVIEW</td td><id="rb"/td><td td>YUV / PRIV<>< id="rb"<>s1440p/td><td id="rb">VIDEO_CALL</td td td<>colspan="3" id="rb"><><PREVIEW/td td>><Preview con video call</td<>/tr<<>>tdYUV / PRIV></td><td id="rb"><s1440p/td td><id="rb"PREVIEW_VIDEO_STILL></td td><td><><YUV / JPEG id="rb"><MAXIMUM/td td><id="rb"><STILL_CAPTURE/td td><colspan="13" id="rb"></td td td><>MultI-purpose stream with JPEG or YUV still capture</td<>/tr tr<<>>tdYUV<>/td><td id="rb"PREVIEW<>/td td><id="rb">STILL_CAPTURE</td><td>JPEG</td td><id="rb"><MAXIMUM/td td><id="rb"<>STILL_CAPTURE/td td><colspan="3" id="rb"></td td<>>YUV e JPEG concurrent image capture (for testing)</td></tr tr><<>td><PRIV/td td><id="rb"PREVIEW<>/td><td id="rb"><PREVIEW/td<>td td>YUV / PRIV</td><td id="rb"/td td><id="rb">VIDEO_RECORD</td<>td td><JPEG>< id="rb"/td td><id="rb"RECORD<>STILL_CAPTURE></td td>><Preview, video record and JPEG video snapshot</td<>/tr<>td<<>PRIV>>< td id="rb"PREVIEW><<>RECORD/td><td id="rb"/td td id="rb"PREVIEW<>/td><td><YUV/td><td id="rb">PREVIEW</td td><id="rb">PREVIEW</td<>td>JPEG< td><id="rb"MAXIMUM></td td><id="rb"<>STILL_CAPTURE/td td><>Preview, elaborazione immagini in-applicazione e immagini JPEG capture</td<>/tr></table br><>

<h5>STREAM_USE_CASE_CROPPED_RAW funzionalità aggiuntive garantite</h5>

I dispositivi che includono il caso d'uso del CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW flusso in CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESsupportano le combinazioni di flusso aggiuntive seguenti:

<table>tr th colspan="3" id="rb">Target 1</th><colspan="3" id="rb">Target 2</th><colspan="3" id="rb">Target 3</th<>rowspan=="2">Case d'uso di esempio/s)</th></tr<><>tr th>Type</th th><id="rb">Max size</th th>><Usecase</th>><th Type</th><id="rb">Max size</th Usecase</>><th><th Type>><<</th th><id="rb">Max size</th th>><Usecase</th></tr tr<<>>td<RAW>/td td><id="rb"MAXIMUM></td td><id="rb"><CROPPED_RAW/td td td><colspan=""3" id="rb"></td td<>colspan="3" id="rb"></td td td<>>Cropped RAW ancora acquisito senza preview</td<>/tr tr><><td<>PRIV / YUV/td td><id="rb">PREVIEW</td><td id="rb"PREVIEW<>/td td<>td>RAW><< id="rb"MAXIMUM<>/td td><id="rb"/td td td><colspan="3" id="rb"></td><td>Preview con RAW ritagliato ancora capture</td></tr<<>>td>PRIV / YUV</td td><id="rb"<<>PREVIEW>CROPPED_RAW/td td><id="rb"><PREVIEW/td<>td td>YUV / JPEG</td><td id="rb"/td td><id="rb"<STILL_CAPTURE>/td><td<RAW> td><id="rb"/td td><id="rb"MAXIMUM>CROPPED_RAW><</td td<>>Preview con YUV / JPEG e ritagliato RAW ancora capture</td></tr<>tdPRIV / YUV>><</td td><id="rb">PREVIEW>MAXIMUM<</td><td id="rb"PREVIEW></td><td>PRIV / YUV</td td><id="rb"PREVIEW<>/td td><id="rb">VIDEO_RECORD / PREVIEW</td<>td>RAW< td><id="rb"MAXIMUM></td td><id="rb"<>CROPPED_RAW/td td>><Video recording with preview and ritaglipped RAW still capture</td<>/table br><><>

<h5>Stabilizzazione dell'anteprima configurazioni< di flusso garantite/h5>

Per i dispositivi in cui CameraCharacteristics#CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES include CameraMetadata#CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION, le combinazioni di flusso seguenti sono garantite, per CaptureRequests dove CaptureRequest#CONTROL_VIDEO_STABILIZATION_MODE è impostato su<CameraMetadata#CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION table><tr><th colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th><rowspan ="2">Case d'uso di esempio/s)</th<>/tr tr><><th>Type</th th><id="rb">Max size</th th>><Type</th th><id="rb">Max size</th></tr><tr><td><PRIV / YUV/td td><id="rb">s1440p</td td><colspan="2" id="rb"></td<>td Stabilizzato>anteprima, elaborazione video GPU o registrazione video stabilizzata senza anteprima.</td></tr tr><><td>PRIV / YUV</td td><id="rb"<>s1440p/td td>><<JPEG / YUV td><id="rb"<>MAXIMUM/td td><>Standard ancora imaging con anteprima stabilizzata.</td></tr tr><<>td>PRIV / YUV</td td><id="rb"PREVIEW></td td<>tdPRIV / YUV><<> id="rb"<>s1440p/td td><td>Registrazione ad alta risoluzione con anteprima stabilizzata e flusso di registrazione.</td></tr></table><br>

Per la colonna dimensioni massime, PREVIEW fa riferimento alla migliore corrispondenza tra le dimensioni e la risoluzione dello schermo del dispositivo o a 1080p (1920x1080), a qualsiasi valore inferiore. RECORD fa riferimento alla risoluzione massima supportata della registrazione del dispositivo fotocamera, come determinato da android.media.CamcorderProfile. MAXIMUM fa riferimento alla risoluzione di output massima del dispositivo fotocamera per tale formato o destinazione da StreamConfigurationMap#getOutputSizes(int).

Poiché le funzionalità dei dispositivi fotocamera variano notevolmente, un determinato dispositivo fotocamera può supportare combinazioni di destinazione con dimensioni esterne a queste garanzie, ma questo può essere testato solo chiamando #isSessionConfigurationSupported o tentando di creare una sessione con tali destinazioni.

Eccezione nella risoluzione 176x144 (QCIF): i dispositivi fotocamera hanno in genere una funzionalità fissa per il ridimensionamento dalla risoluzione più grande a quella più piccola e la risoluzione QCIF a volte non è completamente supportata a causa di questa limitazione nei dispositivi con sensori di immagine ad alta risoluzione. Pertanto, il tentativo di configurare un flusso di risoluzione QCIF insieme a qualsiasi altro flusso superiore alla risoluzione 1920x1080 (larghezza o altezza) potrebbe non essere supportato e la creazione della sessione di acquisizione avrà esito negativo in caso contrario.

<h3>Rielaborazione</h3>

Se un dispositivo fotocamera supporta la rielaborazione YUV (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING) o la rielaborazione PRIVATA (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING), l'applicazione può anche creare una sessione di acquisizione riprocessabile per inviare richieste di acquisizione di rielaborazione oltre alle normali richieste di acquisizione impostando un oggetto android.hardware.camera2.params.SessionConfiguration#setInputConfiguration input configuration per la sessione. Una richiesta di acquisizione di rielaborazione accetta il buffer disponibile successivo dal Surface di input della sessione e lo invia nuovamente tramite la pipeline di elaborazione del dispositivo fotocamera per produrre buffer per le superfici di output di destinazione della richiesta. Non vengono acquisiti nuovi dati di immagine per una richiesta di rielaborazione. Tuttavia, il buffer di input fornito dall'applicazione deve essere acquisito in precedenza dallo stesso dispositivo fotocamera direttamente nella stessa sessione (ad esempio, per zero-Shutter-Lag caso d'uso) o indirettamente (ad esempio, combinando più immagini di output).

La sessione di acquisizione riprocessabile attiva determina un input Surface e il set di potenziali superfici di output per i dispositivi fotocamera per ogni richiesta di acquisizione. L'applicazione può usare #createCaptureRequest createCaptureRequest per creare richieste di acquisizione regolari per acquisire nuove immagini dal dispositivo fotocamera e usare #createReprocessCaptureRequest createReprocessCaptureRequest per creare richieste di acquisizione di rielaborazione per elaborare i buffer dall'input Surface. Alcune combinazioni di superfici di output in una sessione potrebbero non essere usate contemporaneamente in una richiesta. Le combinazioni garantite di superfici di output che possono essere usate in una richiesta contemporaneamente sono elencate nelle tabelle in #createCaptureSession createCaptureSession. Tutte le superfici di output in una richiesta di acquisizione provengono dalla stessa origine, da una nuova acquisizione dal dispositivo fotocamera o dall'input Surface a seconda che la richiesta sia una richiesta di acquisizione di rielaborazione.

È possibile eseguire query su formati e dimensioni di input supportati dal dispositivo fotocamera tramite StreamConfigurationMap#getInputFormats e StreamConfigurationMap#getInputSizes. Per ogni formato di input supportato, il dispositivo fotocamera supporta un set di formati di output e dimensioni per la rielaborazione che possono essere sottoposti a query tramite StreamConfigurationMap#getValidOutputFormatsForInput e StreamConfigurationMap#getOutputSizes. Anche se le superfici di output con formati che non sono destinazioni di output di rielaborazione valide per la configurazione di input possono far parte di una sessione, non possono essere usate come destinazioni per una richiesta di rielaborazione.

Poiché l'applicazione non può accedere direttamente alle android.graphics.ImageFormat#PRIVATE immagini, un output Surface creato da android.media.ImageReader#newInstance con perché android.graphics.ImageFormat#PRIVATE il formato verrà considerato come destinato all'uso per rielaborare l'input e pertanto le android.media.ImageReader dimensioni devono corrispondere a una delle dimensioni di input supportate per android.graphics.ImageFormat#PRIVATE il formato. In caso contrario, la creazione di una sessione di acquisizione riprocessabile avrà esito negativo.

A partire dal livello API 30, la ricreazione di una sessione di acquisizione riprocessabile scarica tutti i buffer accodati ma non ancora elaborati dalla superficie di input.

Le configurazioni nelle tabelle seguenti sono garantite per la creazione di una sessione di acquisizione riprocessabile se il dispositivo fotocamera supporta la rielaborazione YUV o la rielaborazione PRIVATE. Tuttavia, non tutte le destinazioni di output usate per creare una sessione rielaborabile possono essere usate contemporaneamente.CaptureRequest Per i dispositivi che supportano solo 1 destinazione di output in una rielaborazione CaptureRequest, l'invio di una rielaborazione CaptureRequest con più destinazioni di output comporterà un risultato CaptureFailure. Per i dispositivi che supportano più destinazioni di output in una rielaborazione CaptureRequest, le destinazioni di output garantite che possono essere incluse in un oggetto CaptureRequest contemporaneamente sono elencate nelle tabelle #createCaptureSession createCaptureSessionin . Ad esempio, con un dispositivo con funzionalità FULL (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL) che supporta la rielaborazione PRIVATE, un'applicazione può creare una sessione di acquisizione riprocessabile con 1 input, (PRIV, MAXIMUM) e 3 output, (, MAXIMUM), (PRIVPRIV, PREVIEW) e (YUV, MAXIMUM). Tuttavia, non è garantito che un'applicazione possa inviare un'acquisizione regolare o rielaborare con output (PRIV, MAXIMUM) e (YUV, MAXIMUM) in base alla tabella elencata in #createCaptureSession createCaptureSession. In altre parole, usare le tabelle seguenti per determinare le configurazioni di flusso garantite per la creazione di una sessione di acquisizione rielaborabile e usare le tabelle in #createCaptureSession createCaptureSession per determinare le destinazioni di output garantite che possono essere inviate contemporaneamente in una normale o rielaborazione CaptureRequest .

La rielaborazione con destinazioni di output a 10 bit nei dispositivi con supporto a CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT 10 bit non è supportata. Il tentativo di inizializzare una sessione di acquisizione aggiornabile con una o più configurazioni di output impostate OutputConfiguration#setDynamicRangeProfile per l'uso di un profilo android.hardware.camera2.params.DynamicRangeProfiles di intervallo dinamico a 10 bit attiverà IllegalArgumentException.

<style scoped> #rb { border-right-width: thick; }</style>

I dispositivi a livello LIMITATO (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED) supportano almeno le combinazioni di flusso seguenti per la creazione di una sessione di acquisizione riprocessabile oltre a quelle elencate in precedenza per le normali acquisizioni per CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED i dispositivi:

<table><tr><th colspan="11">LIMITED-level additional configurations for creating a reprocessable capture session<br>(PRIV input is guaranteed only if PRIVATE reprocessing is supported. YUV input è garantito solo se la rielaborazione YUV è supportata)</th></tr tr>><<th colspan="2" id="rb">Input</th th><colspan="2" id="rb">Target 1</th><colspan="2" id="rb">Target 2</th><colspan="2" id=" rb">Target 3</th><colspan="2" id="rb">Target 4</th><rowspan="2">Sample use case(s)</th></tr tr><><th>Type</th th><id="rb">Max size</th thth>><Type</th><id="rb">Max size</th><>th Type</th><th id="rb">Max size</th th><>Type</th th><id="rb">Max size</th>><Type</th th><id="rb" >Max size</th></tr tr>><<td>/YUVPRIV</td td><id="rb">MAXIMUM</td<>td td>Same as input</td><td id="rb"/td<>td<>JPEG td><id="rb">MAXIMUM</td td>><< td><id="rb"></td<>td>< td><id="rb"MAXIMUM>><</td td td td<>>No-viewfinder reprocessing.</td></tr tr><><td>YUVPRIV/</td td><id="rb"><MAXIMUM/td td>><same as input</td><td id="rb"<>MAXIMUM/td><td><><PRIV td id="rb"PREVIEW<>/td tdJPEG><>< td id="rb"/td><td id="rb"><MAXIMUM/td>><<>< id="rb"></td><td>ZSL(Zero-Shutter-Lag) ancora imaging.</td></tr tr><><td>YUVPRIV/</td td><id="rb"><MAXIMUM/td td>><same as input</td><td id="rb"<>MAXIMUM/td><td><><YUV td id="rb"PREVIEW<>/td tdJPEG><>< td id="rb"/td><td id="rb"><MAXIMUM/td>><<>< id="rb"></td><td>ZSL ancora e nell'elaborazione dell'immagine in-app.</td></tr tr>><<td></PRIVYUV/td td><id="rb"><MAXIMUM/td td<>>same as input</td td><id="rb"MAXIMUM<>/td<>td td><><YUV id="rb"/td td<>YUV td id="rb"<PREVIEW>/td<>td><id="rb"><PREVIEW/td><td>JPEG< td><id="rb">MAXIMUM</td><elaborazione in-app Td>ZSL con ancora acquisizione.</td></tr></table><br>

I dispositivi a livello COMPLETO (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL) supportano almeno le combinazioni di flusso seguenti per la creazione di una sessione di acquisizione riprocessabile oltre a quelle per CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED i dispositivi:

<table><tr><th colspan="11">Configurazioni aggiuntive a livello COMPLETO per la creazione di una sessione<di acquisizione riprocessabile br>(PRIV l'input è garantito solo se è supportata la rielaborazione PRIVATE. YUV input è garantito solo se la rielaborazione YUV è supportata)</th></tr tr><<>th colspan="2" id="rb">Input</th th><colspan="2" id="rb">Target 1</th><colspan="2" id="rb">Target 2</th th><colspan="2" id="rb">Target 3</th><colspan="2" id="rb">Target 4</th><rowspan="2">Sample use case(s)</th></tr><<>>th Type</th th><id="rb">Max size</th>><Type</th><id="rb">Max size</>><th th Type</th th><id="rb">Max size</th th><>Type</th th><id="rb">Max size</th>><th Type</th th><id="rb"Max> size/th/tr tr><<>tdYUV<>/td td><id="rb"MAXIMUM<>/td td><td>YUV><< id="rb"/td><><<PRIV> id="rb"/td td td><<> id="rb"PREVIEW></td td><id="rb"></td<>td>< td><id="rb">><MAXIMUM</td><td td>Maximum-resolution multi-frame image fusion in-app con normale anteprima.<><</td></tr tr><><td>YUV</td td><id="rb"><MAXIMUM/td td<>><YUV td><id="rb"/td<>td td<YUV>/td><id="rb"><PREVIEW/td td td><td><>< id="rb"></td td<>>< td id="rb"/td td><td id="rb"><<MAXIMUM>/td><td>Maximum-frame image fusion elaborazione in-app a due input.</td></tr tr><><td>YUVPRIV/</td td><id="rb"><MAXIMUM/td td>><same as input</td><td id="rb"<>MAXIMUM/td><td><><PRIV td id="rb"PREVIEW<>/td tdYUV><>< td id="rb"/td><td id="rb"><RECORD/td>><<>< id="rb"></td><td>Elaborazione video in-app ad alta risoluzione con anteprima regolare.</td></tr tr><<>td><PRIV/td td><id="rb"MAXIMUM></td td<PRIV<>> td><id="rb"/td<>td td>PRIV</td><id="rb"><PREVIEW/td td td<>td<>YUV>< id="rb"<MAXIMUM>/td><td>< td id="rb"/td td><id="rb"<><MAXIMUM>/td><td>Maximum-resolution Elaborazione in-app ZSL con anteprima regolare.</td></tr tr><<>td><PRIV/td td><id="rb"MAXIMUM></td td<PRIV<>> td><id="rb"/td<>td td>YUV</td><id="rb"><PREVIEW/td td td<>td<>YUV>< id="rb"<MAXIMUM>/td><td>< td id="rb"/td td><id="rb"<><MAXIMUM>/td><td>Maximum-resolution elaborazione in-app ZSL a due input.</td></tr tr>><<td></PRIVYUV/td td><id="rb"><MAXIMUM/td td<>>same as input</td td><id="rb"MAXIMUM<>/td<>td td><><PRIV id="rb"/td td<>YUV td id="rb"<PREVIEW>/td<>td><id="rb"><PREVIEW/td><td>JPEG< td><id="rb">MAXIMUM</td><Td>ZSL continua a acquisire e elaborare in-app.</td></tr></table><br>

Le funzionalità RAW (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES include CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW RAW) supportano anche almeno le combinazioni di flusso seguenti per la creazione di una sessione di acquisizione riprocessabile in entrambi CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL i dispositivi e CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED

<table><tr><th colspan="11">RAW-capability additional configurations for creating a reprocessable capture session<br>(PRIV input is guaranteed only if PRIVATE reprocessing is supported. YUV l'input è garantito solo se la rielaborazione YUV è supportata)</th></tr tr>><<th colspan="2" id="rb">Input</th th><colspan="2" id="rb">Target 1</th><colspan="2" id="rb">Target 2</th><colspan="2" id="rb">Target 3</th><colspan="2" id="rb"Target 4</th><rowspan="2">Sample use case(s)</th<>/tr tr>><<th>Type</th th><id="rb">>Max size</thth><th>Type</th><id="rb">Max size</th><>th Type</th th><id="rb">Max size</th th><>Type</th th><id="rb">Max size</th>><Type</th th><id="rb">Max size</th></tr tr><<>td/>PRIVYUV</td td><id="rb"<>MAXIMUM/td<>td td>Same as input</td><td id="rb"<MAXIMUM>/td><tdYUV>< td><id="rb"PREVIEW<>/td td<>RAW>< td><id="rb">MAXIMUM</td>><<>< id="rb"/td td td id="rb"></td td td><>mutually exclusive ZSL elaborazione in-app e acquisizione DNG.</td></tr tr>><<td></PRIVYUV/td td><id="rb"><MAXIMUM/td td<>>same as input</td td><id="rb"MAXIMUM<>/td<>td td><><PRIV id="rb"/td td<>YUV td id="rb"<PREVIEW>/td<>td><id="rb"><PREVIEW/td><td>RAW< td><id="rb">MAXIMUM</td><td>Elaborazione in-app con ZSL a esclusione reciproca e anteprima con acquisizione DNG.</td></tr tr>><<td></PRIVYUV/td td><id="rb"><MAXIMUM/td td<>>same as input</td td><id="rb"MAXIMUM<>/td<>td td><><YUV id="rb"/td td<>YUV td id="rb"<PREVIEW>/td<>td><id="rb"><PREVIEW/td><td>RAW< td><id="rb">MAXIMUM</td><td>ZSL a due input di elaborazione in-app e acquisizione DNG a vicenda.</td></tr tr>><<td></PRIVYUV/td td><id="rb"><MAXIMUM/td td<>>same as input</td td><id="rb"MAXIMUM<>/td<>td td><><PRIV id="rb"/td td<>JPEG td id="rb"<PREVIEW>/td<>td><id="rb"><MAXIMUM/td><td>RAW< td><id="rb">MAXIMUM</td><td>ZSL che si escludono a vicenda ancora l'acquisizione e l'anteprima con acquisizione DNG.</td></tr tr>><<td></PRIVYUV/td td><id="rb"><MAXIMUM/td td<>>same as input</td td><id="rb"MAXIMUM<>/td<>td td><><YUV id="rb"/td td<>JPEG td id="rb"<PREVIEW>/td<>td><id="rb"><MAXIMUM/td><td>RAW< td><id="rb">MAXIMUM</td><td>Elaborazione in-app con ZSL a esclusione reciproca con acquisizione e acquisizione DNG.</td></tr></table><br>

I dispositivi LEVEL-3 (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3 LEVEL_3) supportano almeno le combinazioni di flusso seguenti per la creazione di una sessione di acquisizione riprocessabile oltre a quelle per CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL i dispositivi. Si noti che mentre la seconda configurazione consente la configurazione MAXIMUMYUV e JPEG gli output contemporaneamente, tale configurazione non è elencata per le normali sessioni di acquisizione e pertanto l'output simultaneo a entrambe le destinazioni non è consentito.

<table><tr><th colspan="13">LEVEL-3 configurazioni aggiuntive garantite per la creazione di una sessione<di acquisizione riprocessabile br>(PRIV l'input è garantito solo se è supportata la rielaborazione PRIVATE. YUVl'input è sempre garantito.</th/tr tr><><th>< colspan="2" id="rb">Input</th th><colspan="2" id="rb">Target 1</th><colspan="2" id="rb">Target 2</th><colspan="2" id="rb">Target 3< /th th><colspan="2" id="rb">Target 4</th><colspan="2" id="rb">Target 5</th><rowspan="2">Sample use case(s)</th<>/tr tr><><th>Type</th><id="rb">Max size</th><th>Type</th th><id="rb">Max size</th><>th Type</th><id="rb">Max size</th th><>Type</th th><id="rb">Max size</th Type/th><th th>Type</th th><id="rb">Max size</th th><>Type</th><id="rb">Max size</th></tr<>td<<>YUV> td><id="rb"MAXIMUM<>/td td<>td/td td>YUV<>< id="rb" >MAXIMUM</td td><PRIV<>/td td><id="rb"PREVIEW<>/td td<>tdPRIV><<> id="rb">640x480</td<>td tdRAW<> td><id="rb">MAXIMUM</td td td><>< id="rb"/td td><id="rb"></td td td<>>Analisi in-app con ZSL e RAW.</td></tr tr>><<td></PRIVYUV/td td><id="rb"><MAXIMUM/td td<>>same as input</td td><id="rb"MAXIMUM<>/td<>td td><><PRIV id="rb"/td td<>PRIV td id="rb"<PREVIEW>/td<>td><id="rb"><640x480/td><td>RAW< td><id="rb">MAXIMUM</td><td>JPEG</td td><id="rb">MAXIMUM</td td><>In-app viewfinder analysis with ZSL, RAW e JPEG reprocessing output.</td></tr></table><br>

Se un dispositivo fotocamera supporta l'output di input a risoluzione multipla e multi-risoluzione YUVYUV o supporta PRIVATE l'output di input e PRIVATE risoluzione multipla, le combinazioni di flusso obbligatorie aggiuntive per i dispositivi LIMITED e FULL sono elencate di seguito (MULTI_RES nella colonna Dimensioni massime si riferisce a per l'output MultiResolutionImageReader e a una risoluzione InputConfiguration multipla per l'input): <tabella<>tr><th colspan="11">Configurazioni aggiuntive di livello LIMITATO per la creazione di una sessione di acquisizione riprocessabile con input a risoluzione multipla e output<a risoluzione multipla br>(PRIV l'input è garantito solo se è supportata la rielaborazione PRIVATE. YUV l'input è garantito solo se la rielaborazione YUV è supportata)</th></tr tr><<>th colspan="2" id="rb">Input</th th><colspan="2" id="rb">Target 1</th><colspan="2" id="rb">Target 2</th><th colspan="2" id="rb"Target 3/th th><colspan="2" id="rb">Target 4</th th><rowspan="2">Sample use case(s)</th></tr><tr><th>Type</th th th><id="rb">Max size</th><>th Type</><th id="rb">Max size/th th><>Type</th th><id="rb">Max size</th><>th Type</th th><id="rb">Max size<</th th><>Type/<<> th><id="rb">Max size</th></tr><td<<>/>PRIVYUV/td td><id="rb"><MULTI_RES/td><td>same as input</td td><id="rb"MULTI_RES<>/td td td>JPEG><</td td><id="rb"/td td<>td><>< id="rb"></td td><td><>< id="rb">><MULTI_RES</td td td><>no-viewfinder image rielaborazione.</td></tr tr><><td>YUVPRIV/</td td><id="rb"><MULTI_RES/td td>><same as input</td><td id="rb"<>MULTI_RES/td><td><><PRIV td id="rb"PREVIEW<>/td tdJPEG><>< td id="rb"/td><td id="rb"><MULTI_RES/td>><<>< id="rb"></td><td>ZSL(Zero-Shutter-Lag) ancora imaging.</td></tr tr><><td>YUVPRIV/</td td><id="rb"><MULTI_RES/td td>><same as input</td><td id="rb"<>MULTI_RES/td><td><><YUV td id="rb"PREVIEW<>/td tdJPEG><>< td id="rb"/td><td id="rb"><MULTI_RES/td>><<>< id="rb"></td><td>ZSL ancora e nell'elaborazione dell'immagine in-app.</td></tr tr>><<td></PRIVYUV/td td><id="rb"><MULTI_RES/td td<>>same as input</td td><id="rb"MULTI_RES<>/td<>td td><><YUV id="rb"/td td<>YUV td id="rb"<PREVIEW>/td<>td><id="rb"><PREVIEW/td><td>JPEG< td><id="rb">MULTI_RES</td><elaborazione in-app Td>ZSL con ancora acquisizione.</td></tr></table br><table>><<tr><th colspan="11">Configurazioni garantite a livello COMPLETO per la creazione di una sessione di acquisizione riprocessabile con input a risoluzione multipla e output<a risoluzione multipla br>(PRIV l'input è garantito solo se è supportata la rielaborazione PRIVATE. YUV L'input è garantito solo se la rielaborazione YUV è supportata)</th></tr tr><><th colspan="2" id="rb" >Input</th th><colspan="2" id="rb">Target 1</th><colspan="2" id="rb">Target 2</th><colspan="2" id="rb">Target 3</th><colspan ="2" id="rb">Target 4</th><rowspan="2">Sample use case(s)</th></tr tr<>><th>Type</th th><id="rb">Max size</th>><Type</th th><id="rb">Max size/< th><Type/th th><id="rb">Max size</th>><th Type</th th><id="rb">Max size</th th><>Type</th th><id="rb">Max size</th></tr>><<td<PRIV>/td td><id="rb"<MULTI_RES>/td td<>td><<>PRIV id="rb"/td td id="rb"<MULTI_RES>/td<><<PRIV>> td td id=<>"rb"><PREVIEW/td<>td>YUV</td td><id="rb"<>MULTI_RES/td<>td td><>< id="rb"></td td td<>>Maximum-resolution ZSL in-app processing with regular preview.</td></tr tr><<>td><PRIV/td td><id="rb"MULTI_RES></td td<PRIV<>> td><id="rb"/td<>td td>YUV</td><id="rb"><PREVIEW/td td td<>td<>YUV>< id="rb"<MULTI_RES>/td><td>< td id="rb"/td td><id="rb"<><MULTI_RES>/td><td>Maximum-resolution elaborazione in-app ZSL a due input.</td></tr tr>><<td></PRIVYUV/td td><id="rb"><MULTI_RES/td td<>>same as input</td td><id="rb"MULTI_RES<>/td<>td td><><PRIV id="rb"/td td<>YUV td id="rb"<PREVIEW>/td<>td><id="rb"><PREVIEW/td><td>JPEG< td><id="rb">MULTI_RES</td><Td>ZSL continua a acquisire e elaborare in-app.</td></tr></table><br>

I dispositivi con la funzionalità di ULTRA_HIGH_RESOLUTION_SENSOR hanno alcune garanzie aggiuntive che i client possono sfruttare:

<table><tr><th colspan="13">Combinazioni garantite aggiuntive per sensori ULTRA_HIGH_RESOLUTION (gli input YUV /PRIV sono garantiti solo se sono supportati YUV /PRIVATE reprocessing)</th></tr tr>><<th colspan="3" id="rb">Input</th th><colspan="3" id="rb">Target 1</th th<>colspan="3" id="rb">Target 2</th th><colspan="3" id="rb">Target 3</th><rowspan="2">Case d'uso di esempio/s)</th></tr tr>>><<th Type/th><id="rb"> SC Map</th th><id="rb">Max size</th th><>Type<</th><id="rb"> SC Map</th th id=""th><id="rb">Max size/>><th th Type</th><th id="rb"> SC Map</th th><id="rb">Max size<</th><>th Type</th th><id="rb"> SC Map</th><th id="rb" >Max size</th></tr tr><><tdRAW<>/td td><id="rb"<>MAX_RES/td td><id="rb"<MAX>/td td><td<>><RAW id="rb"<MAX_RES>/td td id="rb"/td td id="rb"MAX<>/tdd><><td id="rb"<>PRIV / YUV/td td><id="rb"DEFAULT></td td><id="rb">PREVIEW</td td><colspan="3" id="rb"></td td><>RAW remosaic rielaborazione con anteprima</td></tr tr>><<td<RAW>/td td><id="rb"MAX_RES></td><td id="rb"<MAX>/tdRAW><>><< id="rb"MAX_RES></td td><id="rb"<MAX>/td td><id="rb"/td td id="><DEFAULT><rb"PRIV / YUV<>/td><td id="rb"PREVIEW<>/td><td id="rb">JPEG / YUV</td td><id="rb">MAX_RES</td td><id="rb">MAX</td><td td>Ultra high res RAW -> JPEG / YUV con anteprima</td<>/tr tr><<>td<>YUV / PRIV/td><id="rb"MAX_RES></td><td id="rb"><MAX/td<>td><YUV / PRIV td id="rb"<>MAX_RES/><td td><id="rb"/>MAX< td><td id="rb"/td td><id="rb"<DEFAULT>/td td><id="rb"PREVIEW></td td><id="rb"<<>YUV / PRIV>JPEG/td td id="rb"<>MAX_RES/td td><id="rb"><MAX/td td<>> Ultra high res PRIV / YUV -> YUV / JPEG rielaborazione con anteprima</td<>></tr<>/table><br separata> Nessuna combinazione di flusso obbligatoria aggiuntiva per la funzionalità RAW e il livello hardware LEVEL-3. </p>

<h3>Registrazione ad alta velocità< vincolata/h3>

L'applicazione può usare un android.hardware.camera2.params.SessionConfiguration#SESSION_REGULAR normal capture session oggetto per l'acquisizione ad alta velocità se gli intervalli FPS ad alta velocità desiderati vengono annunciati da CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES, nel qual caso si applica tutta la semantica dell'API associata alle normali sessioni di acquisizione.

Un android.hardware.camera2.params.SessionConfiguration#SESSION_HIGH_SPEED high-speed capture session può essere usato per la registrazione video ad alta velocità (>=120fps) quando il dispositivo fotocamera supporta funzionalità video ad alta velocità (ad esempio, CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES contiene CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO). Una sessione di acquisizione ad alta velocità vincolata presenta limitazioni speciali rispetto a una normale sessione di acquisizione:

<ul>

<li>Oltre alla destinazione di output Surface requisiti specificati in precedenza per le acquisizioni regolari, una sessione di acquisizione ad alta velocità supporterà solo fino a 2 superfici di output, anche se l'applicazione potrebbe scegliere di configurare solo un Surface (ad esempio, solo anteprima). Tutte le superfici devono essere superfici del codificatore video (acquisite da android.media.MediaRecorder#getSurface o android.media.MediaCodec#createInputSurface) o superfici di anteprima (ottenute da android.view.SurfaceView, android.graphics.SurfaceTexture tramite android.view.Surface#Surface(android.graphics.SurfaceTexture)). Le dimensioni Surface devono essere una delle dimensioni segnalate da StreamConfigurationMap#getHighSpeedVideoSizes. Quando sono configurate più superfici, le dimensioni devono essere uguali.</li>

<li>Una sessione di acquisizione ad alta velocità attiva accetta solo elenchi di richieste creati tramite CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestListe l'elenco di richieste può essere inviato solo a questa sessione tramite CameraCaptureSession#captureBurst captureBursto CameraCaptureSession#setRepeatingBurst setRepeatingBurst.</li>

<li>Gli intervalli FPS richiesti a questa sessione devono essere selezionati da StreamConfigurationMap#getHighSpeedVideoFpsRangesFor. L'applicazione può comunque usare CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE per controllare l'intervallo FPS desiderato. Il passaggio a un intervallo FPS diverso android.util.Range#getUpper() maximum FPS può attivare alcune riconfigurazioni del dispositivo fotocamera, che possono introdurre una latenza aggiuntiva. È consigliabile che l'applicazione eviti il maggior numero possibile di modifiche al fps di destinazione massimo non necessarie durante lo streaming ad alta velocità.</li>

<li>Per gli elenchi di richieste inviati a questa sessione, il dispositivo fotocamera sostituirà CaptureRequest#CONTROL_MODE control mode, l'esposizione automatica (AE), il bilanciamento del bianco automatico (AWB) e lo stato attivo automatico (AF) rispettivamente a CameraMetadata#CONTROL_MODE_AUTO, CameraMetadata#CONTROL_AE_MODE_ONCameraMetadata#CONTROL_AWB_MODE_AUTO e CameraMetadata#CONTROL_AF_MODE_CONTINUOUS_VIDEO. Tutti i controlli in modalità blocco post-elaborazione verranno sottoposti a override per essere FAST. Pertanto, non è possibile controllare manualmente i parametri di acquisizione e post-elaborazione. Accanto a questi, solo un subset di controlli funzionerà, vedere CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO per altri dettagli.</li>

</ul>

per android.hardware.camera2.CameraDevice.createCaptureSession(android.hardware.camera2.params.SessionConfiguration).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a

CreateCaptureSession(IList<Surface>, CameraCaptureSession+StateCallback, Handler)

[Android.Runtime.Register("createCaptureSession", "(Ljava/util/List;Landroid/hardware/camera2/CameraCaptureSession$StateCallback;Landroid/os/Handler;)V", "GetCreateCaptureSession_Ljava_util_List_Landroid_hardware_camera2_CameraCaptureSession_StateCallback_Landroid_os_Handler_Handler")]
public abstract void CreateCaptureSession(System.Collections.Generic.IList<Android.Views.Surface> outputs, Android.Hardware.Camera2.CameraCaptureSession.StateCallback callback, Android.OS.Handler? handler);
[<Android.Runtime.Register("createCaptureSession", "(Ljava/util/List;Landroid/hardware/camera2/CameraCaptureSession$StateCallback;Landroid/os/Handler;)V", "GetCreateCaptureSession_Ljava_util_List_Landroid_hardware_camera2_CameraCaptureSession_StateCallback_Landroid_os_Handler_Handler")>]
abstract member CreateCaptureSession : System.Collections.Generic.IList<Android.Views.Surface> * Android.Hardware.Camera2.CameraCaptureSession.StateCallback * Android.OS.Handler -> unit

Parametri

outputs
IList<Surface>
handler
Handler
Attributi

Commenti

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a