CameraDevice.CreateCaptureSession Método

Definição

Sobrecargas

Nome Description
CreateCaptureSession(SessionConfiguration)

Crie um novo CameraCaptureSession usando um SessionConfiguration objeto auxiliar que agrega todos os parâmetros com suporte.

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

CreateCaptureSession(SessionConfiguration)

Crie um novo CameraCaptureSession usando um SessionConfiguration objeto auxiliar que agrega todos os parâmetros com suporte.

[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

Parâmetros

config
SessionConfiguration

Uma configuração de sessão (consulte SessionConfiguration).

Atributos

Comentários

Crie um novo CameraCaptureSession usando um SessionConfiguration objeto auxiliar que agrega todos os parâmetros com suporte.

A sessão de captura ativa determina o conjunto de possíveis Surfaces de saída para o dispositivo de câmera para cada solicitação de captura. Uma determinada solicitação pode usar todas ou apenas algumas das saídas. Depois que a CameraCaptureSession for criada, as solicitações poderão ser enviadas com CameraCaptureSession#capture capture, CameraCaptureSession#captureBurst captureBurst, CameraCaptureSession#setRepeatingRequest setRepeatingRequestou CameraCaptureSession#setRepeatingBurst setRepeatingBurst.

Superfícies adequadas para inclusão como saída de câmera podem ser criadas para vários casos de uso e destinos:

<ul>

<li>Para desenhar em umandroid.view.SurfaceView SurfaceView: Depois que o Surface do SurfaceView forandroid.view.SurfaceHolder.Callback#surfaceCreated created, defina o tamanho do Surface com android.view.SurfaceHolder#setFixedSize um dos tamanhos retornados StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(SurfaceHolder.class) e obtenha o Surface chamando android.view.SurfaceHolder#getSurface. Se o tamanho não for definido pelo aplicativo, ele será arredondado para o tamanho mais próximo com suporte inferior a 1080p, pelo dispositivo de câmera.</li>

<li>Para acessar por meio de uma textura OpenGL por meio de umandroid.graphics.SurfaceTexture SurfaceTexture: Defina o tamanho do SurfaceTexture com android.graphics.SurfaceTexture#setDefaultBufferSize um dos tamanhos retornados StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(SurfaceTexture.class) antes de criar um Surface do SurfaceTexture com Surface#Surface(SurfaceTexture). Se o tamanho não for definido pelo aplicativo, ele será definido como o menor tamanho com suporte menor que 1080p, pelo dispositivo de câmera.</li>

<li>Para gravação com android.media.MediaCodec: Chamar android.media.MediaCodec#createInputSurface depois de configurar o codec de mídia para usar um dos tamanhos retornados por StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(MediaCodec.class)</li>

<li>Para gravação com android.media.MediaRecorder: Chame android.media.MediaRecorder#getSurface depois de configurar o gravador de mídia para usar um dos tamanhos retornados por StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(MediaRecorder.class), ou configurá-lo para usar um dos compatíveis android.media.CamcorderProfile CamcorderProfiles.</li>

<li>Para acesso a dados RAW, YUV descompactados ou JPEG compactados no aplicativo: crie um android.media.ImageReader objeto com um dos formatos de saída com suporte fornecidos por StreamConfigurationMap#getOutputFormats(), definindo seu tamanho como um dos tamanhos correspondentes com suporte passando o formato de saída escolhido para StreamConfigurationMap#getOutputSizes(int). Em seguida, obtenha um android.view.Surface dele com android.media.ImageReader#getSurface(). Se o tamanho do ImageReader não estiver definido como um tamanho com suporte, ele será arredondado para um tamanho com suporte inferior a 1080p pelo dispositivo de câmera. </li>

</ul>

O dispositivo de câmera consultará o tamanho e os formatos de cada Surface nessa chamada, portanto, eles devem ser definidos como uma configuração válida no momento.

Pode levar várias centenas de milissegundos para que a configuração da sessão seja concluída, já que o hardware da câmera pode precisar ser ativado ou reconfigurado. Depois que a configuração for concluída e a sessão estiver pronta para realmente capturar dados, o retorno de CameraCaptureSession.StateCallback#onConfigured chamada fornecido CameraCaptureSession.StateCallbackserá chamado.

Se uma CameraCaptureSession anterior já existir quando esse método for chamado, a sessão anterior não poderá mais aceitar novas solicitações de captura e será fechada. Todas as solicitações de captura em andamento feitas na sessão anterior serão concluídas antes de serem fechadas. CameraCaptureSession.StateCallback#onConfigured para a nova sessão pode ser invocada antes CameraCaptureSession.StateCallback#onClosed de ser invocada para a sessão anterior. Depois que a nova sessão for CameraCaptureSession.StateCallback#onConfigured configured, ela poderá começar a capturar suas próprias solicitações. Para minimizar o tempo de transição, a CameraCaptureSession#abortCaptures chamada pode ser usada para descartar as solicitações restantes para a sessão de captura anterior antes de uma nova ser criada. Observe que, depois que a nova sessão for criada, a antiga não poderá mais ter suas capturas anuladas.

O uso de saídas de resolução maiores ou mais saídas pode resultar em uma taxa de saída mais lenta do dispositivo.

A configuração de uma sessão com uma lista vazia ou nula fechará a sessão atual, se houver. Isso pode ser usado para liberar as superfícies de destino da sessão atual para outro uso.

Essa função gera um IllegalArgumentException se chamado com um SessionConfiguration sem retornos de chamada de estado ou superfícies de saída válidas. As únicas exceções são saídas de SurfaceView ou SurfaceTexture adiadas. Consulte OutputConfiguration#OutputConfiguration(Size, Class) para obter detalhes.

<h3>Captura< regular/h3>

Embora qualquer um dos tamanhos de possa ser usado quando um único fluxo de StreamConfigurationMap#getOutputSizes saída é configurado, um determinado dispositivo de câmera pode não ser capaz de dar suporte a todas as combinações de tamanhos, formatos e destinos quando várias saídas são configuradas ao mesmo tempo. As tabelas abaixo listam as resoluções máximas garantidas para combinações de fluxos e destinos, considerando os recursos do dispositivo de câmera. Eles são válidos para quando o android.hardware.camera2.params.SessionConfiguration#setInputConfiguration input configuration não está definido e, portanto, nenhum reprocessamento está ativo.

Se um aplicativo tentar criar uma sessão usando um conjunto de destinos que excedem os limites descritos nas tabelas abaixo, uma das três possibilidades poderá ocorrer. Primeiro, a sessão pode ser criada com êxito e funcionar normalmente. Em segundo lugar, a sessão pode ser criada com êxito, mas o dispositivo de câmera não atenderá às garantias de taxa de quadros, conforme descrito em StreamConfigurationMap#getOutputMinFrameDuration. Ou terceiro, se o conjunto de saída não puder ser usado, a criação da sessão falhará totalmente, com CameraCaptureSession.StateCallback#onConfigureFailed a invocação.

Para a coluna de tipo, PRIV refere-se a qualquer destino cujos tamanhos disponíveis são encontrados usando StreamConfigurationMap#getOutputSizes(Class) sem formato visível para o aplicativo direto, YUV refere-se a um Surface de destino usando o android.graphics.ImageFormat#YUV_420_888 formato, JPEG refere-se ao android.graphics.ImageFormat#JPEG formato e RAW refere-se ao android.graphics.ImageFormat#RAW_SENSOR formato.

Para a coluna de tamanho máximo, PREVIEW refere-se à melhor correspondência de tamanho à resolução de tela do dispositivo ou a 1080p (1920x1080), o que for menor. RECORD refere-se à resolução máxima de gravação com suporte do dispositivo de câmera, conforme determinado por android.media.CamcorderProfile. E MAXIMUM refere-se à resolução de saída máxima do dispositivo de câmera para esse formato ou destino de StreamConfigurationMap#getOutputSizes.

Para usar essas tabelas, determine o número e os formatos/destinos das saídas necessárias e localize as linhas da tabela com esses destinos. Os tamanhos indicam o conjunto máximo de tamanhos que podem ser usados; é garantido que, para esses destinos, os tamanhos listados e qualquer coisa menor da lista fornecida podem StreamConfigurationMap#getOutputSizes ser usados com êxito para criar uma sessão. Por exemplo, se uma linha indicar que uma saída de 8 megapixels (MP) YUV_420_888 pode ser usada junto com uma saída de 2 MP PRIV , uma sessão pode ser criada com destinos [8 MP YUV, 2 MP PRIV] ou destinos [2 MP YUV, 2 MP PRIV]; mas uma sessão com destinos [8 MP YUV, 4 MP PRIV], destinos [4 MP YUV, 4 MP PRIV]ou destinos [8 MP PRIV, 2 MP YUV] não teria garantia de funcionar, a menos que alguma outra linha da tabela liste essa combinação.

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

<configurações garantidas< no nível HERD h5>/h5>

Os dispositivos herdados (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY LEGACY) dão suporte a pelo menos as seguintes combinações de fluxo:

<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">Case(s)</th></tr><tr><th>Type</th th><id="rb">Max size</th th<>>Type</th th><id="rb">Max size</th th<>>Type</th th><id="rb" >Tamanho< máximo/th></tr><tr><tdPRIV<>/td td><id="rb"MAXIMUM<>/td td><colspan="2" id="rb"></td td><colspan="2" id="rb"></td<>td>Visualização simples, processamento de vídeo gpu ou gravação de vídeo sem visualização.</td></tr><tr><td><JPEG/td><td id="rb"><MAXIMUM/td td<>colspan="2" id="rb"></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 colspan="2" id="rb"></td><td>in-application video/image processing.</td></tr><tr><td>PRIV</td td><id="rb"><PREVIEW/td td><><JPEG td><id="rb"><MAXIMUM/td><td colspan="2" id="rb"></td td<>>Standard still imaging.</td></tr><tr><td>YUV</td><td id="rb">PREVIEW</td td><td><>JPEG< id="rb"><MAXIMUM/td><td colspan="2" id="rb"></td td<>td>processing in-app plus still capture.</td></tr><tr><td>PRIV</td><td id="rb">PREVIEW</td td><td><>PRIV< id="rb"><PREVIEW/td><td colspan="2" id="rb"></td td<>>Standard recording.</td></tr><tr><td>PRIV</td td><id="rb">PREVIEW</td td><td><>YUV< id="rb"><PREVIEW/td><td colspan="2" id="rb"></td<>td>Preview plus in-app processing.</td></tr><tr><td><PRIV/td><td id="rb"><PREVIEW/td td<>td>YUV<>< id="rb"PREVIEW></td><tdJPEG<>/td><td id="rb"><MAXIMUM/td td<>td>Still capture plus in-app processing.</td></tr></table><br>

<configurações garantidas< adicionais de nível limitado h5>/h5>

Dispositivos de nível limitado (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED) dão suporte pelo menos às seguintes combinações de fluxo, além daquelas para CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY LEGACY dispositivos:

<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><rowspan="2">Exemplo de caso de uso(s)</th></tr<>tr><th>Type</th th><id="rb">Tamanho< máximo/th><th>tipo</th><th id="rb">Tamanho< máximo/th<>>< tipo/th th><id="rb">Tamanho< máximo/th></tr>><<<tr><td>PRIV</td><td id="rb"><PREVIEW/td td>PRIV><</td td><id id="rb"><RECORD/td td><colspan="2" id="rb"></td td td<>>high-resolution video recording with preview.</td></tr><tr><td><PRIV/td td><id="rb">PREVIEW</td td><>><YUV< td id="rb"><RECORD/td><td colspan="2" id="rb"></td td<>>processamento de vídeo de alta resolução no aplicativo com visualização.</td></tr><tr><td>YUV</td><td id="rb"><PREVIEW/td td><><YUV td><id="rb"><RECORD/td><td colspan="2" id="rb"></td td<>>Processamento de vídeo de duas entradas no aplicativo.</td></tr><tr><td>PRIV</td><td id="rb">PREVIEW</td td><td>PRIV<>< id="rb"RECORD<>/td td<>JPEG></td td><id="rb"><RECORD/td td td<>>High-resolution recording with video snapshot.</td></tr><tr><td><PRIV/td><td id="rb"><PREVIEW/td td<>td>YUV<>< id="rb"RECORD></td><tdJPEG<>/td><td 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<>td>YUV<>< id="rb"PREVIEW></td><tdJPEG<>/td><td id="rb"><MAXIMUM/td td<>td>Two-input in-app processing with still capture.</td></tr></table><br>

<h5>Configurações garantidas< adicionais de nível FULL/h5>

Dispositivos de nível FULL (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL) dão suporte pelo menos às seguintes combinações de fluxo, além daquelas para CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED dispositivos:

<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><rowspan="2">Exemplo de caso de uso(s)</th></tr<>tr><th>Type</th th><id="rb">Tamanho< máximo/th><th>tipo</th><th id="rb">Tamanho< máximo/th<>>< tipo/th th><id="rb">Tamanho< máximo/th></tr><<><tr><td>PRIV</td><td id="rb">PREVIEW</td td>>PRIV<</td td><id="rb"><MAXIMUM/td td><colspan="2" id="rb"></td td td<>>Maximum-resolution GPU processing with preview.</td></tr><tr><td>PRIV</td><td id="rb">PREVIEW</td td><td><>YUV< id="rb"><MAXIMUM/td><td colspan="2" id="rb"></td td<>>Maximum-resolution in-app processing with preview.</td></tr><tr><td>YUV</td><td id="rb">PREVIEW</td td><>><YUV< td id="rb"><MAXIMUM/td td><colspan="2" id="rb"></td td<>>Maximum-resolution two-input in-app processing.</td/tr><tr><td><PRIV/td><td id="rb">PREVIEW</td td><tdPRIV><>< id="rb"><PREVIEW/td><td<>JPEG/td><td id="rb"MAXIMUM></td td>><Gravação de vídeo com instantâneo< de vídeo de tamanho máximo/td></tr><tr><td>YUV</td><td id="rb">><640x480</td td>><<PRIV/td><td id="rb"><PREVIEW/td td>><YUV</td td><id="rb"><MAXIMUM/td td>><Standard video recording plus maximum-resolution in-app processing.</td></tr><tr><td><YUV/td><td id="rb"><640x480/td td>><YUV< td><id="rb"PREVIEW></td><tdYUV<>/td><td id="rb"><MAXIMUM/td<>td>Preview plus two-input maximum-resolution in-app processing.</td></tr></table><br>

<h5>RAW-capability configurações garantidas< adicionais/h5>

Os dispositivos raw-capability (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES inclui CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW RAW) também dão suporte a pelo menos as seguintes combinações de fluxo em ambos e CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULLCameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED dispositivos:

<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><rowspan="2">Exemplo de caso de uso(s)</th></tr<>tr><th>Type</th th><id="rb">Tamanho< máximo/th><th>tipo</th><th id="rb">Tamanho< máximo/th<>>< tipo/th th><id="rb">Tamanho< máximo/th></tr><<><tr><td>RAW</td><td id="rb">MAXIMUM</td><td colspan="2" id="rb"></td<>td colspan="2" id="rb"></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><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><colspan="2" id="rb"></td td<>td>processing in-app plus DNG capture.</td></tr><tr><td><PRIV/td><td id="rb">PREVIEW</td td><><PRIV td><id="rb"PREVIEW<>/td tdRAW>><</td><td id="rb"><MAXIMUM/td td<>>Gravação de vídeo com captura de DNG.</td></tr><tr><td><PRIV/td><td id="rb"><PREVIEW/td td>><YUV< td><id="rb"PREVIEW></td><tdRAW<>/td><td id="rb"><MAXIMUM/td<>td>Preview com processamento no aplicativo e captura de DNG.</td></tr><tr><td><YUV/td><td id="rb"><PREVIEW/td td<>td>YUV<>< id="rb"PREVIEW></td><tdRAW<>/td><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 td><id="rb"><MAXIMUM/td><td>RAW</td><td id="rb"><MAXIMUM/td td<>td>Still capture com JPEG e DNG simultâneos.</td></tr><tr><td>YUV</td><td id="rb">PREVIEW</td td>><><<JPEG td id="rb"MAXIMUM></td><tdRAW<>/td><td id="rb"><MAXIMUM/td td<>td>In-app processing with simultaneous JPEG and DNG.</td></tr></table><br>

<h5>BURST-capability configurações garantidas< adicionais/h5>

Os dispositivos burst-capability (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES inclui CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE BURST_CAPTURE) dão suporte pelo menos às combinações de fluxo abaixo, além daquelas para CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED dispositivos. Observe que todos os dispositivos de nível FULL dão suporte à funcionalidade BURST e a lista abaixo é um subconjunto estrito da lista para dispositivos de nível FULL, portanto, essa tabela só é relevante para dispositivos de nível LIMITADO que dão suporte à funcionalidade de BURST_CAPTURE.

<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/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/td td><id="rb"><PREVIEW/td><td/td><PRIV><<><td id="rb">MAXIMUM</td td><>Processamento de GPU de resolução máxima com visualização.</td></tr><tr><td>PRIV</td><td id="rb">PREVIEW</td td><>YUV</td td><id="rb"><MAXIMUM/td td>><Maximum-resolution in-app processing with preview.</td></tr><tr><td>YUV</td><td id="rb">PREVIEW</td td><>YUV</td td><id="rb"><MAXIMUM/td td>><Maximum-resolution two-input in-app processing.</td></tr></table><br>

<configurações garantidas< adicionais h5>LEVEL-3/h5>

LEVEL-3 (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3 LEVEL_3) dá suporte pelo menos às seguintes combinações de fluxo, além das combinações para CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL e para a funcionalidade RAW (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES inclui ):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="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 th>><Type</th th><id="rb><<">Tamanho< máximo/th><th>Tipo</th><id="rb">Tamanho< máximo/th<>/tr><tr<>td>PRIV</td><id id="rb"<PREVIEW>/td<>td<PRIV>/td td><id="rb"><640x480/td td><><YUV/td td><id="rb"<>MAXIMUM/td td<<>>RAW/td><td id="rb"<>MAXIMUM/td td td><>In-app viewfinder analysis with seleção dinâmica do formato de saída.</td/tr><tr><td>PRIV</td><td id="rb"><PREVIEW/td td<>tdPRIV><>< id="rb">640x480</td<>td<JPEG>/td><td id="rb"MAXIMUM<>/td td<<RAW>>/td td><id="rb"<MAXIMUM>/td td td<>>in-app viewfinder analysis with dynamic selection of output format.<></td></tr></table><br>

<configurações garantidas< do fluxo simultâneo h5>/h5>

BACKWARD_COMPATIBLE dispositivos capazes de transmitir simultaneamente com outros dispositivos, conforme descrito, android.hardware.camera2.CameraManager#getConcurrentCameraIds têm os seguintes fluxos garantidos (ao transmitir simultaneamente com outros dispositivos)

Observação: os tamanhos mencionados para esses fluxos simultâneos são os tamanhos máximos com suporte garantidos. Tamanhos menores que esses, obtidos por StreamConfigurationMap#getOutputSizes um formato específico, também têm suporte.

<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><th id="rb">Max size</th th>><Type</th th><id="rb">Max size</th<>/tr<>tr<>td>YUV</td td><id="rb">s1440p</td td><colspan="2" id="rb"><<></td><td>Vídeo/processamento de imagem no aplicativo.</td></tr><tr><td>PRIV</td><td id="rb"><s1440p/td td<>colspan="2" id="rb"></td td<>>in-app viewfinder analysis.</td></tr><tr><td>JPEG</td><td id="rb"><s1440p/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><>JPEG</td><td id="rb">s1440p</td><td> Standard still imaging.</td></tr><tr><td>YUV / PRIV</td><td id="rb"><s720p/td td><>YUV / PRIV</td><td id="rb"><s1440p/td td>><vídeo/processamento no aplicativo com visualização.</td></tr></table><br>

Dispositivos que não são compatíveis com versões anteriores dão suporte a um fluxo único obrigatório de tamanho sVGA com formato DEPTH16 de imagem durante a operação simultânea.

Para configurações de fluxo simultâneas garantidas:

sVGA refere-se à resolução máxima do dispositivo de câmera para esse formato ou StreamConfigurationMap#getOutputSizes resolução VGA (640X480), o que for menor.

s720p refere-se à resolução máxima do dispositivo de câmera para esse formato ou StreamConfigurationMap#getOutputSizes 720p(1280X720), o que for menor.

s1440p refere-se à resolução máxima do dispositivo de câmera para esse formato ou StreamConfigurationMap#getOutputSizes 1440p(1920X1440) o que for menor.

Dispositivos MONOCHROME-capability (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES inclui CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME MONOCHROME) que dão suporte à substituição android.graphics.ImageFormat#Y8 Y8YUV de fluxos Y8 em todas as combinações de fluxo garantidas para o nível de hardware e as funcionalidades do dispositivo.

Os clientes podem acessar as tabelas de combinação de fluxo obrigatória acima por meio de android.hardware.camera2.params.MandatoryStreamCombination.

Dispositivos capazes de gerar formatos HEIC (StreamConfigurationMap#getOutputFormats contém android.graphics.ImageFormat#HEIC) darão suporte à substituição JPEG de fluxos por HEIC todas as combinações de fluxo garantidas para o nível de hardware e as funcionalidades do dispositivo. Não há suporte para chamar createCaptureSession com saídas JPEG e HEIC.

<h5>combinações garantidas adicionais no nível HERD com saídas de várias resoluções</h5>

Dispositivos capazes de saída de várias resoluções para um formato específico ( android.hardware.camera2.params.MultiResolutionStreamConfigurationMap#getOutputInfo retorna uma lista não vazia) de suporte usando MultiResolutionImageReader para fluxos de resolução MAXIMUM desse formato para todas as combinações de fluxo obrigatórias. Por exemplo, se um dispositivo de câmera LIMITADA dá suporte a fluxos de saída de várias resoluções para ambos JPEG e PRIVATE, além das configurações de fluxo na tabela LIMITED e Herdada acima, o dispositivo de câmera dá suporte às seguintes combinações de fluxo garantidas (MULTI_RES na coluna tamanho máximo refere-se a uma MultiResolutionImageReader criada com base nas resoluções máximas variáveis com suporte):

<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">Case(s)</th></tr><tr><th>Type</th th><id="rb">Max size</th th<>>Type</th th><id="rb">Max size</th th<>>Type</th th><id="rb" >Tamanho< máximo/th></tr><tr><tdPRIV<>/td td><id="rb"MULTI_RES<>/td td><colspan="2" id="rb"></td td><colspan="2" id="rb"></td<>td>Visualização simples, processamento de vídeo gpu ou gravação de vídeo sem visualização.</td></tr><tr><td><JPEG/td><td id="rb"><MULTI_RES/td td<>colspan="2" id="rb"></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><><JPEG td><id="rb"><MULTI_RES/td><td colspan="2" id="rb"></td td<>>Standard still imaging.</td></tr><tr><td><PRIV/td><td id="rb"><PREVIEW/td td<>td>YUV<>< id="rb"PREVIEW></td><tdJPEG<>/td><td id="rb"><MULTI_RES/td td<>td>Still capture plus in-app processing.</td></tr></table><br>

<configurações garantidas adicionais de nível limitado h5>com saídas de várias resoluções</h5>

<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><rowspan="2">Exemplo de caso de uso(s)</th></tr<>tr><th>Type</th th><id="rb">Tamanho< máximo/th><th>tipo</th><th id="rb">Tamanho< máximo/th<>>< tipo/th th><id="rb">Tamanho< máximo/th></tr>><<<tr><td><YUV/td><td id="rb">PREVIEW</td td><>YUV</td td><id id="rb"<PREVIEW>/td tdJPEG>><</td><td id="rb"><MULTI_RES/td td<>>Two-input in-app processing with still capture.</td></tr></table><br> A mesma lógica se aplica a outros níveis de hardware e recursos.

<h5>Combinações adicionais garantidas para sensores< de ULTRA_HIGH_RESOLUTION/h5>

Os dispositivos com a funcionalidade ULTRA_HIGH_RESOLUTION_SENSOR têm algumas garantias adicionais das quais os clientes podem aproveitar:

<table><tr><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">Exemplo de caso de uso(s)</th<>/tr><tr><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" >Tamanho< máximo/th><th>Type</th th><id="rb"> SC Map</th th><id="rb">Tamanho< máximo/th></tr><td<><>YUV / JPEG / RAW/td td><id="rb"><MAX_RES/td td><id id="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 still image capture com 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 id="rb"PRIV / YUV<>/td><td id="rb"DEFAULT></td td><id="rb"<RECORD>/td><td>Res ultra altas ainda são capturadas com versão prévia + análise< de tamanho RECORD baseada em aplicativo/td></tr<>tr><tdYUV / 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 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>

Aqui, sc map, refere-se ao StreamConfigurationMap. os tamanhos de fluxo de destino devem ser escolhidos. DEFAULT refere-se ao modo StreamConfigurationMap de pixel do sensor padrão e MAX_RES refere-se à resolução StreamConfigurationMapmáxima. Para MAX_RES fluxos, MAX na Max size coluna refere-se ao tamanho máximo de StreamConfigurationMap#getOutputSizes e StreamConfigurationMap#getHighResolutionOutputSizes. Observação: a mesma solicitação de captura não deve misturar destinos de StreamConfigurationMaps correspondentes a diferentes modos de pixel do sensor.

<configurações garantidas adicionais de saída de 10 bits< h5>/h5>

Dispositivos compatíveis com CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT saída de 10 bits dão suporte a pelo menos as seguintes combinações de fluxo:

<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><rowspan="2">Exemplo de caso de uso(s)</th></tr<>tr><th>Type</th th><id="rb">Tamanho< máximo/th><th>tipo</th><th id="rb">Tamanho< máximo/th<>>< tipo/th th><id="rb">Tamanho< máximo/th></tr>><<<tr><td><PRIV/td><td id="rb"><MAXIMUM/td></td td><colspan="4" id="rb"></td td<>>Versão prévia simples, processamento de vídeo gpu ou gravação de vídeo sem visualização.</td></tr><tr><td><YUV/td><td id="rb">MAXIMUM</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><><JPEG td><id="rb"><MAXIMUM/td><td colspan="2" id="rb"></td td<>>Standard still imaging.</td></tr><tr><td>PRIV</td><td id="rb">PREVIEW</td td><td><>YUV< id="rb"><MAXIMUM/td><td colspan="2" id="rb"></td td<>>Maximum-resolution in-app processing with preview.</td></tr><tr><td>YUV</td><td id="rb">PREVIEW</td td><>><YUV< td id="rb"><MAXIMUM/td td><colspan="2" id="rb"></td td<>>Maximum-resolution two-input in-app processing.</td></tr><tr><td><PRIV/td><td id id="rb"><PREVIEW/td td<<><>PRIV> td id="rb"><RECORD/td<>td colspan="2" id="rb"></td td><>gravação de vídeo de alta resolução com visualização.</td></tr><tr><td><PRIV/td><td id="rb"><PREVIEW/td td<>td>PRIV<>< id="rb"RECORD></td><tdYUV<>/td><td id="rb"><RECORD/td td<>>high-resolution recording with in-app snapshot.</td></tr><tr><td>PRIV</td><td id="rb">PREVIEW</td td><td>PRIV<>< id="rb"RECORD<>/td td<>JPEG></td td><id="rb"><RECORD/td td td<>>High-resolution recording with video snapshot.</td></tr></table><br>

Aqui, PRIV pode ser o formato de 8 ou 10 bits android.graphics.ImageFormat#PRIVATE . YUV pode ser ou android.graphics.ImageFormat#YUV_420_888android.graphics.ImageFormat#YCBCR_P010. Para a coluna de tamanho máximo, PREVIEW refere-se à melhor correspondência de tamanho à resolução de tela do dispositivo ou a 1080p (1920x1080), o que for menor. RECORD refere-se à resolução máxima de gravação com suporte do dispositivo de câmera, conforme determinado por android.media.CamcorderProfile. MAXIMUM refere-se à resolução de saída máxima do dispositivo de câmera para esse formato ou destino de StreamConfigurationMap#getOutputSizes(int). Observe que combinações inválidas, como ter uma superfície de câmera configurada para usar o formato android.graphics.ImageFormat#YUV_420_888 pixel com um perfil de 10 bits, causarão uma falha na inicialização da sessão de captura.

android.graphics.ImageFormat#JPEG_R também poderá ter suporte se anunciado por android.hardware.camera2.params.StreamConfigurationMap. Ao inicializar uma sessão de captura que inclui um cliente de saída de câmera Jpeg/R, os clientes devem considerar os seguintes itens w.r.t. a tabela de combinação de fluxo obrigatório de 10 bits:

<ul><li>Para gerar a imagem Jpeg/R compactada, uma única android.graphics.ImageFormat#YCBCR_P010 saída será usada internamente pelo dispositivo de câmera.</li><li>Em dispositivos de câmera que são capazes de dar suporte a solicitações simultâneas de captura de 10 e 8 bits, veja android.hardware.camera2.params.DynamicRangeProfiles#getProfileCaptureRequestConstraints que um extra android.graphics.ImageFormat#JPEG também será configurado internamente para ajudar a acelerar o processo de codificação.</li></ul>

Normalmente, as saídas da câmera jpeg/R poderão dar suporte à resolução MÁXIMA do dispositivo. Os clientes também podem chamar StreamConfigurationMap#getOutputSizes(int) uma lista completa com tamanhos com suporte. Os clientes de câmera que registram uma saída Jpeg/R dentro de uma combinação de fluxo que não se encaixa na tabela de fluxo obrigatória acima podem chamar #isSessionConfigurationSupported para garantir que essa configuração específica tenha suporte.

<h5>STREAM_USE_CASE funcionalidade de configurações garantidas< adicionais/h5>

Os dispositivos com a funcionalidade STREAM_USE_CASE (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES inclui CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE) dão suporte abaixo de combinações de fluxo adicionais:

<table>tr 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">Exemplo de caso de uso(s)</th></tr<>tr><th>Type</th th><id="rb">Tamanho< máximo/th>><Usecase</th th>><Type</th th><id="rb">Tamanho< máximo/th>><Usecase</th th Tipo>><><</th th id="rb">Tamanho< máximo/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>Visualização simples ou processamento< de imagem no aplicativo/td<>/tr<>tr<>tdYUV / 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>><Simples gravação de vídeo ou processamento< de vídeo no aplicativo/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>Simples JPEG ou YUV ainda captura< de imagem/td<>/tr><tr<>tdYUV / PRIV<>/td td><id="rb"><s1440p/td><td id="rb">PREVIEW_VIDEO_STILL</td td<>colspan="3" id="rb"></td td<>colspan="3" id="rb"></td td<>>fluxo de várias finalidades para visualização, vídeo e captura de imagem< ainda/td<>/tr><td<><>YUV / PRIV/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><>Chamada de vídeo< simples/td<>/tr><tr<>td>PRIV</td><td id="rb">PREVIEW</td td><id id="rb"PREVIEW<>/td tdYUV / JPEG>><< td><id="rb">MAXIMUM</td><td id="rb"/>STILL_CAPTURE< td td colspan="3" id="rb"></td td>><Preview with JPEG ou YUV still image capture</td></tr<><>td<PRIV>/td td><id="rb"<PREVIEW>/td><td id="rb"<>PREVIEW/td td><<>YUV / PRIV/td td><id="rb"RECORD></td><td id="rb"<>VIDEO_RECORD/td td><colspan="3" id="rb"></td><td>><Visualização com gravação de vídeo ou processamento< de vídeo no aplicativo/td></tr><tr><td<PRIV>/td td><id="rb"<PREVIEW>/td><td id id="rb"><PREVIEW/td<>tdYUV<>/td><td id="rb"><PREVIEW/td><td id="rb"><PREVIEW/td td><colspan="3" id="rb"></td td<>>Preview com processamento< de imagem no aplicativo/td></tr><tr><td>PRIV</td><td id="rb"><PREVIEW/td><td id id="rb">PREVIEW</td<>td<>YUV / PRIV td><id="rb"><s1440p/td td><id="rb"VIDEO_CALL></td td<>colspan="3" id="rb"></td<>td>Preview with video call</td></tr><tr<>tdYUV / PRIV></td><td id="rb"><s1440p/td><td id id="rb"PREVIEW_VIDEO_STILL<>/td td><YUV / JPEG>><< td id="rb">MAXIMUM</td><td id="rb"<>STILL_CAPTURE/td td><colspan="3 " id="rb"></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 id="rb"<>STILL_CAPTURE/td td<>colspan="3" id="rb"></td td<>>YUV and JPEG concurrent still 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 id="rb"RECORD></td><td id id="rb"VIDEO_RECORD<>/td td><JPEG<> td><id id="rb"<RECORD>/td><td id="rb"<>STILL_CAPTURE/td><td>Preview, video record e JPEG video snapshot</td<>/tr><tr<>td<>PRIV/td td><id="rb"PREVIEW<>/td><td id="rb"PREVIEW<>/td><td><YUV/td><td id="rb">PREVIEW</td><td id="rb"><PREVIEW/td td<>td><<JPEG> id="rb"MAXIMUM<>/td><td id id="rb"><STILL_CAPTURE/td<>td>Preview, processamento de imagem no aplicativo e JPEG ainda captura< de imagem/td<>/tr></table br><>

<h5>STREAM_USE_CASE_CROPPED_RAW funcionalidade de configurações garantidas< adicionais/h5>

Os dispositivos que incluem o CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW caso de uso de fluxo dão CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESsuporte às combinações de fluxo adicionais abaixo:

<table>tr 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">Exemplo de caso de uso(s)</th></tr<>tr><th>Type</th th><id="rb">Tamanho< máximo/th>><Usecase</th th>><Type</th th><id="rb">Tamanho< máximo/th>><Usecase</th th Tipo>><><</th th id="rb">Tamanho< máximo/th>><Usecase</th<>/tr><tr><td<>RAW/td td><id="rb"MAXIMUM<>/td><td id="rb"CROPPED_RAW></td td><colspan="3" id="rb"></td<>td colspan="3" id="rb"></td td>><Cropped RAW ainda captura sem visualização</td<>/tr<>tr<>tdPRIV / YUV></td td><id="rb"PREVIEW>><<</td><td id id="rb"PREVIEW></td td>RAW<></td td><id id="rb">MAXIMUM</td><td id id="rb"<CROPPED_RAW>/td td<>colspan="3" id="rb"></td><td>Preview with cropped RAW still capture</td<>/tr<>tdPRIV / YUV<><>/td td><id="rb"<PREVIEW>/td td><id="rb"><PREVIEW/td<>td td>YUV / JPEG</td><td id id="rb"MAXIMUM<>/td><td id="rb"STILL_CAPTURE<>/td td><>><<RAW td id id="rb"<>MAXIMUM/td><td id="rb"><CROPPED_RAW/td<>td>Preview with YUV /JPEG and cropped RAW still capture</td<>/tr<>tr<>tdPRIV / YUV></td><td id="rb">PREVIEW</td td><id="rb"PREVIEW></td><td>PRIV / YUV</td><td id id="rb"PREVIEW></td><td id="rb"><VIDEO_RECORD / PREVIEW/td tdRAW><><>< td id id="rb"MAXIMUM></td><td id="rb">CROPPED_RAW</td td><Gravação de>vídeo com versão prévia e cropped RAW ainda captura</td<>/tr></table br><>

<configurações de fluxo garantidas< de estabilização do h5>Preview/h5>

Para dispositivos em que CameraCharacteristics#CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES incluiCameraMetadata#CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION, as seguintes combinações de fluxo são garantidas, para CaptureRequests, onde CaptureRequest#CONTROL_VIDEO_STABILIZATION_MODE é definido como<CameraMetadata#CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION tabela><tr><th colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th th><rowspan="2">Exemplo de caso de uso(s)</th></tr><tr><th>Type</th th><id="rb">Tamanho< máximo/th><th>Tipo</th><id="rb">Tamanho< máximo/th></tr><tr><td>PRIV / YUV</td><td id="rb">s1440p</td td><colspan="2" id="rb"></td<>td preview estabilizado>, processamento de vídeo gpu ou gravação de vídeo estabilizada sem visualização.</td></tr><tr><td>PRIV / YUV</td><td id="rb"><s1440p/td td><<>JPEG / YUV/td><td id="rb">MAXIMUM</td td><Standard ainda geração>de imagem com visualização estabilizada.</td></tr><tr><td>PRIV / YUV</td><td id="rb"><PREVIEW/td td>>PRIV / YUV<</td><td id="rb"><s1440p/td td>><Gravação de alta resolução com visualização estabilizada e fluxo de gravação.</td></tr></table><br>

Para a coluna de tamanho máximo, PREVIEW refere-se à melhor correspondência de tamanho à resolução de tela do dispositivo ou a 1080p (1920x1080), o que for menor. RECORD refere-se à resolução máxima de gravação com suporte do dispositivo de câmera, conforme determinado por android.media.CamcorderProfile. MAXIMUM refere-se à resolução de saída máxima do dispositivo de câmera para esse formato ou destino de StreamConfigurationMap#getOutputSizes(int).

Como os recursos de dispositivos de câmera variam muito, um determinado dispositivo de câmera pode dar suporte a combinações de destino com tamanhos fora dessas garantias, mas isso só pode ser testado chamando #isSessionConfigurationSupported ou tentando criar uma sessão com esses destinos.

Exceção na resolução 176x144 (QCIF): os dispositivos de câmera geralmente têm uma capacidade fixa para reduzir de resolução maior para menor, e a resolução QCIF às vezes não tem suporte total devido a essa limitação em dispositivos com sensores de imagem de alta resolução. Portanto, a tentativa de configurar um fluxo de resolução QCIF junto com qualquer outro fluxo maior que a resolução 1920x1080 (largura ou altura) pode não ter suporte, e a criação da sessão de captura falhará se não for.

<h3>Reprocessamento</h3>

Se um dispositivo de câmera der suporte ao reprocessamento YUV (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING) ou ao reprocessamento PRIVADO (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING), o aplicativo também poderá criar uma sessão de captura reprocessável para enviar solicitações de captura de reprocessamento, além de solicitações de captura regulares, definindo uma android.hardware.camera2.params.SessionConfiguration#setInputConfiguration input configuration para a sessão. Uma solicitação de captura de reprocessamento usa o próximo buffer disponível do Surface de entrada da sessão e envia-o pelo pipeline de processamento do dispositivo de câmera novamente, para produzir buffers para o Surfaces de saída de destino da solicitação. Nenhum novo dado de imagem é capturado para uma solicitação de reprocessamento. No entanto, o buffer de entrada fornecido pelo aplicativo deve ser capturado anteriormente pelo mesmo dispositivo de câmera na mesma sessão diretamente (por exemplo, para zeroShutter-Lag caso de uso) ou indiretamente (por exemplo, combinando várias imagens de saída).

A sessão de captura reprocessável ativa determina uma entrada Surface e o conjunto de possíveis Surfaces de saída para os dispositivos de câmera para cada solicitação de captura. O aplicativo pode usar #createCaptureRequest createCaptureRequest para criar solicitações de captura regulares para capturar novas imagens do dispositivo de câmera e usar #createReprocessCaptureRequest createReprocessCaptureRequest para criar solicitações de captura de reprocessamento para processar buffers da entrada Surface. Algumas combinações de surfaces de saída em uma sessão podem não ser usadas em uma solicitação simultaneamente. As combinações garantidas de Surfaces de saída que podem ser usadas em uma solicitação simultaneamente são listadas nas tabelas #createCaptureSession createCaptureSessionem . Todos os Surfaces de saída em uma solicitação de captura virão da mesma origem, seja de uma nova captura pelo dispositivo de câmera ou da Surface de entrada, dependendo se a solicitação for uma solicitação de captura de reprocessamento.

Formatos e tamanhos de entrada compatíveis com o dispositivo de câmera podem ser consultados por meio StreamConfigurationMap#getInputFormats e StreamConfigurationMap#getInputSizes. Para cada formato de entrada com suporte, o dispositivo de câmera dá suporte a um conjunto de formatos e tamanhos de saída para reprocessamento que podem ser consultados por meio StreamConfigurationMap#getValidOutputFormatsForInput e StreamConfigurationMap#getOutputSizes. Embora os Surfaces de saída com formatos que não são destinos de saída de reprocessamento válidos para a configuração de entrada possam fazer parte de uma sessão, eles não podem ser usados como destinos para uma solicitação de reprocessamento.

Como o aplicativo não pode acessar android.graphics.ImageFormat#PRIVATE imagens diretamente, um Surface de saída criado android.media.ImageReader#newInstance com android.graphics.ImageFormat#PRIVATE o formato será considerado como destinado a ser usado para reprocessar a entrada e, portanto, o android.media.ImageReader tamanho deve corresponder a um dos tamanhos de entrada com suporte para android.graphics.ImageFormat#PRIVATE o formato. Caso contrário, a criação de uma sessão de captura reprocessável falhará.

A partir do nível 30 da API, recriar uma sessão de captura reprocessável liberará todos os buffers na fila, mas ainda não processados da superfície de entrada.

As configurações nas tabelas abaixo são garantidas para criar uma sessão de captura reprocessável se o dispositivo de câmera der suporte ao reprocessamento YUV ou ao reprocessamento PRIVADO. No entanto, nem todos os destinos de saída usados para criar uma sessão reprocessável podem ser usados simultaneamente CaptureRequest . Para dispositivos que dão suporte a apenas um destino de saída em um reprocessamento CaptureRequest, enviar um reprocessamento CaptureRequest com vários destinos de saída resultará em um CaptureFailure. Para dispositivos que dão suporte a vários destinos de saída em um reprocessamento CaptureRequest, os destinos de saída garantidos que podem ser incluídos em um CaptureRequest simultaneamente são listados nas tabelas #createCaptureSession createCaptureSessionem . Por exemplo, com um dispositivo full-capability (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL) que dá suporte ao reprocessamento PRIVATE, um aplicativo pode criar uma sessão de captura reprocessável com 1 entrada, (PRIV, MAXIMUM), e 3 saídas, (PRIV, MAXIMUM), (PRIV, PREVIEW) e (YUV, MAXIMUM). No entanto, não é garantido que um aplicativo possa enviar uma captura regular ou reprocessada com (PRIV, MAXIMUM) e (YUV, MAXIMUM) saídas com base na tabela listada em #createCaptureSession createCaptureSession. Em outras palavras, use as tabelas abaixo para determinar as configurações de fluxo garantidas para criar uma sessão de captura reprocessável e use as tabelas #createCaptureSession createCaptureSession embaixo para determinar os destinos de saída garantidos que podem ser enviados em um processo regular ou reprocessado CaptureRequest simultaneamente.

Não há suporte para o reprocessamento com destinos de saída de 10 bits em dispositivos compatíveis com CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT 10 bits. A tentativa de inicializar uma sessão de captura repreocessável com mais uma configuração de saída definida OutputConfiguration#setDynamicRangeProfile para usar um perfil android.hardware.camera2.params.DynamicRangeProfiles de intervalo dinâmico de 10 bits será disparada IllegalArgumentException.

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

Dispositivos de nível LIMITADO (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED) dão suporte pelo menos às seguintes combinações de fluxo para criar uma sessão de captura reprocessável, além daquelas listadas anteriormente para capturas regulares para CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED dispositivos:

<table><tr><th colspan="11">LIMITED-level additional guaranteed configurations for creating a reprocessable capture session<br>(PRIV input is guaranteed only if PRIVATE reprocessing is supported. YUV a entrada só será garantida se houver suporte para o reprocessamento yuv)</th></tr><tr><th colspan="2" id="rb">Input</th th><colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</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><id="rb">Max size</th thth>><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 th>><Type</th th><id="rb" >Tamanho< máximo/th></tr><tr><tdPRIV/YUV<>/td td><id="rb"MAXIMUM<>/td td><td>Same as input</td><td id="rb"MAXIMUM<>/td<>td><JPEG/td><td id="rb"MAXIMUM></td><td td><>< id="rb"></td<>td td><>< id="rb"></td td<>>no-viewfinder still image reprocessing.</td></tr><tr><td><YUVPRIV//td td><id="rb">MAXIMUM</td td<>td>Same as input</td><td id="rb">MAXIMUM</td td<PRIV>></td td><id="rb"PREVIEW<>/td td><td<><>JPEG id="rb"><MAXIMUM/td<>td td><>< id="rb"></td td><td>ZSL(Zero-Shutter-Lag) ainda geram imagens.</td></tr><tr><td><YUVPRIV//td td><id="rb">MAXIMUM</td td<>td>Same as input</td><td id="rb">MAXIMUM</td td<YUV>></td td><id="rb"PREVIEW<>/td td><td<><>JPEG id="rb"><MAXIMUM/td<>td td><>< id="rb"></td td><td>Imagens de processamento do ZSL e no aplicativo.</td></tr><tr><td>/YUV<PRIV/td><td id="rb">MAXIMUM</td><td>Same as input</td><td id id="rb">MAXIMUM</td td<YUV>></td td><id="rb"PREVIEW<>/td td><td<><>YUV id="rb"><PREVIEW/td><td td<JPEG><> id="rb">MAXIMUM</td><td>ZSL no processamento no aplicativo com ainda captura.</td></tr></table><br>

Dispositivos de nível COMPLETO (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL) dão suporte pelo menos às seguintes combinações de fluxo para criar uma sessão de captura reprocessável, além daquelas para CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED dispositivos:

<table><tr><th colspan="11">FULL-level additional guaranteed configurations for creating a reprocessable capture session<br>(PRIV input is guaranteed only if PRIVATE reprocessing is supported. YUV a entrada será garantida somente se houver suporte para o reprocessamento yuv)</th></tr<>tr><th colspan="2" id="rb">Input</th th><colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th><colspan="2" id="rb">Destino 3</th><th colspan="2" id="rb">Target 4</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 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><td<YUV>/td td><id="rb"<>MAXIMUM/td td<>td><YUV>< id="rb"<>MAXIMUM/td<>td>PRIV</td><td id="rb"PREVIEW></td><td></td td><id="rb"></td td><td id><=/td td><id="rb"></td td<>>Maximum-resolution multi-frame image fusion in-app processing with regular preview.</td/tr><tr><td>YUV</td td><id="rb"><MAXIMUM/td td<>tdYUV><>< id="rb">MAXIMUM</td<>tdYUV></td><td id="rb"<PREVIEW>/td><td></td td><id="rb"></td td>><</td><td id="rb"></td td>><Maximum-resolution multi-frame image fusion>< processamento de duas entradas no aplicativo.</td></tr><tr><td><YUVPRIV//td td><id="rb">MAXIMUM</td td<>td>Same as input</td><td id="rb">MAXIMUM</td td<PRIV>></td td><id="rb"PREVIEW<>/td td><td<><>YUV id="rb"><RECORD/td<>td td><>< id="rb"></td td><td>Processamento de vídeo ZSL no aplicativo de alta resolução com visualização regular.</td></tr><tr><td>PRIV</td td><id="rb"><MAXIMUM/td td<>td><><PRIV id="rb"<MAXIMUM>/td><tdPRIV></td><td id="rb"PREVIEW<>/td td<>YUV></td td><id="rb"><MAXIMUM/td td><></td><td id="rb"></td td><>Maximum-resolution Processamento de ZSL no aplicativo com visualização regular.</td></tr><tr><td>PRIV</td td><id="rb"><MAXIMUM/td td<>td><><PRIV id="rb"<MAXIMUM>/td><tdYUV></td><td id="rb"PREVIEW<>/td td<>YUV></td td><id="rb"><MAXIMUM/td td><></td><td id="rb"></td td><>Maximum-resolution Processamento ZSL no aplicativo de duas entradas.</td></tr><tr><td>/YUV<PRIV/td><td id="rb">MAXIMUM</td><td>Same as input</td><td id id="rb">MAXIMUM</td td<PRIV>></td td><id="rb"PREVIEW<>/td td><td<><>YUV id="rb"><PREVIEW/td><td td<JPEG><> id="rb">MAXIMUM</td><td>ZSL ainda captura e processamento no aplicativo.</td></tr></table><br>

Os dispositivos RAW-capability (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIESincluiCameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW RAW) também dão suporte a pelo menos as seguintes combinações de fluxo para criar uma sessão de captura reprocessável em dispositivos e CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED dispositivos CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL

<table><tr><th colspan="11">RAW-capability additional guaranteed configurations for creating a reprocessable capture session<br>(PRIV input is guaranteed only if PRIVATE reprocessing is supported. YUV a entrada será garantida somente se houver suporte para o reprocessamento yuv)</th></tr><tr><th colspan="2" id="rb">Input</th th><colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</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><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 th>><Type</th th><id="rb">Tamanho< máximo/th></tr<>tr><tdYUV/PRIV<>/td td><id="rb"MAXIMUM></td td><td>Same as input</td><td id id="rb"<>MAXIMUM/td<>tdYUV></td><td id="rb"<>PREVIEW/td><td td><><RAW id="rb">MAXIMUM</td><td td><>< id="rb"></td td><>Mutually exclusive ZSL Processamento no aplicativo e captura de DNG.</td></tr><tr><td>/YUV<PRIV/td><td id="rb">MAXIMUM</td><td>Same as input</td><td id id="rb">MAXIMUM</td td<PRIV>></td td><id="rb"PREVIEW<>/td td><td<><>YUV id="rb"><PREVIEW/td><td td<RAW><> id="rb">MAXIMUM</td><td>Processamento e visualização ZSL mutuamente exclusivos no aplicativo com captura de DNG.</td></tr><tr><td>/YUV<PRIV/td><td id="rb">MAXIMUM</td><td>Same as input</td><td id id="rb">MAXIMUM</td td<YUV>></td td><id="rb"PREVIEW<>/td td><td<><>YUV id="rb"><PREVIEW/td><td td<RAW><> id="rb">MAXIMUM</td><td>Mutuamente exclusivo ZSL processamento de duas entradas no aplicativo e captura de DNG.</td></tr><tr><td>/YUV<PRIV/td><td id="rb">MAXIMUM</td><td>Same as input</td><td id id="rb">MAXIMUM</td td<PRIV>></td td><id="rb"PREVIEW<>/td td><td<><>JPEG id="rb"><MAXIMUM/td><td td<RAW><> id="rb">MAXIMUM</td><td>ZSL mutuamente exclusivo ainda captura e visualização com captura de DNG.</td></tr><tr><td>/YUV<PRIV/td><td id="rb">MAXIMUM</td><td>Same as input</td><td id id="rb">MAXIMUM</td td<YUV>></td td><id="rb"PREVIEW<>/td td><td<><>JPEG id="rb"><MAXIMUM/td><td td<RAW><> id="rb">MAXIMUM</td><td>Processamento ZSL no aplicativo mutuamente exclusivo com captura e captura de DNG ainda.</td></tr></table><br>

Os dispositivos LEVEL-3 (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3 LEVEL_3) dão suporte a pelo menos as seguintes combinações de fluxo para criar uma sessão de captura reprocessável, além daquelas para CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL dispositivos. Observe que, embora a segunda configuração permita configuração MAXIMUMYUV e JPEG saídas ao mesmo tempo, essa configuração não está listada para sessões de captura regulares e, portanto, a saída simultânea para ambos os destinos não é permitida.

<table><tr><th colspan="13">LEVEL-3 additional guaranteed configurations for creating a reprocessable capture session<br>(PRIV input is guaranteed only if PRIVATE reprocessing is supported. YUVa entrada é sempre garantida.</th></tr><tr><th colspan="2" id="rb">Input</th th><colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th><colspan="2" id="rb">Target 3</th><th colspan="2" id="rb">Target 4</th th><colspan="2" id="rb">Target 5</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 th><>Type</th th><id="rb">Max size</th th>><Type</th th><id="rb">Max size</th th>><Type</th th th><id="rb">Tamanho< máximo/th><th>Type</th><id="rb">Tamanho< máximo/th></tr><tr<>td<>YUV/td td><id="rb"<MAXIMUM>/td td>>YUV<</td td><id="rb" >MAXIMUM</td td>><PRIV</td><td id="rb"><PREVIEW/td td>><<PRIV/td td><id="rb"><640x480/td><td><RAW/td><td id="rb">MAXIMUM</td td><></td td><id="rb"></td td>><in-app viewfinder analysis with ZSL and RAW.</td></tr><tr><td>/YUV<PRIV/td><td id="rb">MAXIMUM</td><td>Same as input</td><td id id="rb">MAXIMUM</td td<PRIV>></td td><id="rb"PREVIEW<>/td td><td<><>PRIV id="rb"><640x480/td><td td<RAW><> id="rb">MAXIMUM</td><td><JPEG/td><td id="rb"><MAXIMUM/td td td><>no aplicativo viewfinder analysis with ZSL, RAW, and JPEG reprocessing output.</td></tr></table><br>

Se um dispositivo de câmera der suporte a entrada de várias resoluções YUV e saída de várias resoluções YUV ou oferecer suporte à entrada de várias resoluções PRIVATE e à saída de várias resoluçõesPRIVATE, as combinações de fluxo obrigatório adicionais para dispositivos LIMITED e FULL serão listadas abaixo (MULTI_RES na coluna tamanho máximo refere-se a uma MultiResolutionImageReader saída e uma multi-resolução InputConfiguration para entrada): <tabela><tr><th colspan="11">Configurações garantidas adicionais de nível LIMITADO para criar uma sessão de captura reprocessável com entrada de várias resoluções e saídas de várias resoluções br( a entrada só será garantida se houver suporte para o reprocessamento PRIVATE. YUV a entrada será garantida somente se houver suporte para o reprocessamento yuv)</th></tr<>tr><th colspan="2" id="rb">Input</th th><colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th><PRIV><th colspan="2" id="rb"Target 3</th th><colspan="2" id="rb">Target 4</th><rowspan="2">Sample use case(s)</th></tr<>tr><th>Type</th th><id="rb">Tamanho< máximo/th><th>Tipo</th><id="rb">Tamanho< máximo/th><th>tipo</th><th id="rb">Tamanho< máximo/th<><> tipo/th th><id="rb">Tamanho< máximo/th><th>tipo</> th><th id="rb">Max size</th></tr<>tr<>td/YUV<PRIV>/td td><id="rb"MULTI_RES></td<>td>Same as input</td><td id id="rb"MULTI_RES></td<>td<>JPEG/td><td id="rb"<>MULTI_RES/td td><></td td><id="rb"></td td><<>/td td><id="rb"></td td><>No-viewfinder still image reprocessamento.</td></tr><tr><td><YUVPRIV//td td><id="rb">MULTI_RES</td td<>td>Same as input</td><td id="rb">MULTI_RES</td td<PRIV>></td td><id="rb"PREVIEW<>/td td><td<><>JPEG id="rb"><MULTI_RES/td<>td td><>< id="rb"></td td><td>ZSL(Zero-Shutter-Lag) ainda geram imagens.</td></tr><tr><td><YUVPRIV//td td><id="rb">MULTI_RES</td td<>td>Same as input</td><td id="rb">MULTI_RES</td td<YUV>></td td><id="rb"PREVIEW<>/td td><td<><>JPEG id="rb"><MULTI_RES/td<>td td><>< id="rb"></td td><td>Imagens de processamento do ZSL e no aplicativo.</td></tr><tr><td>/YUV<PRIV/td><td id="rb">MULTI_RES</td><td>Same as input</td><td id id="rb">MULTI_RES</td td<YUV>></td td><id="rb"PREVIEW<>/td td><td<><>YUV id="rb"><PREVIEW/td><td td<JPEG><> id="rb">MULTI_RES</td><td>ZSL no processamento no aplicativo com ainda captura.</td></tr></table><br><table><tr><th colspan="11">FULL-level additional guaranteed configurations for creating a reprocessable capture session with multi-resolution input and multi-resolution outputs<br>(PRIV input is guaranteed only if PRIVATE reprocessing is supported. YUV input is guaranteed only if YUV reprocessing is supported)</th></tr><tr><th colspan="2" id="rb" >Input</th><th colspan="2" id="rb">Target 1</th 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<>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><th>Type</th th><id="rb">Max size</th></tr<>tr><td><PRIV/td td><id="rb"MULTI_RES<>/td td<PRIV><>/td td><id="rb"><MULTI_RES/td td<PRIV><>/td><td id=<>"rb">PREVIEW</td><td><YUV/td><td id="rb"><MULTI_RES/td td><>< td><id="rb"></td td<>>maximum-resolution ZSL in-app processing with regular preview.</td></tr><tr><td>PRIV</td td><id="rb"><MULTI_RES/td td<>td><><PRIV id="rb"<MULTI_RES>/td><tdYUV></td><td id="rb"PREVIEW<>/td td<>YUV></td td><id="rb"><MULTI_RES/td td><></td><td id="rb"></td td><>Maximum-resolution Processamento ZSL no aplicativo de duas entradas.</td></tr><tr><td>/YUV<PRIV/td><td id="rb">MULTI_RES</td><td>Same as input</td><td id id="rb">MULTI_RES</td td<PRIV>></td td><id="rb"PREVIEW<>/td td><td<><>YUV id="rb"><PREVIEW/td><td td<JPEG><> id="rb">MULTI_RES</td><td>ZSL ainda captura e processamento no aplicativo.</td></tr></table><br>

Os dispositivos com a funcionalidade ULTRA_HIGH_RESOLUTION_SENSOR têm algumas garantias adicionais das quais os clientes podem aproveitar:

<table>tr th colspan="13">Combinações adicionais garantidas para sensores de ULTRA_HIGH_RESOLUTION (entradas YUV/PRIV só serão garantidas se houver suporte para o reprocessamento YUV/PRIVATE)</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">><<Exemplo de caso de uso(s)</th></tr><tr<>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">Tamanho< máximo/th<>>tipo</th><th id="rb"> SC Map</th th><id="rb">Tamanho< máximo/th>><tipo</th th><id="rb"> SC Map</th><th id="rb" >Tamanho< máximo/th></tr<>tr<>td<>RAW/td td><id="rb"MAX_RES<>/td><td id="rb">MAX</td><td<RAW> td><id="rb"><MAX_RES/td td id="rb"/td><td id="rb"<>MAX/t><td id="rb"<PRIV / YUV>/td><td id id="rb"DEFAULT></td><td id="rb"><PREVIEW/td td><colspan="3" id="rb"></td><td>RAW remosaic reprocessamento com versão prévia</td></tr><td>><RAW</td td><id="rb"<MAX_RES>/td><td id id="rb"<MAX>/td><td>RAW</td><td id="rb"><MAX_RES/td><td id="rb"MAX></td><td id="rb"<>PRIV / YUV/td><td id="rb"DEFAULT<>/td td><id="rb"PREVIEW<>/td><td id="rb">JPEG / YUV</td><td id id="rb"><MAX_RES/td><td id="rb"><MAX/td td<>>ultra high res RAW -> JPEG / YUV com versão prévia</td></tr><td><YUV / PRIV<>/td td><id="rb"MAX_RES></td><td id id="rb"MAX></td><tdYUV / PRIV<>/td><td id="rb">MAX_RES</td td><id="rb"/>MAX< td><td id="rb">YUV / PRIV</td><td id id="rb"<DEFAULT>/td><td id="rb"<PREVIEW>/td><td id="rb">JPEG</td><td id="rb"<MAX_RES>/td><td id="rb"<>MAX/td td><> ultra high res PRIV / YUV -> YUV /JPEG reprocessing com versão prévia</td></tr<>/table><br separada> Nenhuma combinação de fluxo obrigatório adicional para a funcionalidade RAW e o nível de hardware LEVEL-3. </p>

<h3>Gravação< restrita de alta velocidade/h3>

O aplicativo pode usar uma android.hardware.camera2.params.SessionConfiguration#SESSION_REGULAR normal capture session captura de alta velocidade se os intervalos FPS de alta velocidade desejados forem anunciados por CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES, nesse caso, toda a semântica de API associada a sessões normais de captura se aplica.

Um android.hardware.camera2.params.SessionConfiguration#SESSION_HIGH_SPEED high-speed capture session pode ser usado para gravação de vídeo de alta velocidade (>=120fps) quando o dispositivo de câmera dá suporte à funcionalidade de vídeo de alta velocidade (ou seja, CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES contém CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO). Uma sessão restrita de captura de alta velocidade tem limitações especiais em comparação com uma sessão de captura normal:

<ul>

<li>Além do destino de saída Surface requisitos especificados acima para capturas regulares, uma sessão de captura de alta velocidade só dará suporte a até 2 Surfaces de saída, embora o aplicativo possa optar por configurar apenas um Surface (por exemplo, somente visualização). Todas as Superfícies devem ser superfícies do codificador de vídeo (adquiridas por android.media.MediaRecorder#getSurface ou android.media.MediaCodec#createInputSurface) ou superfícies de visualização (obtidas de android.view.SurfaceView, android.graphics.SurfaceTexture via android.view.Surface#Surface(android.graphics.SurfaceTexture)). Os tamanhos de Surface devem ser um dos tamanhos relatados por StreamConfigurationMap#getHighSpeedVideoSizes. Quando vários Surfaces são configurados, seu tamanho deve ser o mesmo.</li>

<li>Uma sessão de captura de alta velocidade ativa aceita apenas listas de solicitações criadas por meio CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestListde , e a lista de solicitações só pode ser enviada para esta sessão por meio CameraCaptureSession#captureBurst captureBurstde , ou CameraCaptureSession#setRepeatingBurst setRepeatingBurst.</li>

<li>Os intervalos FPS que estão sendo solicitados para esta sessão devem ser selecionados StreamConfigurationMap#getHighSpeedVideoFpsRangesFor. O aplicativo ainda pode ser usado CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE para controlar o intervalo de FPS desejado. Mudar para um intervalo FPS diferente android.util.Range#getUpper() maximum FPS pode disparar algumas reconfigurações de dispositivo de câmera, o que pode introduzir latência extra. É recomendável que o aplicativo evite alterações de FPS de destino máximas desnecessárias o máximo possível durante o streaming de alta velocidade.</li>

<li>Para as listas de solicitações enviadas para esta sessão, o dispositivo de câmera substituirá a CaptureRequest#CONTROL_MODE control modeAE (exposição automática), o AWB (balanceamento automático em branco) e o AF (foco automático) para CameraMetadata#CONTROL_MODE_AUTO, CameraMetadata#CONTROL_AE_MODE_ONCameraMetadata#CONTROL_AWB_MODE_AUTO e CameraMetadata#CONTROL_AF_MODE_CONTINUOUS_VIDEO, respectivamente. Todos os controles do modo de bloco pós-processamento serão substituídos para serem FAST. Portanto, nenhum controle manual de parâmetros de captura e pós-processamento é possível. Ao lado deles, apenas um subconjunto de controles funcionará, confira CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO mais detalhes.</li>

</ul>

Java documentação para android.hardware.camera2.CameraDevice.createCaptureSession(android.hardware.camera2.params.SessionConfiguration).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se 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

Parâmetros

outputs
IList<Surface>
handler
Handler
Atributos

Comentários

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a