Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

CameraX

A CameraX é um complemento do Android Jetpack que facilita a adição de recursos de câmera ao seu app. Essa biblioteca fornece uma série de correções de compatibilidade e soluções alternativas para ajudar a tornar a experiência do desenvolvedor consistente em vários dispositivos.

Esta tabela lista todos os artefatos no grupo androidx.camera.

Artefato Versão estável Candidata a lançamento Versão Beta Versão Alfa
camera-camera2 1.1.0 1.2.0-rc01 - -
camera-core 1.1.0 1.2.0-rc01 - -
camera-extensions 1.1.0 1.2.0-rc01 - -
camera-lifecycle 1.1.0 1.2.0-rc01 - -
camera-mlkit-vision - - 1.2.0-beta02 -
camera-view 1.1.0 1.2.0-rc01 - -
camera-video 1.1.0 1.2.0-rc01 - -
Última atualização desta biblioteca: 24 de outubro de 2022

Teste de dispositivo

A CameraX é testada em vários dispositivos no nosso laboratório. Para ver uma lista dos dispositivos no laboratório atualmente, consulte Dispositivos da CameraX testados no laboratório.

Declarar dependências

Para adicionar uma dependência à CameraX, é preciso adicionar o repositório Maven do Google ao projeto. Leia Repositório Maven do Google para ver mais informações.

Adicione as dependências dos artefatos necessários no arquivo build.gradle para seu app ou módulo:

Groovy

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.3.0-alpha01"
  // The following line is optional, as the core library is included indirectly by camera-camera2
  implementation "androidx.camera:camera-core:${camerax_version}"
  implementation "androidx.camera:camera-camera2:${camerax_version}"
  // If you want to additionally use the CameraX Lifecycle library
  implementation "androidx.camera:camera-lifecycle:${camerax_version}"
  // If you want to additionally use the CameraX VideoCapture library
  implementation "androidx.camera:camera-video:${camerax_version}"
  // If you want to additionally use the CameraX View class
  implementation "androidx.camera:camera-view:${camerax_version}"
  // If you want to additionally add CameraX ML Kit Vision Integration
  implementation "androidx.camera:camera-mlkit-vision:${camerax_version}"
  // If you want to additionally use the CameraX Extensions library
  implementation "androidx.camera:camera-extensions:${camerax_version}"
}

Kotlin

dependencies {
    // CameraX core library using the camera2 implementation
    val camerax_version = "1.3.0-alpha01"
    // The following line is optional, as the core library is included indirectly by camera-camera2
    implementation("androidx.camera:camera-core:${camerax_version}")
    implementation("androidx.camera:camera-camera2:${camerax_version}")
    // If you want to additionally use the CameraX Lifecycle library
    implementation("androidx.camera:camera-lifecycle:${camerax_version}")
    // If you want to additionally use the CameraX VideoCapture library
    implementation("androidx.camera:camera-video:${camerax_version}")
    // If you want to additionally use the CameraX View class
    implementation("androidx.camera:camera-view:${camerax_version}")
    // If you want to additionally add CameraX ML Kit Vision Integration
    implementation("androidx.camera:camera-mlkit-vision:${camerax_version}")
    // If you want to additionally use the CameraX Extensions library
    implementation("androidx.camera:camera-extensions:${camerax_version}")
}

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.2

Versão 1.2.0-rc01

24 de outubro de 2022

Lançamento de androidx.camera:camera-*:1.2.0-rc01. A versão 1.2.0-rc01 contém estas confirmações.

Mudanças na API

  • Adição da API setStreamUseCase para OutputConfiguration O usuário pode especificar o caso de uso da sessão de stream, substituindo as lógicas internas da CameraX para escolher o caso de uso de stream a fim de otimizar de acordo com a necessidade (Ib1a95).

Correções de bugs

  • Correção dos problemas de esticamento da Preview/VideoCapture no Samsung J7 Prime (SM-G610M) e no J7 (SM-J710MN) em dispositivos com API de nível 27. A resolução de 1.920 x 1.080 faz com que as imagens Preview/VideoCapture sejam esticadas. Adição de solução alternativa para não selecionar a resolução de 1.920 x 1.080 para visualização ou VideoCapture para evitar o problema de imagem esticada (I0e04e).
  • Correção de uma taxa de frames baixa ao usar os casos de uso VideoCapture e de visualização com proporção de 16:9 em alguns dispositivos Huawei (If8c88, b/223643510).
  • Correção da falha ao abrir a câmera quando o SurfaceProvider da visualização não é definido. Como parte da correção, a visualização sem SurfaceProvider definido não vai ser mais configurada na sessão de captura de câmera (I99681).

Versão 1.2.0-beta02

21 de setembro de 2022

Lançamento de androidx.camera:camera-*:1.2.0-beta02. A versão 1.2.0-beta02 contém estas confirmações.

Mudanças na API

  • Foi adicionado um requisito de nível da API para setOutputImageRotationEnabled (I26e3e, b/240993561).

Correções de bugs

  • A solução alternativa para virar a região de AF horizontalmente de câmeras frontais do Samsung Android T foi desativada, uma vez que o problema foi corrigido (I05f69).
  • Foi corrigido o problema de visualização preta que acontecia quando a extensão BOKEH estava ativada em alguns dispositivos Samsung e o usuário trocava de câmera (If6168).

Versão 1.2.0-beta01

24 de agosto de 2022

Lançamento de androidx.camera:camera-*:1.2.0-beta01. A versão 1.2.0-beta01 contém estas confirmações.

Novos recursos

  • Nova biblioteca camera-mlkit-vision. Integre a CameraX com facilidade usando vários recursos do MLKit, como a leitura de código de barras, detecção facial, detecção de texto etc. Clique aqui (link em inglês) para ver o exemplo de código.
  • Nova API Zero-Shutter Lag experimental. Otimiza o pipeline de captura para ter uma latência melhor, mantendo uma boa qualidade da imagem. Quando o modo de captura é definido como CAPTURE_MODE_ZERO_SHUTTER_LAG, a latência entre o momento em que o botão do obturador é acionado e em que a foto tirada é minimizada em comparação com outros modos de captura. Em dispositivos que não têm suporte a ZERO_SHUTTER_LAG, ele vai ser substituído por CAPTURE_MODE_MINIMIZE_LATENCY.
  • A ImageAnalysis.Analyzer e MLKitAnalyzer se tornaram APIs oficiais.
  • A API é exposta para definir metadados de local do vídeo salvo.
  • O ImageAnalysis.Analyzer#getTargetResolutionOverride() foi renomeado como ImageAnalysis.Analyzer#getDefaultTargetResolution().

Correções de bugs

  • Correção do problema de captura de imagem no Alps k61v1_basic_ref. As imagens JPEG capturadas da HAL têm metadados EXIF incorretos. Os metadados EXIF não têm a tag 0xffd9 ou 0xffda para que a ExifInterface analise corretamente os atributos. Capture as imagens no formato YUV e as compacte em imagens de saída JPEG para resolver esse problema (I45abb).

Versão 1.2.0-alpha04

27 de julho de 2022

Lançamento de androidx.camera:camera-*:1.2.0-alpha04. A versão 1.2.0-alpha04 contém estas confirmações.

Mudanças na API

  • O ImageAnalysis.Analyzer#getTargetResolutionOverride() foi renomeado como ImageAnalysis.Analyzer#getDefaultTargetResolution(). O comportamento também mudou para que o valor retornado por esse método possa ser substituído pelo valor de ImageAnalysis#setTargetResolution() (If1d36).
  • A API é exposta para definir metadados de local do vídeo salvo. Um objeto android.location.Location pode ser definido com a nova API androidx.camera.video.OutputOptions.Builder.setLocation(Location) (I313a0, b/204197544).

Correções de bugs

  • Corrigimos o problema ao tirar fotos com a prévia de desvinculação (Ie70b6, b/235119898).
  • Correção de uma falha no Recorder que ocorria ao tentar gravar enquanto a fonte de áudio estava indisponível (I9f652).

Versão 1.2.0-alpha03

29 de junho de 2022

androidx.camera:camera-*:1.2.0-alpha03 é lançado. A versão 1.2.0-alpha03 contém estas confirmações.

Mudanças na API

  • A anotação experimental do ImageAnalysis.Analyzer e MLKitAnalyzer foi removida (I0ff22).

Correções de bugs

  • Adicionamos um tempo limite padrão para o foco automático de 5.000 ms, que vai concluir a parte de AF com isFocusSuccessful como falso se a FocusMeteringAction não for cancelada e a parte de AF não for convergida na duração (Ibc2e3).
  • Corrigimos o problema ao tirar fotos com a visualização de desvinculação (I1d3a2, b/235119898).
  • A implementação avançada do extensor foi ativada, e a versão da interface de extensões de suporte da CameraX foi atualizada para 1.2 (I92256).

Versão 1.2.0-alpha02

1º de junho de 2022

Lançamento de androidx.camera:camera-*:1.2.0-alpha02. A versão 1.2.0-alpha02 contém estas confirmações.

Novos recursos

  • A API CameraX Zero-Shutter Lag foi exposta como experimental.

Mudanças na API

  • Adicionado novo modo de captura CAPTURE_MODE_ZERO_SHUTTER_LAG em ImageCapture e adicionado isZslSupported em CameraInfo para consultar a capacidade do dispositivo. O modo CAPTURE_MODE_ZERO_SHUTTER_LAG tem como objetivo fornecer a latência mínima para a captura instantânea. Ele é implementado com base em um buffer de anel, que armazena os resultados de captura intermediários em cache para reprocessamento posterior quando o usuário pressiona botões para tirar fotos. Se {@link VideoCapture} estiver vinculado, o modo de flash não estiver desativado ou a extensão OEM estiver ativada, esse modo vai ser desativado automaticamente (I9ae74).
  • O método ImageAnalysis.getBackgroundExecutor() foi adicionado (Icc945).

Correções de bugs

  • O método takePicture de ImageCapture, que desativa a lanterna nos dispositivos informados, foi corrigido (Ib5eb5, b/228272227).
  • Um bug em que o AssertionError não era processado ao receber a característica CONTROL_ZOOM_RATIO_RANGE foi corrigido (/Ia248a, b/231701345).

Versão 1.2.0-alpha01

18 de maio de 2022

androidx.camera:camera-*:1.2.0-alpha01 é lançado. A versão 1.2.0-alpha01 contém estas confirmações.

Novos recursos

  • Lançamento da nova biblioteca camera-mlkit-vision

Correções de bugs

  • Foi corrigida a falha em que QualitySelector não gravava um vídeo em UHD quando uma estratégia de substituição estava ativada. O problema ocorre quando VideoCapture está vinculada a ImageCapture e à visualização em um dispositivo de câmera com nível de hardware FULL ou superior. Uma estratégia de substituição de QualitySelector faz com que VideoCapture receba incorretamente uma resolução FHD. Essa combinação de uso oferece suporte à resolução UHD e precisa ser adotada (I0e788, b/230651237).
  • A NullPointerException foi corrigida em ImageCapture.takePicture() (I92366, b/230454568, b/229766155).
  • Correção do comportamento de pausa assíncrona de androidx.camera.video.Recorder (Ia8ce8).

Camera-Camera2, Camera-Core, Camera-Lifecycle e Camera-Video: versão 1.1.0

Versão 1.1.0

29 de junho de 2022

androidx.camera:camera-*:1.1.0 é lançado. A versão 1.1.0 contém estas confirmações.

Mudanças importantes desde a versão 1.0.0

  • Bibliotecas de visualização de imagens, extensão e captura de vídeos como a primeira versão RC. A partir da versão 1.1.0-beta01, todas as bibliotecas da CameraX vão ter o mesmo número de versão. Com isso, os desenvolvedores podem rastrear versões com muito mais facilidade, além de reduzir a complexidade de matrizes de compatibilidade de versões grandes.
  • Lançamos novos recursos e APIs públicas, incluindo:
  • Adicionamos a biblioteca camera-video oficial para oferecer suporte aos casos de uso de captura de vídeo.
  • Recurso de conversão e rotação de YUV para RGB (ImageAnalysis.Builder.setOutputImageRotationEnabled e setOutputImageFormat).
  • Suporte ao modo de várias janelas, permitindo que os aplicativos da CameraX retomem a câmera quando ela for interrompida por outro app e retornar ao foco inicial.
  • Corrigimos alguns problemas de visualização para garantir que a CameraX funcione bem em dispositivos dobráveis.
  • Adicionamos uma API CameraState que vai ser exposta pelo CameraInfo.
  • Adicionamos uma API ProcessCameraProvider.getAvailableCameraInfos() para recuperar diretamente informações sobre as câmeras disponíveis.
  • Formato JPEG de saída para ImageCapture#OnImageCapturedCallback quando as extensões estão ativadas.
  • Adicionamos uma API isFocusMeteringSupported a CameraInfo, que permite que os apps confirmem se a FocusMeteringAction fornecida oferece suporte à câmera atual ou não.
  • A API getResolutionInfo foi exposta para fornecer as informações de resolução para Preview, ImageCapture e ImageAnalysis
  • Adicionamos uma nova API ImageCapture.Builder#setJpegQuality para permitir a mudança da qualidade da compactação de imagens JPEG de saída ao tirar fotos.
  • Adicionamos CameraSelector#filter à API pública para filtrar uma lista de CameraInfos com base em um CameraSelector.
  • Camera2CameraControl.clearCaptureRequestOptions foram adicionadas para limpar as opções de solicitação de captura já existentes.
  • Adicionamos uma API experimental para usar CameraController com bibliotecas de processamento de imagens externas, como a MLKit.
  • Adicionamos a API experimental CameraInfo#getCameraSelector() que retorna um CameraSelector exclusivo para a câmera.
  • Várias APIs experimentais foram promovidas para APIs formais públicas.
  • A anotação @Experimental foi substituída por @RequiresOptIn para APIs experimentais. Para chamar APIs experimentais, use androidx.annotation.OptIn em vez de androidx.annotation.experimental.UseExperimental.
  • As seguintes APIs experimentais foram promovidas a APIs oficiais: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor() e CameraXConfig#getSchedulerHandler().
  • APIs @ExperimentalCameraFilter.
  • APIs experimentais de compensação de exposição.
  • A API UseCaseGroup experimental foi promovida para camera-core, camera-lifecycle e camera-video. Os elementos ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection e ViewPort.Builder#setScaleType foram adicionados para personalizar a janela de visualização.
  • O ExperimentalUseCaseGroupLifecycle foi promovido para APIs formais públicas.
  • Mudanças nas APIs atuais.
  • Renamed MediaStoreOutputOptions.getCollection como MediaStoreOutputOptions.getCollectionUri.
  • A classe ActiveRecording foi renomeada como "Recording" para diminuir a verbosidade.
  • A API criadora QualitySelector foi mudada para uma API baseada em lista.

Correções de bugs

  • Foi corrigido o problema da EOFException do YuvToJpegProcessor quando o modo de extensão era ativado e o modo ImageCapture#CAPTURE_MODE_MAX_QUALITY estava definido.
  • Corrigimos a falha da configuração do codec porque a gravação de vídeo foi encerrada.
  • A proporção de visualização/vídeo estendido ao gravar em FHD foi corrigida.
  • Corrigimos o áudio/vídeo fora de sincronia após a pausa e retomada em alguns dispositivos.
  • Foi corrigido o problema em que o flash era acionado durante o Toque para focar (startFocusAndMetering) quando o modo flash estava no automático ou sempre ativado em ambientes com pouca luz.

Versão 1.1.0-rc02

1º de junho de 2022

Lançamento de androidx.camera:camera-*:1.1.0-rc02. A versão 1.1.0-rc02 contém estas confirmações.

Correções de bugs

  • A NullPointerException foi corrigida em ImageCapture.takePicture() (I92366, b/230454568, b/229766155).
  • Corrigido um bug em que o AssertionError não era processado ao receber a característica CONTROL_ZOOM_RATIO_RANGE (Ia248a, b/231701345).

Versão 1.1.0-rc01

11 de maio de 2022

Lançamento de androidx.camera:camera-*:1.1.0-rc01. A versão 1.1.0-rc01 contém estas confirmações.

Novos recursos

  • Lançamento da primeira versão RC para camera-video, camera-view e camera-extension.

Correções de bugs

  • Foi corrigido um problema em que o codec de vídeo não era lançado quando o VideoCapture<Recorder> era desvinculado, fazendo com que os usos subsequentes do VideoCapture<Recorder> falhasssem na gravação com uma MediaCodec.CodecException, especialmente em dispositivos com APIs 21 e 22 (Ie7f68).
  • Correção de um problema em que imagens capturadas da CameraExtensionsActivity não eram excluídas em ImageCaptureTest.

Versão 1.1.0-beta03

6 de abril de 2022

Lançamento de androidx.camera:camera-*:1.1.0-beta03. A versão 1.1.0-beta03 contém estas confirmações.

Mudanças na API

  • O construtor CaptureRequestOptions foi restringido (I261b6).
  • Foi adicionada uma API experimental para usar CameraController com bibliotecas de processamento de imagens externas, como a MLKit (I4ea71).

Correções de bugs

  • Correção do problema em que a visualização se tornava lateral na PreviewView quando a atividade não era reiniciada depois que os dispositivos eram girados no modo de várias janelas (I1ea36, b/223488673).
  • Foi corrigido um problema de várias janelas em que, no retorno do foco para o app, havia uma falha ao retomar a câmera quando (1) outro app de alta prioridade abria uma câmera diferente e (2) o dispositivo era um Samsung com Android 12 (I7e9f2).
  • Solução alternativa incluída para dispositivos que falham ao verificar a disponibilidade do flash. A lanterna não estará disponível nesses dispositivos (If26a3, b/216667482).
  • Correção do problema AbstractMethodError que ocorria quando os apps usavam extensões e ativavam o ProGuard (I7cbaf, b/222726805).
  • O modo de extensão bokeh no dispositivo Motorola Razr 5G foi desativado à força, o que vai causar um problema de tela preta na visualização (I35d49).
  • Correção de áudio/vídeo fora de sincronia após a pausa e a retomada em alguns dispositivos Samsung com API de níveis anteriores ao 29 (I64622, b/202798609, b/202798572).
  • Correção de áudio/vídeo fora de sincronia após a pausa e retomada no Sony G3125 (I2a1a5, b/202799148).
  • Correção de uma falha quando o Gravador encontrava uma InvalidConfigException. Essa correção apenas evita que o app falhe, mas não resolve a causa da InvalidConfigException. Se ainda não for possível configurar o Recorder, os apps vão receber um callback de erro quando a gravação for iniciada (I89c29, b/213617227).

Contribuição externa

  • Atualização da API :compose:ui-ui-test (updateApi) devido à migração de test-coroutines-lib (I3366d).

Versão 1.1.0-beta02

23 de fevereiro de 2022

androidx.camera:camera-*:1.1.0-beta02 é lançado. A versão 1.1.0-beta02 contém estas confirmações.

Mudanças na API

  • Adição da capacidade de especificar o ID da câmera física usando Camera2Interop (I5aed8).

Correções de bugs

  • Correção do problema de visualização esticada no Oppo Find N (I7d004).
  • Correção de um problema no Galaxy J7 Prime em que a visualização ficava distorcida (I4c500).
  • É possível usar uma taxa de bits compatível para encontrar o codificador de vídeo (d969052).

Versão 1.1.0-beta01

26 de janeiro de 2022

Lançamento de androidx.camera:camera-*:1.1.0-beta01. A versão 1.1.0-beta01 contém estas confirmações.

Novos recursos

  • A partir da versão 1.1.0-beta01, todas as bibliotecas da CameraX vão ter o mesmo número de versão. Com isso, os desenvolvedores podem rastrear versões com muito mais facilidade, além de reduzir a complexidade de matrizes de compatibilidade de versões grandes.

Mudanças na API

  • Camera2CameraControl.clearCaptureRequestOptions foram adicionadas para limpar as opções de solicitação de captura já existentes (Ifa07d).

Correções de bugs

  • Corrigida a falha ao gravar o vídeo em alguns dispositivos anteriores ao Android O(API 26) (I88fdf, b/212328261).
  • Corrigido o problema de região de AF incorreta ao usar cameraControl#startFocusAndMetering() na câmera frontal para lentes em dispositivos Samsung (Ifbf59, b/210548792).
  • A lanterna é usada como flash no Pixel 3a/Pixel 3a XL para melhorar a velocidade e a qualidade da imagem capturada no escuro (Ib12b6, b/211474332).
  • Aplicativos foram ativados para retomar a câmera quando ela for interrompida por outro aplicativo de prioridade mais alta no modo de várias janelas e o foco mudar de volta para o app inicial. Talvez haja alguma latência (de 1 a 10 segundos ou mais) entre as mudanças de foco e a câmera ser reaberta devido a algum problema no framework (I4d092).

Versão 1.1.0-alpha12

15 de dezembro de 2021

Lançamento de androidx.camera:camera-*:1.1.0-alpha12. A versão 1.1.0-alpha12 contém estas confirmações.

Mudanças na API

  • Remoção de anotações @RequiresApi(21) desnecessárias das classes/interfaces internas (I8e286, b/204917951).
  • As constantes de qualidade e de estratégia de substituição da classe QualitySelector mudou para serem representadas por objetos de classe. Por exemplo, a QualitySelector.QUALITY_HD é mudada para Quality.HD, e QualitySelector.FALLBACK_STRATEGY_LOWER é mudada para a instância retornada por FallbackStrategy.lowerQualityOrHigherThan(Quality). A API usada para criar a QualitySelector mudou para uma API baseada em lista. A nova API QualitySelector.fromOrderedList(List<Quality>) vai fazer referência à ordem da lista de qualidade de entrada em vez da ordem criada por QualitySelector.Procedure. A classe QualitySelector.Procedure foi removida (I43343).
  • O PendingRecording.withEventListener() foi removido, e o listener de eventos agora precisa ser transmitido para PendingRecording.start(). Esse requisito do listener de eventos serve para incentivar o processamento de erros assíncronos que são informados no evento VideoRecordEvent.Finalize (I1e71d).
  • A classe ActiveRecording foi renomeada como Recording para diminuir a verbosidade (I77ceb).

Correções de bugs

  • Correção do problema que fazia com que as fotos capturadas no modo FLASH_AUTO ficassem subexpostas em condições escuras no Pixel 3a e no Pixel 3a XL (I13f19, b/205373142).
  • O tamanho de exibição mais recente sempre é usado para determinar a Resolution de visualização (I4a694).
  • Remoção de câmeras que não têm REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE. Câmeras com REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE têm o conjunto mínimo de recursos aos quais todos os dispositivos de câmera oferecem suporte. Uma câmera sem REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE pode oferecer suporte a uma função especial, mas não à saída de cor padrão. A CameraX não oferece suporte aos casos de uso Preview, ImageCapture, ImageAnalysis ou VideoCapture dessas câmeras. Por isso, é necessário remover essas câmeras para evitar o uso incorreto (Ib8cda).
  • O elemento CameraSelector#filter não gera mais uma IllegalArgumentException quando o conjunto de resultados está vazio (I27804).
  • Heurísticas mais inteligentes agora são usadas para selecionar as configurações do codificador com base em perfis especificados pelo OEM (Iaeef0).
  • A visualização fixa terá linhas de cores entrelaçadas após iniciar a gravação de vídeo em UHD no Pixel1 (I833c6, b/205340278).

Versão 1.1.0-alpha11

17 de novembro de 2021

androidx.camera:camera-*:1.1.0-alpha11 é lançado. A versão 1.1.0-alpha11 contém estas confirmações.

Mudanças na API

  • CameraSelector#filter foi adicionado à API pública para filtrar uma lista de CameraInfos com base em um CameraSelector (I105d0).
  • A API setOutputImageRotationEnabled foi adicionada à configuração do ImageAnalysis. O usuário pode ativar a rotação para o buffer de imagem YUV/RGB. O grau de rotação é uma rotação relativa calculada com base na rotação do sensor e na rotação desejada para manter a imagem antecipadamente.

  • A API setOutputImageRotationEnabled foi adicionada à configuração do ImageAnalysis. O usuário pode ativar a rotação para o buffer de imagem YUV/RGB. O grau de rotação é uma rotação relativa calculada com base na rotação do sensor e na rotação desejada para manter a imagem antecipadamente.

    A API getSensorToBufferTransformMatrix foi adicionada ao ImageInfo. A matriz retornada é um mapeamento das coordenadas do sensor para as coordenadas do buffer, ou seja, do valor de CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE para (0, 0, image.getWidth, image.getHeight). A matriz pode ser usada para mapear as coordenadas de um {UseCase} para outro. Por exemplo, mapeamento de coordenadas do rosto detectado com o ImageAnalysis para visualização prévia (I9ff1e).

  • Uma nova API ImageCapture.Builder#setJpegQuality foi adicionada para permitir a mudança da qualidade de compactação de imagens JPEG de saída ao tirar fotos (I8dcf4).

  • Renomeação de MediaStoreOutputOptions.getCollection como MediaStoreOutputOptions.getCollectionUri (I16639).

Correções de bugs

  • Foi corrigido o problema em que o flash era acionado durante o Toque para focar (startFocusAndMetering) quando o modo flash estava no automático ou sempre ativado em ambientes com pouca luz (Id4c11).
  • O HDR+ foi desativado no Pixel 2 XL / Pixel 3 XL no modo MINIMIZE_LATENCY para reduzir a latência (Ib6270, b/203505523).

Contribuição externa

Versão 1.1.0-alpha10

13 de outubro de 2021

androidx.camera:camera-*:1.1.0-alpha10 é lançado. A versão 1.1.0-alpha10 contém estas confirmações.

Novos recursos

  • Lançamento de androidx.camera:camera-video:1.1.0-alpha10 como a primeira versão Alfa oficial para Video. Vários problemas conhecidos serão corrigidos nas próximas versões.

Mudanças na API

  • A anotação @RequiresApi(21) foi adicionada a todas as classes da CameraX e a minSdkVersion foi descartada do AndroidManifest.xml. Isso permitirá que o camera-core seja facilmente integrado a aplicativos que têm uma minSdkVersion menor que 21, mas querem usar caminhos de código que dependem da API 21 e versões mais recentes condicionalmente. Em aplicativos com a minSdkVersion 21 ou versões mais recentes, nenhuma ação é necessária (Ie7f2e, b/200599470).

Correções de bugs

  • Uma InitializationException foi gerada para que o app possa processar adequadamente o AssertionError ocorrido durante a criação de CameraCharacteristics (Ibec79).

Versão 1.1.0-alpha09

29 de setembro de 2021

Lançamento de androidx.camera:camera-camera2:1.1.0-alpha09, androidx.camera:camera-core:1.1.0-alpha09 e androidx.camera:camera-lifecycle:1.1.0-alpha09. A versão 1.1.0-alpha09 contém estas confirmações.

Mudanças na API

  • A anotação ExperimentalUseCaseGroup foi removida agora que as APIs não são mais experimentais (I01ef5).

Correções de bugs

  • Correção do problema em que as fotos capturadas ficam desfocadas no modo MAXIMIZE_QUALITY (I173a9, b/193823892).
  • Correção de um problema do Samsung Galaxy J5 em que a câmera travava depois de tirar fotos com flash ativado/automático em ambiente escuro (I3aab9).
  • Quando o corte é necessário para o ImageCapture, compacte a imagem cortada com o nível de qualidade JPEG especificado de acordo com o modo de captura definido. Se o modo de captura for CAPTURE_MODE_MINIMIZE_LATENCY, a qualidade da compactação de JPEG será 95. Se o modo de captura for CAPTURE_MODE_MAXIMIZE_QUALITY, a qualidade da compactação de JPEG será 100 (Ieb37c, b/142856426).

Versão 1.1.0-alpha08

18 de agosto de 2021

Lançamento de androidx.camera:camera-camera2:1.1.0-alpha08, androidx.camera:camera-core:1.1.0-alpha08 e androidx.camera:camera-lifecycle:1.1.0-alpha08. A versão 1.1.0-alpha08 contém estas confirmações.

Novos recursos

  • Nova API setOutputImageFormat para a configuração de análise de imagem. O usuário pode selecionar ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 ou ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. Por padrão, ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 é selecionada (I7902d).

Mudanças na API

  • A anotação ExperimentalUseCaseGroupLifecycle foi removida, agora que as APIs não são mais experimentais (I17b85).

Correções de bugs

  • A tela de visualização fixa é muito clara no Huawei P20 Lite. Esse problema só ocorre quando determinadas resoluções especiais de visualização são usadas com um valor maior de zoom (Idefce, b/192129158).
  • Correção de um problema em que o flash não funcionava em alguns dispositivos ao configurar o modo flash para FLASH_MODE_ON logo após tirar fotos (Ieb49b).
  • Foi corrigido o problema em que, se VideoCapture, ImageCapture e Preview estivessem vinculados, a visualização parava por um tempo ao tirar fotos (I56197, b/193864120).
  • Agora o ImageAnalysis pode selecionar uma resolução maior que 1.080 pixels. Um dispositivo com o nível limitado acima pode oferecer suporte a uma resolução de tamanho RECORD para a ImageAnalysis quando ela está vinculada à Preview e à ImageCapture. A desvantagem é que a resolução selecionada para a ImageCapture também precisará ser de tamanho RECORD. Para selecionar uma resolução de tamanho RECORD para a ImageAnalysis, é preciso definir esse tipo de resolução na ImageCapture e na ImageAnalysis. Isso indica que o aplicativo entende claramente a desvantagem e prefere que a ImageAnalysis tenha uma resolução maior do que a ImageCapture para ter uma resolução MAXIMUM. Para ver as definições de RECORD, os tamanhos de MAXIMUM e mais detalhes, consulte https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. O tamanho RECORD se refere à resolução máxima de gravação com suporte no dispositivo de câmera, conforme determinado pelo CamcorderProfile. O tamanho MAXIMUM se refere à resolução máxima de saída do dispositivo da câmera para esse formato ou destino de StreamConfigurationMap.getOutputSizes(int) (I1ee97, b/192911449).
  • As informações Exif foram adicionadas à imagem capturada (I01ff0, b/193342619).
  • Na ImageCapture, o URI da imagem salva será retornado se o local de salvamento for File (Ib5b49, b/149241379).
  • Correção de um problema em que imagens capturadas com flash ficavam escuras em muitos dispositivos (I4e510).

Versão 1.1.0-alpha07

21 de julho de 2021

Lançamento de androidx.camera:camera-camera2:1.1.0-alpha07, androidx.camera:camera-core:1.1.0-alpha07 e androidx.camera:camera-lifecycle:1.1.0-alpha07. A versão 1.1.0-alpha07 contém estas confirmações.

Correções de bugs

  • Foi corrigido um problema do Samsung Galaxy Note 5 em que a câmera travava depois de tirar fotos com flash ativado/automático em ambientes escuros (If6871).
  • Foi corrigido um problema da EOFException YuvToJpegProcessor quando o modo de extensão era ativado e o modo ImageCapture#CAPTURE_MODE_MAX_QUALITY estava definido (I538bd, b/192017012).

Versão 1.1.0-alpha06

30 de junho de 2021

Lançamento de androidx.camera:camera-camera2:1.1.0-alpha06, androidx.camera:camera-core:1.1.0-alpha06 e androidx.camera:camera-lifecycle:1.1.0-alpha06. A versão 1.1.0-alpha06 contém estas confirmações.

Mudanças na API

  • As APIs experimentais de compensação de exposição do núcleo da câmera foram promovidas (I08ee8).
  • Uma API isFocusMeteringSupported foi adicionada a CameraInfo, que permite que os aplicativos verifiquem se FocusMeteringAction oferece suporte à câmera atual ou não (Ib45ae, b/188606490).
  • A API getResolutionInfo foi exposta para fornecer as informações de resolução para Preview, ImageCapture e ImageAnalysis (I2b613, b/188600718).
  • As APIs experimentais abaixo foram promovidas a APIs oficiais: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler() (I2ade2).
  • Aa interface CameraProvider foi exposta para fornecer acesso a um conjunto de câmeras (I1a7b1).
  • A API UseCaseGroup experimental foi promovida para camera-core, camera-lifecycle e camera-video. Os elementos ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection e ViewPort.Builder#setScaleType foram adicionados para personalizar a janela de visualização (I7cee8).

Versão 1.1.0-alpha05

2 de junho de 2021

Lançamento de androidx.camera:camera-camera2:1.1.0-alpha05, androidx.camera:camera-core:1.1.0-alpha05 e androidx.camera:camera-lifecycle:1.1.0-alpha05. A versão 1.1.0-alpha05 contém estas confirmações.

Mudanças na API

  • Classe Camera2CameraFilter removida. É sugerido que você selecione a câmera pelo CameraFilter e extraia as CameraCharacteristics ou outras informações relacionadas da Camera2 usando Camera2CameraInfo, se necessário (Ib887c).
  • As APIs ExperimentalCameraFilter agora estão fora do estágio experimental e se tornaram APIs formais. Elas podem ser usadas sem a anotação OptIn (I4bc94).
  • Adicionada uma API de estado da câmera que é exposta pelo CameraInfo#getCameraState() (Ia86b4).
  • Adição da API experimental CameraInfo#getCameraSelector() que retorna um CameraSelector exclusivo para a câmera (I77f9f).

Correções de bugs

  • Correção do problema em que o ListenableFuture retornado por setZoomRatio, e setLinearZoom não podia ser concluído em alguns dispositivos Android 11 (I716d7).
  • A alternância entre câmeras foi acelerada, e a taxa de ocorrência de erros do dispositivo foi reduzida (I34c99).
  • ExperimentalUseCaseGroupLifecycle foi substituído por ExperimentalUseCaseGroup (I3b2ef, b/159033688).

Versão 1.1.0-alpha04

21 de abril de 2021

Lançamento de androidx.camera:camera-camera2:1.1.0-alpha04, androidx.camera:camera-core:1.1.0-alpha04 e androidx.camera:camera-lifecycle:1.1.0-alpha04. A versão 1.1.0-alpha04 contém estas confirmações.

Correções de bugs

  • Correção de um vazamento de memória causado por várias linhas de execução que acessam simultaneamente a mesma coleção. O vazamento de memória pode fazer com que a atividade ou o fragmento seja retido por uma instância de visualização prévia (I7b4b8)
  • A anotação @Experimental foi substituída por @RequiresOptIn para APIs experimentais. Para chamar APIs experimentais, use androidx.annotation.OptIn em vez de androidx.annotation.experimental.UseExperimental, que foi descontinuado (Iff226).
  • Correção da ImageCapture com o flash Ligado/Automático que tira imagens desbotadas no Samsung Galaxy S7 (I30001).
  • Adição de uma API CameraState que será exposta pelo CameraInfo (I75392).

Versão 1.1.0-alpha03

24 de março de 2021

Lançamento de androidx.camera:camera-camera2:1.1.0-alpha03, androidx.camera:camera-core:1.1.0-alpha03 e androidx.camera:camera-lifecycle:1.1.0-alpha03. A versão 1.1.0-alpha03 contém estas confirmações.

Correções de bugs

  • Formato JPEG de saída para ImageCapture#OnImageCapturedCallback quando o modo Extensões foi ativado (I0d7b1).
  • Corrigida falha de inicialização em dispositivos UMIDIGI BISON (I57d9e, b/180818665).
  • A visualização esticada no Samsung A3 foi corrigida no PreviewView (Iacb30, b/180121821).

Versão 1.1.0-alpha02

24 de fevereiro de 2021

Lançamento de androidx.camera:camera-camera2:1.1.0-alpha02, androidx.camera:camera-core:1.1.0-alpha02 e androidx.camera:camera-lifecycle:1.1.0-alpha02. A versão 1.1.0-alpha02 contém estas confirmações.

Mudanças na API

  • Adicionada uma API ProcessCameraProvider.getAvailableCameraInfos() para recuperar diretamente informações sobre as câmeras disponíveis, que são todas as câmeras do dispositivo ou as selecionadas pelo CameraSelector fornecido em CameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector) (Ieac08).

Correções de bugs

  • A CameraX agora tenta forçar a abertura de uma câmera na primeira tentativa. Isso pode fazer com que ela roube a câmera de outros clientes quando o app tiver uma prioridade maior (Iab069, b/175820568).
  • Correção da falha de teste Robolectric quando setAvailableCamerasLimiter é usado em CameraXConfig (Ice307).
  • Essa mudança captura a exceção quando a fila de imagens é esgotada em ImageAnalysis. Por isso, em vez de uma falha, você pode notar que outros casos de uso apresentam congelamento ou lentidão. Por exemplo, visualização congelada/lenta (Ic12da, b/175851631).
  • Correção de ExtensionsErrorListener para informar erros quando apenas Preview ou ImageCapture está vinculado (I5ae39).
  • Foi corrigida a regressão de desempenho do ImageCapture, removendo a validação do local salvo da imagem antes de tirar uma foto. Após essa mudança, se o destino de salvamento for inválido, vai levar mais tempo para receber uma resposta de falha, já que ele vai tentar salvar a imagem depois que a foto for tirada (I1fd4e, b/177061560).
  • Correção da regressão de desempenho ImageCapture com OutputFileOptions do tipo "File" (I5164a, b/177061560).
  • Documentação atualizada para não recomendar o uso de ProcessCameraProvider.configureInstance(...) do código da biblioteca (Ib8a9f).

Versão 1.1.0-alpha01

27 de janeiro de 2021

Lançamento de androidx.camera:camera-camera2:1.1.0-alpha01, androidx.camera:camera-core:1.1.0-alpha01 e androidx.camera:camera-lifecycle:1.1.0-alpha01. A versão 1.1.0-alpha01 contém estas confirmações.

Correções de bugs

  • Solução alternativa incluída para dados de imagem corrompidos de forma intermitente em JPEGs na câmera traseira do SM-G930T (I52001, b/159831206).
  • Foi corrigido o problema IllegalArgumentException que ocorria quando todos os tamanhos compatíveis com a visualização eram menores que 640 x 480 e o tamanho da tela era maior que 640 x 480 (I2a63c, b/150506192).
  • Os recursos em bibliotecas que não são explicitamente declarados públicos (por exemplo, via public.xml) agora são privados por padrão (Ia1dcc, b/170882230).

Camera-Camera2, Camera-Core e Camera-Lifecycle: versão 1.0.2

Versão 1.0.2

29 de setembro de 2021

Lançamento de androidx.camera:camera-camera2:1.0.2, androidx.camera:camera-core:1.0.2 e androidx.camera:camera-lifecycle:1.0.2. A versão 1.0.2 contém estas confirmações.

Correções de bugs

  • Correção do problema em que as fotos capturadas ficam desfocadas no modo MAXIMIZE_QUALITY (I173a9, b/193823892).
  • Correção de um problema em que a imagem capturada com flash fica escura em muitos dispositivos (I4e510).

Camera-Camera2, Camera-Core e Camera-Lifecycle: versão 1.0.1

Versão 1.0.1

21 de julho de 2021

Lançamento de androidx.camera:camera-camera2:1.0.1, androidx.camera:camera-core:1.0.1 e androidx.camera:camera-lifecycle:1.0.1. A versão 1.0.1 contém estas confirmações.

Correções de bugs

  • Foi corrigido o problema em que ListenableFuture retornava em setZoomRatio e setLinearZoom não podia ser concluído em alguns dispositivos Android 11 (I716d7).

  • Foi corrigido o problema em que a câmera travava ao fechar o estado em alguns dispositivos e causava visualização em preto (I34c99).

Camera-Camera2, Camera-Core e Camera-Lifecycle: versão 1.0.0

Versão 1.0.0

5 de maio de 2021

Lançamento de androidx.camera:camera-camera2:1.0.0, androidx.camera:camera-core:1.0.0 e androidx.camera:camera-lifecycle:1.0.0. A versão 1.0.0 contém estas confirmações.

Principais recursos de 1.0.0

  • A CameraX é compatível com Preview, ImageCapture e Analysis.
  • A CameraX gerencia o ciclo de vida da câmera em uma API fácil de usar.
  • A CameraX tem como objetivo fornecer uma camada de compatibilidade que corrige muitos problemas do ecossistema de câmera do Android.

Problemas conhecidos

Versão 1.1.0-rc05

21 de abril de 2021

Lançamento de androidx.camera:camera-camera2:1.0.0-rc05, androidx.camera:camera-core:1.0.0-rc05 e androidx.camera:camera-lifecycle:1.0.0-rc05. A versão 1.0.0-rc05 contém estas confirmações.

Correções de bugs

  • Correção da ImageCapture com o flash Ligado/Automático que tira imagens desbotadas no Samsung Galaxy S7 (I30001).

Versão 1.0.0-rc04

24 de março de 2021

Lançamento de androidx.camera:camera-camera2:1.0.0-rc04, androidx.camera:camera-core:1.0.0-rc04 e androidx.camera:camera-lifecycle:1.0.0-rc04. A versão 1.0.0-rc04 contém estas confirmações.

Correções de bugs

  • Corrigida falha de inicialização em dispositivos UMIDIGI BISON (I57d9e, b/180818665).

Versão 1.0.0-rc03

24 de fevereiro de 2021

Lançamento de androidx.camera:camera-camera2:1.0.0-rc03, androidx.camera:camera-core:1.0.0-rc03 e androidx.camera:camera-lifecycle:1.0.0-rc03. A versão 1.0.0-rc03 contém estas confirmações.

Correções de bugs

  • Corrigir erro de formato no documento de ProcessCameraProvider#getInstance.
  • Correção da falha de teste Robolectric quando o setAvailableCamerasLimiter é usado no CameraXConfig.
  • Foi corrigida a regressão de desempenho do ImageCapture, removendo a validação do local salvo da imagem antes de tirar uma foto. Após essa mudança, se o destino de salvamento for inválido, vai levar mais tempo para receber uma resposta de falha, já que ele vai tentar salvar a imagem depois que a foto for tirada.
  • Essa mudança captura a exceção quando a fila de imagens é esgotada em ImageAnalysis. Por isso, em vez de uma falha, você pode notar que outros casos de uso apresentam congelamento ou lentidão. Por exemplo, visualização congelada/lenta.
  • Solução alternativa incluída para dados de imagem corrompidos de forma intermitente em JPEGs na câmera traseira do SM-G930T (I52001, b/159831206).
  • Essa mudança captura a exceção quando a fila de imagens é esgotada em ImageAnalysis. Por isso, em vez de uma falha, você pode notar que outros casos de uso apresentam congelamento ou lentidão. Por exemplo, visualização congelada/lenta (Ic12da, b/175851631).
  • Correção da falha de teste Robolectric quando setAvailableCamerasLimiter é usado em CameraXConfig (Ice307).
  • Foi corrigida a regressão de desempenho do ImageCapture, removendo a validação do local salvo da imagem antes de tirar uma foto. Após essa mudança, se o destino de salvamento for inválido, vai levar mais tempo para receber uma resposta de falha, já que ele vai tentar salvar a imagem depois que a foto for tirada (I1fd4e, b/177061560).
  • Correção da regressão de desempenho ImageCapture com OutputFileOptions do tipo "File" (I5164a, b/177061560).

Versão 1.0.0-rc02

27 de janeiro de 2021

Lançamento de androidx.camera:camera-camera2:1.0.0-rc02, androidx.camera:camera-core:1.0.0-rc02 e androidx.camera:camera-lifecycle:1.0.0-rc02. A versão 1.0.0-rc02 contém estas confirmações.

Correções de bugs

  • Foi corrigido o problema IllegalArgumentException, que ocorria quando todos os tamanhos compatíveis com a visualização eram menores que 640 x 480 e o tamanho da tela era maior que 640 x 480 (b/150506192).
  • Limite o número de tentativas de reabertura da câmera. Ao tentar se recuperar de alguns problemas ao abrir a câmera, a CameraX não vai mais tentar abri-la indefinidamente; em vez disso, ela vai parar depois de 10 segundos (I435d2).

  • Foi corrigido o problema IllegalArgumentException que ocorria quando todos os tamanhos compatíveis com a visualização eram menores que 640 x 480 e o tamanho da tela era maior que 640 x 480 (I2a63c, b/150506192).

Versão 1.0.0-rc01

16 de dezembro de 2020

Lançamento de androidx.camera:camera-camera2:1.0.0-rc01, androidx.camera:camera-core:1.0.0-rc01 e androidx.camera:camera-lifecycle:1.0.0-rc01. A versão 1.0.0-rc01 contém estas confirmações.

Mudanças na API

  • Mudança de CameraFilter e Camera2Filter para assumir CameraInfo (I6883d).
  • Adição da classe experimental Camera2CameraControl para permitir a interoperação com as APIs Camera2 dinamicamente (I45cf3).
  • Renomeação de Camera2CameraInfo#fromCameraInfo para #from (Ia2bd6).
  • Adição de uma API setAvailableCamerasLimiter experimental ao CameraXConfig para permitir que os apps otimizem a latência de inicialização, evitando a inicialização de câmeras não usadas (I6cf88).
  • Adição do método experimental CameraXConfig.Builder#setMinimumLoggingLevel() para permitir a definição de um nível mínimo de geração de registros da CameraX. Quando não definido, o padrão é Log#DEBUG (Ic3245).

Correções de bugs

  • Solução alternativa incluída para dados de imagem corrompidos de forma intermitente em JPEGs na câmera traseira do SM-G930V (I5aca5, b/159831206).
  • Ao tirar fotos com dispositivos Samsung SM-A716, se o flash estivesse sempre/ativado e o ambiente estivesse escuro, os resultados não eram exibidos. Esse problema foi corrigido. (If98b2, b/172036589).
  • Correção do problema em que a visualização não podia ser interrompida ao chamar Preview.setSurfaceProvider(null) (I3ac18).
  • Correção do problema de orientação ao capturar imagens de 4:3 em alguns dispositivos (I0e3fb, b/171492111).

Camera Camera2, Core e Lifecycle: versão 1.0.0-beta12

11 de novembro de 2020

Lançamento de androidx.camera:camera-camera2:1.0.0-beta12, androidx.camera:camera-core:1.0.0-beta12 e androidx.camera:camera-lifecycle:1.0.0-beta12. A versão 1.0.0-beta12 contém estas confirmações.

Correções de bugs

  • O flash automático foi desativado nos dispositivos Samsung A3 para corrigir a falha que ocorria ao tirar uma foto com o modo AE Flash automático nos dispositivos Samsung A3 (Ia5fe3, b/157535165).
  • Foi corrigido um problema em que a visualização era esticada em dispositivos Nexus 4 que executam o Android L (API de nível 21 e 22) (I4d407, b/158749159).
  • A implementação da classe base OnImageCapturedCallback#onCaptureSuccess não fecha mais a imagem. Isso serve para evitar comportamentos inesperados pelos desenvolvedores. Os desenvolvedores não precisam depender de super.onCaptureSuccess para fechar a imagem (Ifbf9c).
  • A variante androidx da anotação Experimental foi descontinuada para fornecer paridade com o Kotlin. Ela foi substituída pela anotação RequiresOptIn, e a inspeção do Java foi atualizada para oferecer suporte às novas anotações do Kotlin e à nova variante do AndroidX (I52495, b/151331381).

Camera-Camera2: versão 1.0.0-beta11

14 de outubro de 2020

Lançamento do androidx.camera:camera-camera2:1.0.0-beta11. A versão 1.0.0-beta11 contém estas confirmações.

Novos recursos

  • Suporte para a API CONTROL_ZOOM_RATIO do Android 11 para aumentar o zoom em dispositivos com Android 11 ou mais recentes que contêm CONTROL_ZOOM_RATIO_RANGE válido (I62cc6).

Correções de bugs

  • Correção do problema NumberFormatException que ocorria quando o ID de câmera não é um número inteiro (Ib2228).
  • Melhoria na latência de inicialização da CameraX e bindToLifecycle (I61dc5).
  • A criação de UseCases não exige a inicialização da CameraX para ser concluída. Todas as configurações específicas de implementação são definidas em UseCase quando ele é anexado a uma instância de Camera, que na API pública é ProcessCameraProvider.bindToLifecycle() (Ia5411).
  • <UseCase>.getTargetRotation() vai retornar Surface.ROTATION_0 se for chamado antes de ser anexado a uma instância de Camera, a menos que um targetRotation tenha sido definido no Builder ou UseCase (I80fcd).

Camera-Core: versão 1.0.0-beta11

14 de outubro de 2020

Lançamento do androidx.camera:camera-core:1.0.0-beta11. A versão 1.0.0-beta11 contém estas confirmações.

Novos recursos: compatível com a API CONTROL_ZOOM_RATIO do Android 11 para aumentar o zoom em dispositivos Android 11 ou versões mais recentes que contêm CONTROL_ZOOM_RATIO_RANGE válido. (I62cc6).

Correções de bugs

  • Correção do problema NumberFormatException que ocorria quando o ID de câmera não é um número inteiro (Ib2228).
  • A criação de UseCases não exige a inicialização da CameraX para ser concluída. Todas as configurações específicas de implementação são definidas em UseCase quando ele é anexado a uma instância de Camera, que na API pública é ProcessCameraProvider.bindToLifecycle() (Ia5411).
  • <UseCase>.getTargetRotation() vai retornar Surface.ROTATION_0 se for chamado antes de ser anexado a uma instância de Camera, a menos que um targetRotation tenha sido definido no Builder ou UseCase (I80fcd).

Camera-Core versão 1.0.0-beta10

23 de setembro de 2020

Lançamento do androidx.camera:camera-core:1.0.0-beta10. A versão 1.0.0-beta10 contém estas confirmações.

Correções de bugs

  • Correção do bug na validação do destino de salvamento de arquivo para capturas de imagem (I8c565, b/167697553).

Camera-Camera2: versão 1.0.0-beta10

23 de setembro de 2020

Lançamento do androidx.camera:camera-camera2:1.0.0-beta10. A versão 1.0.0-beta10 contém estas confirmações.

Correções de bugs

Camera-Camera2 versão 1.0.0-beta09

16 de setembro de 2020

Lançamento do androidx.camera:camera-camera2:1.0.0-beta09. A versão 1.0.0-beta09 contém estas confirmações.

Mudanças na API

  • Em vez de fornecer métodos estáticos, o Camera2CameraInfo usa uma instância do CameraInfo ao ser criado para recuperar informações relacionadas ao Camera2 (I5b844).

Correções de bugs

  • Correção de um problema com a proporção desejada em tablets. Selecione um tamanho 16:9 quando a proporção desejada estiver definida como AspectRatio.RATIO_16_9 (Ib7fcf, b/151969438).
  • Uma InitializationException foi gerada para que o app possa processar adequadamente o AssertionError ocorrido durante a criação de CameraCharacteristics (I89c8c, b/160524721).
  • Adição de interfaces experimentais para ExposureCompensation (If96c7).

Camera-Core: versão 1.0.0-beta09

16 de setembro de 2020

Lançamento do androidx.camera:camera-core:1.0.0-beta09. A versão 1.0.0-beta09 contém estas confirmações.

Mudanças na API

  • Correção do bug em que a janela de visualização era marcada como não nula em UseCaseGroup. Os desenvolvedores precisam ser capazes de criar uma janela de visualização sem definir uma (Ie3d2e).
  • Adição de interfaces experimentais para ExposureCompensation (If96c7).
  • Permissão de rotação desejada arbitrária para o Preview. As informações de transformação são calculadas e retornadas dinamicamente ao usuário por um novo callback TranformationInfoListener (I21470).

Correções de bugs

  • Foi corrigido o problema em que o flash em alguns dispositivos não desligava. Isso acontece quando o modo flash está definido como FLASH_MODE_ON para tirar uma foto e é modificado para FLASH_MODE_OFF quando ele é acionado. Esse sintoma é semelhante à ativação do modo lanterna (Ib4451, b/162568128).
  • O PreviewView é forçado a usar TextureView se o efeito de extensão está ativado e a implementação da biblioteca do fornecedor precisa executar um processo especial na plataforma de saída (I0c3cc).
  • Correção do vazamento de atividades/fragmentos quando um contexto de atividade/fragmento é transmitido para ProcessCameraProvider.getInstance(Context).

Problemas conhecidos

  • Quando o ViewPort estiver definido, o retângulo cortado de ImageCapture poderá estar incorreto em dispositivos que giram o buffer de imagem na HAL. Isso será corrigido na próxima versão.

Camera-Camera2 versão 1.0.0-beta08

19 de agosto de 2020

Lançamento do androidx.camera:camera-camera2:1.0.0-beta08. A versão 1.0.0-beta08 contém estas confirmações.

Correções de bugs

  • bindToLifecycle foi otimizado para ser executado rapidamente na linha de execução principal (I1d57e).
  • DisplayOrientedMeteringPointFactory usa uma instância de CameraInfo, em vez de CameraSelector, para que haja um mapeamento direto para que Camera vai gerar pontos. Todas as classes que usam DisplayOrientedMeteringPointFactory também aceitam uma instância de CameraInfo em vez de CameraSelector (I400c1).
  • Foi corrigido o problema de agrupamento do tamanho da proporção de resolução automática em que um tamanho de 16:9 mod16 (864x480) era selecionado quando a configuração de resolução de destino era 2016x1080 e havia outro tamanho de 1920x1080 16:9 com suporte (I53167, b/159363774).
  • Correção do problema de CameraControl em que ele não funciona durante uma disputa (I2279f, b/152333890, b/160714166).

Camera-Core: versão 1.0.0-beta08

19 de agosto de 2020

Lançamento do androidx.camera:camera-core:1.0.0-beta08. A versão 1.0.0-beta08 contém estas confirmações.

Mudanças na API

  • DisplayOrientedMeteringPointFactory usa uma instância de CameraInfo, em vez de CameraSelector, para que haja um mapeamento direto para a Camera que vai receber os pontos gerados. Todas as classes que usam DisplayOrientedMeteringPointFactory também aceitam uma instância de CameraInfo em vez de CameraSelector (I400c1).

Correções de bugs

  • Para captura de imagens, substitua a sinalização de virar para a horizontal nos metadados com base na direção da câmera (I28499).
  • A inicialização não deve mais falhar ao usar um Context que não retorna um objeto da Application de Context.getApplicationContext() (I3d3c9, b/160817073).

Camera-Camera2 versão 1.0.0-beta07

22 de julho de 2020

Lançamento do androidx.camera:camera-camera2:1.0.0-beta07. A versão 1.0.0-beta07 contém estas confirmações.

Correções de bugs

  • Corrigido o problema em que a visualização fica esticada em dispositivos legados do Android 5.0 (I0c03a).
  • Alguns tamanhos compatíveis com JPEG foram excluídos porque causam um problema de WYSIWYG em alguns dispositivos (Ib5128).

Camera-Core: versão 1.0.0-beta07

22 de julho de 2020

Lançamento do androidx.camera:camera-core:1.0.0-beta07. A versão 1.0.0-beta07 contém estas confirmações.

Mudanças na API

  • Os estilos fit FIT_CENTER, FIT_START e FIT_END foram mesclados com FIT. FIT significa que o retângulo cortado retornado terá o tamanho máximo possível do sensor (Ia73c3).
  • A visualização do retângulo cortado é configurada pela janela de visualização. Somente a área abrangida pelo corte deve ficar visível para os usuários finais (I142a4).

Correções de bugs

  • Corrigido o problema em que a visualização fica esticada em dispositivos legados do Android 5.0 (I0c03a).
  • Foi corrigido o problema de exceção ConcurrentModificationException ao desvincular casos de uso (I371c0).

Camera-Camera2 versão 1.0.0-beta06

24 de junho de 2020

Lançamento do androidx.camera:camera-camera2:1.0.0-beta06. A versão 1.0.0-beta06 contém estas confirmações.

Mudanças na API

  • Adição de interfaces experimentais para filtrar câmeras por ID e características da câmera (I28f61, link em inglês).

Correções de bugs

  • Correção do problema em que startFocusAndMetering falha ao se concentrar no Samsung Galaxy S7 (If3be7, b/159039233, links em inglês).
  • Foi corrigido o problema em que não era possível fechar a câmera depois de sair do app (I7a7b3).
  • Foi corrigida a falha na visualização em que a câmera mudava repetidas vezes ao usar a implementação SurfaceView da PreviewView (I920ce).
  • CameraControl#startFocusAndMetering vai falhar se nenhum dos MeteringPoint especificados puder gerar retângulos de medição válidos (Id53ce, link em inglês).

Camera-Core: versão 1.0.0-beta06

24 de junho de 2020

Lançamento do androidx.camera:camera-core:1.0.0-beta06. A versão 1.0.0-beta06 contém estas confirmações.

Mudanças na API

  • Adição de interfaces experimentais para filtrar câmeras por ID e características da câmera (I28f61, link em inglês).

Correções de bugs

  • A CameraX agora pode ser configurada com ProcessCameraProvider#configureInstance() antes de chamar ProcessCameraProvider#getInstance(). Isso permite a personalização do CameraXConfig sem precisar da implementação de CameraXConfig.Provider na classe Application do app (Ia1a8d, link em inglês).
  • CameraControl#startFocusAndMetering vai falhar se nenhum dos MeteringPoint especificados puder gerar retângulos de medição válidos (Id53ce, link em inglês).

Camera-Camera2 versão 1.0.0-beta05

10 de junho de 2020

Lançamento do androidx.camera:camera-camera2:1.0.0-beta05. A versão 1.0.0-beta05 contém estas confirmações.

Correções de bugs

  • Foi corrigida a falha no app ao inicializar a CameraX enquanto o smartphone estava no modo não perturbe. Uma InitializationException contém uma CameraUnavailableException que vai ser definida como o ListenableFuture do resultado da inicialização em vez de causar a falha do aplicativo (I9909a, b/149413835, links em inglês)
  • Correção da falha ao chamar startFocusAndMetering em dispositivos em que CONTROL_AF_STATE é nulo. (Ife55e, b/157084254, links em inglês)

Camera-Core: versão 1.0.0-beta05

10 de junho de 2020

Lançamento do androidx.camera:camera-core:1.0.0-beta05. A versão 1.0.0-beta05 contém estas confirmações.

Mudanças na API

  • Foi corrigida a falha no app ao inicializar a CameraX enquanto o smartphone estava no modo não perturbe. Um InitializationException contém um CameraUnavailableException que vai ser definido como o ListenableFuture do resultado da inicialização, em vez de causar falhas no aplicativo (I9909a, b/149413835, links em inglês)

Correções de bugs

  • Atualização do Javadocs de setTargetResolution e setTargetRotation. (Ia16f, link em inglês)

Camera-Camera2: versão 1.0.0-beta04

27 de maio de 2020

Lançamento do androidx.camera:camera-camera2:1.0.0-beta04. A versão 1.0.0-beta04 contém estas confirmações.

Correções de bugs

  • Permissão para aplicativos definirem qualquer parâmetro de solicitação de captura câmera2 via Camera2Interop sem causar uma falha. Observe se ocorrem problemas como resultado da modificação de parâmetros. A estabilidade e o comportamento não são garantidos ao modificar parâmetros usando o Camera2Interop (Ibe5a1, b/14103700, links em inglês)
  • Correção da inicialização automática ao usar um app em um dispositivo usando uma pseudolocalidade. (I3bef3, b/157676663, links em inglês)
  • Conversão de erros de registro relacionados ao caso de uso de remoções na depuração de registro no Camera2CameraImpl (I1a565, b/154422490, links em inglês)
  • Correção do problema em que a imagem capturada fica muito escura, mesmo quando o flash é disparado (I5d9fa, b/149729613).
  • Foi corrigido o bug em que o buffer em ImageProxy de ImageCapture não era retrocedido (I0c455, b/153249512).
  • Foram corrigidos os problemas em que a vinculação de ImageCapture apenas: (1) falhava ao tirar fotos com MAX_QUALITY; (2) gerava uma imagem de baixa qualidade porque a exposição automática não funcionava (I17782, b/145326998, links em inglês)
  • A confiabilidade da reabertura da câmera foi melhorada quando a CameraX é desconectada por outro processo ou caminho de código "roubando" a câmera (I1fbc3, b/153714651).

Camera-Core: versão 1.0.0-beta04

27 de maio de 2020

Lançamento do androidx.camera:camera-core:1.0.0-beta04. A versão 1.0.0-beta04 contém estas confirmações.

Mudanças na API

  • Adição de uma API experimental, CameraXConfig.Builder#setSchedulerHandler(), para definir o gerenciador usado internamente pela pilha de câmera da CameraX. Essa nova API junto a CameraXConfig.Builder#setCameraExecutor() precisa permitir controle total sobre as linhas de execução usadas pela pilha de câmera da CameraX. (I7bf32, b/121160431, links em inglês)

Correções de bugs

  • Foram corrigidas falhas em ImageAnalysis, em que o ImageProxy era acessado após o ImageReaderProxy ser fechado. Isso também faz com que todos os ImageProxy recebidos pelo Analyzer precisem estar fechados antes de o ImageReaderProxy ser fechado (I4b299, b/145956416, b/154155377, b/156357269).
  • Remoção do parâmetro CameraInfo de PreviewView#createSurfaceProvider(). Agora, PreviewView o recupera internamente de SurfaceRequest (If18f0, b/154652477, links em inglês)
  • Correção da inicialização automática ao usar um app em um dispositivo usando uma pseudolocalidade. (I3bef3, b/157676663, links em inglês)
  • Correção do problema em que a imagem capturada fica muito escura, mesmo quando o flash é disparado (I5d9fa, b/149729613).
  • Correção do problema com ImageAnalysis em que várias chamadas para setAnalyzer/clearAnalyzer resultavam no não recebimento de imagens para análise (I6169f, b/151605317, b/153514544).
  • Foi corrigido o bug em que o buffer em ImageProxy de ImageCapture não era retrocedido (I0c455, b/153249512).
  • Foi corrigido o problema em que a primeira câmera na lista de recursos compatíveis de CameraManager nem sempre estava selecionada para uso (I4c624, b/153418028, links em inglês)
  • Correção da falha intermitente causada pela configuração de Preview.SurfaceProvider que antes não liberava a superfície solicitada “java.lang.IllegalStateException: Camera surface session should only fail with request cancellation” (I8e4e7, b/155936225, links em inglês)

Camera-Camera2 versão 1.0.0-beta03

15 de abril de 2020

Lançamento do androidx.camera:camera-camera2:1.0.0-beta03. A versão 1.0.0-beta03 contém estas confirmações.

Correções de bugs

  • Correções para oferecer suporte ao lançamento de camera-core.

Camera-Core: versão 1.0.0-beta03

15 de abril de 2020

Lançamento do androidx.camera:camera-core:1.0.0-beta03. A versão 1.0.0-beta03 contém estas confirmações.

Correções de bugs

  • Correção da regressão de beta03 em casos em que chamar bindToLifecycle() sem UseCase geraria uma exceção. Isso impediu a recuperação de uma Camera sem vincular um UseCase.

Camera-Camera2: versão 1.0.0-beta02

1º de abril de 2020

Lançamento do androidx.camera:camera-camera2:1.0.0-beta02. A versão 1.0.0-beta02 contém estas confirmações.

Correções de bugs

  • O ImageInfo.getRotationDegrees() do ImageProxy produzido por ImageCapture foi corrigido para corresponder ao valor de orientação rotacional EXIF (Id4281, b/150802561, links em inglês)
  • A solicitação explícita de dependências da CameraX no build.gradle não é mais necessária para usar a implementação padrão de CameraX/Camera2. Agora, para casos em que a declaração de dependências estritas é obrigatória, todas as dependências da CameraX podem ser incluídas no arquivo de compilação. (I46e88, link em inglês)
  • Correção do problema IllegalArgumentException que acontecia nos dispositivos em que o tamanho da tela é menor que 640 x 480. (Ife3f2, b/150506192, links em inglês)
  • O bindToLifecycle foi corrigido para que só modifique o UseCase se a vinculação for realizada. Antes, ao chamar bindToLifecycle para fazer cálculos de resolução, o UseCase era atualizado. Agora, não é mais necessário atualizar o UseCase para fazer os cálculos (I78d9e, link em inglês)

Camera-Core: versão 1.0.0-beta02

1º de abril de 2020

Lançamento do androidx.camera:camera-core:1.0.0-beta02. A versão 1.0.0-beta02 contém estas confirmações.

Correções de bugs

  • O ImageInfo.getRotationDegrees() do ImageProxy produzido por ImageCapture foi corrigido para corresponder ao valor de orientação rotacional EXIF (Id4281, b/150802561, links em inglês)
  • O bindToLifecycle foi corrigido para que só modifique o UseCase se a vinculação for realizada. Antes, ao chamar bindToLifecycle para fazer cálculos de resolução, o UseCase era atualizado. Agora, não é mais necessário atualizar o UseCase para fazer os cálculos (I78d9e, link em inglês)
  • Foi corrigido um problema em que a sessão de captura do caso de uso Preview não estava sendo atualizada quando a superfície de visualização mudava após chamar Preview.setSurfaceProvider() mais de uma vez.

Camera-Camera2 versão 1.0.0-beta01

26 de fevereiro de 2020

Lançamento do androidx.camera:camera-camera2:1.0.0-beta01. A versão 1.0.0-beta01 contém estas confirmações.

Correções de bugs

  • SurfaceRequest.setSurface(Surface) foi renomeado como SurfaceRequest.provideSurface(Surface), e SurfaceRequest.setWillNotComplete() foi renomeado como SurfaceRequest.willNotProvideSurface() (I224fe).
  • Foi corrigido um problema com a proporção de uma imagem salva, que ficava errada após mudar o valor de rotação desejado usando ImageCapture.setTargetRotation() (I474ea, b/148763432)
  • A inicialização de variantes do app com o ProGuard ativado foi corrigida, preservando a sinalização que define o provedor CameraXConfig padrão (I2d6c1).

Camera-Core versão 1.0.0-beta01

26 de fevereiro de 2020

Lançamento do androidx.camera:camera-core:1.0.0-beta01. A versão 1.0.0-beta01 contém estas confirmações.

Mudanças na API

  • Em SurfaceRequest.provideSurface(), ListenableFuture foi substituído por Executor e Callback. Isso simplifica a API ao não exigir mais o processamento de exceções em provideSurface() e faz com que o callback provideSurface() não possa ser cancelado. O objetivo é evitar falhas em dispositivos mais antigos, causadas pelo lançamento prematuro de plataformas. O objeto SurfaceRequest.Result agora é usado para rastrear como uma SurfaceRequest usa a Surface fornecida. (I7854b).
  • SurfaceRequest.setSurface(Surface) foi renomeado como SurfaceRequest.provideSurface(Surface), e SurfaceRequest.setWillNotComplete() foi renomeado como SurfaceRequest.willNotProvideSurface() (I224fe).

Correções de bugs

  • Foi corrigido um problema com a proporção de uma imagem salva, que ficava errada após mudar o valor de rotação desejado usando ImageCapture.setTargetRotation() (I474ea, b/148763432)
  • A inicialização de variantes do app com o ProGuard ativado foi corrigida, preservando a sinalização que define o provedor CameraXConfig padrão (I2d6c1).
  • Atualização da documentação das APIs no modo flash para incluir valores possíveis (I4a3ec).

Camera-Camera2: versão 1.0.0-alpha10

10 de fevereiro de 2020

Lançamento do androidx.camera:camera-camera2:1.0.0-alpha10. A versão 1.0.0-alpha10 contém estas confirmações.

Correções de bugs

  • Aprimoramento da estabilidade em dispositivos INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY, garantindo que Surfaces sejam retidas somente durante o uso de Camera2 (I9dac2, link em inglês)
  • Correção do problema de visualização com pouca exposição em dispositivos LEGACY, ajustando CONTROL_AE_TARGET_FPS_RANGE corretamente (1224638, link em inglês)

Camera-Core: versão 1.0.0-alpha10

10 de fevereiro de 2020

Lançamento do androidx.camera:camera-core:1.0.0-alpha10. A versão 1.0.0-alpha10 contém estas confirmações.

Mudanças na API

  • Atualização de ImageCapture para que seja possível salvar imagens em Uri e OutputStream. Os métodos takePicture sobrecarregados foram unificados em apenas um. Atualização do app de teste para usar Uri como exemplo canônico (Ia3bec, link em inglês)
  • Preview.PreviewSurfaceProvider foi renomeado como Preview.SurfaceProvider. Os SurfaceProvider não exigem mais que os desenvolvedores criem o próprio ListenableFuture, e a Surface agora é fornecida por um novo objeto SurfaceRequest. O método Preview.getPreviewSurfaceProvider() foi removido devido ao potencial de uso indevido quando Preview está pareado com outras classes, como PreviewView (I20105, link em inglês)
  • getTargetRotation() e getTargetName() foram adicionados a Preview (Iceee7).
  • getTargetRotation(), getBackpressureStrategy() e getImageQueueDepth() foram adicionados a ImageAnalysis (I9d6d9, link em inglês)
  • getTargetRotation() e getCaptureMode() foram adicionados a ImageCapture() (I5bc17).
  • Os argumentos que anteriormente eram transmitidos em ImageCapture.OnImageSavedCallback.onError() e ImageCapture.OnImageCapturedCallback.onError() foram substituídos por um único argumento ImageCaptureException, que ainda contém todas as informações transmitidas anteriormente.
  • O argumento do arquivo anteriormente transmitido em ImageCapture.OnImageSavedCallback.onImageSaved() foi removido (I750d2, link em inglês)
  • As classes Preview e ImageCapture agora são marcadas como finais. (I7731b, link em inglês)
  • A API foi atualizada com os métodos getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio() e getLinearZoom() de junção da CameraInfo em getZoomState(), que retorna uma instância ZoomState (Ib19fe).
  • Os campos de API OPTION_TARGET_CLASS e OPTION_TARGET_NAME de CameraXConfig foram removidos, já que são destinados apenas para uso de biblioteca interna. Remoção do construtor de CameraXConfig.Builder (I96912, link em inglês)
  • Remoção da exigência de que o app inclua Application para inicializar a CameraX. A CameraX agora vai ser inicializada com uma configuração Camera2 padrão, desde que o artefato camera-camera2 esteja incluído no build.gradle do aplicativo (I58ff5, b/146923574).

Camera-Camera2 versão 1.0.0-alpha09

22 de janeiro de 2020

Lançamento do androidx.camera:camera-camera2:1.0.0-alpha09. A versão 1.0.0-alpha09 contém estas confirmações.

Mudanças na API

  • Adição de caminho de interoperabilidade de camera2 para extração de um ID de câmera Camera2. Você pode extrair o ID de câmera de CameraInfo usando Camera2CameraInfo.extractCameraId(). A amostra de código a seguir mostra como fazer isso:

    Camera camera = provider.bindToLifecycle(...);
    String cameraId =
        Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
    

    A classe Camera2CameraInfo precisa da markerClass ExperimentalCamera2Interop.

Camera-Core versão 1.0.0-alpha09

22 de janeiro de 2020

Lançamento do androidx.camera:camera-core:1.0.0-alpha09. A versão 1.0.0-alpha09 contém estas confirmações.

Mudanças na API

  • O parâmetro SurfaceOrientedMeteringPointFactory useCaseForSurface foi renomeado como useCaseForAspectRatio, e a documentação de referência foi expandida.
  • Os métodos FocusMeteringAction.Builder.from() foram substituídos pelos construtores FocusMeteringAction.Builder().
  • A função DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float) foi removida. Os aplicativos precisam usar o construtor que aceita um parâmetro Display e transmitir a exibição atual.
  • O Javadoc foi melhorado para APIs de foco e medição relacionadas a MeteringMode, sinalizações 3A e ao uso do parâmetro Display.
  • Expansão da documentação de referência para setZoomRatio e setLinearZoom.

Correções de bugs

  • Correção de problemas ao fechar e abrir câmeras, que resultam em falha na verificação de "pré-condição".
  • Correção de uma ConcurrentModificationException que podia ocorrer ao usar as APIs de lanterna e zoom.
  • Correção do problema para selecionar resoluções mais próximas da solicitada quando um tamanho de dimensões mod16 está disponível.
  • As APIs startFocusMetering e cancelFocusMetering agora se comportam conforme documentadas, com o tempo correto e possivelmente retornando erros quando ocorrem.
  • Foi corrigido o problema que ocorria quando uma resolução específica era solicitada com uma proporção de corte em um dispositivo que não era compatível com aquele tamanho. Agora, um tamanho não cortado de resolução suficiente será selecionado, quando disponível, para vincular a solicitação original.

Camera-Camera2 versão 1.0.0-alpha08

18 de dezembro de 2019

Lançamento do androidx.camera:camera-camera2:1.0.0-alpha08. A versão 1.0.0-alpha08 contém estas confirmações.

Problemas conhecidos

  • Nem todas as opções de solicitação de captura de Camera2 funcionam ao usar a interoperabilidade de Camera2. Se a opção solicitada não for compatível, a sessão não vai ser iniciada, resultando possivelmente em um erro como este: 09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination

Correções de bugs

  • Foi corrigido um problema em que uma tela preta de visualização aparecia após girar ou alternar a câmera para os níveis de API 21 e 22.

Mudanças na API

  • Experimental: adição de um caminho de interoperabilidade de camera2 para extrair o ID da câmera.

Camera-Core Versão 1.0.0-alpha08

18 de dezembro de 2019

Lançamento do androidx.camera:camera-core:1.0.0-alpha08. A versão 1.0.0-alpha08 contém estas confirmações.

Problemas conhecidos

  • Os apps que usam PreviewView ou CameraView podem ter uma proporção incorreta na visualização. Isso acontece depois de uma pausa ou retomada em alguns dispositivos FULL, como o Pixel2.

Correções de bugs

  • Atualização da documentação de FocusMeteringAction e CameraControl.
  • Implementação de TorchControl para enableTorch() e getTorchState().

Mudanças na API

  • IntDefs foram ocultadas, e constantes de IntDef foram removidas da definição de IntDef.
  • rotationDegrees movido da classe OnImageCaptureCallback para ImageInfo.
  • rotationDegrees movido da classe Analyzer para ImageInfo.

Camera-Camera2 Versão 1.0.0-alpha07

4 de dezembro de 2019

Lançamento do androidx.camera:camera-camera2:1.0.0-alpha07. A versão 1.0.0-alpha07 da camera-camera2 contém estas confirmações (link em inglês).

  • Camera2Config agora está disponível para uso na inicialização e na configuração de uma implementação baseada em Camera2 para a CameraX. Mais detalhes sobre como usar esse recurso na inicialização podem ser encontrados na seção camera-core das notas da versão.
  • A funcionalidade de interoperabilidade da camera2 agora está marcada como experimental e foi movida para um pacote separado, androidx.camera.camera2.interop..

Camera-Core Versão 1.0.0-alpha07

4 de dezembro de 2019

Lançamento do androidx.camera:camera-core:1.0.0-alpha07. A versão 1.0.0-alpha07 da camera-core contém estas confirmações (link em inglês).

Observe que há algumas mudanças significativas nessa versão Alfa conforme nos preparamos para a versão Beta. Recomendamos que você analise as mudanças e compartilhe seu feedback no Grupo do Google sobre CameraX. Para os desenvolvedores que usam a CameraX em apps que estão na Play Store, recomendamos esperar a versão Beta formal antes de fazer o upgrade da biblioteca nos aplicativos.

Mudanças na API

  • Importante: a inicialização da CameraX mudou. Os aplicativos precisam implementar CameraXConfig.Provider e usar a Camera2Config padrão fornecida por androidx.camera.camera2. Veja um uso típico:

    import androidx.camera.camera2.Camera2Config
    import androidx.camera.core.CameraXConfig
    
    public class MyCameraXApplication : Application(),  CameraXConfig.Provider {
        override fun getCameraXConfig(): CameraXConfig {
                return Camera2Config.defaultConfig(this)
        }
    }
    
  • A classe CameraX foi removida. bindToLifecycle(), unbind(), unbindAll(), isBound() e hasCamera(), anteriormente fornecidos pela chamada de classe da CameraX, agora estão disponíveis pelo ProcessCameraProvider.

  • Uma instância por processo de ProcessCameraProvider é recebida de maneira assíncrona usando o método estático ProcessCameraProvider.getInstance(), que retorna um futuro audível, que, por sua vez, fornece o ProcessCameraProvider na conclusão. Aqui, ele é mostrado em onCreate() em um uso típico. Você pode fazer chamadas para getInstance() posteriormente no ciclo de vida da atividade para adiar a latência de inicialização (por exemplo, para quando uma ação do usuário abrir a IU de uma câmera).

    import androidx.camera.lifecycle.ProcessCameraProvider
    import com.google.common.util.concurrent.ListenableFuture
    
    class MainActivity : AppCompatActivity() {
       private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider>
       override fun onCreate(savedInstanceState: Bundle?) {
           cameraProviderFuture = ProcessCameraProvider.getInstance(this);
      }
    
  • Um listener pode ser adicionado ao ListenableFuture retornado por getInstance(). Isso garante que o provedor da câmera possa ser recuperado do Future sem bloqueio em Future.get()

    cameraProviderFuture.addListener(Runnable {
      val cameraProvider = cameraProviderFuture.get()
      cameraProvider.bindToLifecycle(...)
    }, ContextCompat.getMainExecutor(this))
    
  • A seleção da câmera agora é feita por um seletor de câmera, e não mais por caso de uso.

    val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
    
  • CameraProvider.bindToLifecycle recebe o proprietário do ciclo de vida, o seletor de câmera e casos de uso, que são vinculados ao proprietário do ciclo de vida e executados para a câmera selecionada.

    cameraProvider.bindToLifecycle(this as LifecycleOwner,
           cameraSelector, preview, imageAnalysis)
    
  • As classes "Config" de caso de uso foram removidas. Em vez disso, crie casos de uso diretamente, definindo opções em cada builder de casos de uso. Por exemplo:

    preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
    
  • O caso de uso de Preview foi atualizado para aceitar uma superfície criada e gerenciada pelo aplicativo a fim de garantir as práticas recomendadas do Android. É altamente recomendável usar a classe de visualização PreviewView fornecida no pacote camera-view.

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • Consulte a documentação para anexar uma superfície gerenciada pelo aplicativo. Nesses casos, o app gerencia o ciclo de vida da superfície.

  • Importante: a implementação do método Analyzer ImageAnalysis precisa chamar image.close() nas imagens recebidas quando terminar o uso delas. Caso contrário, novas imagens podem não ser recebidas ou a câmera pode travar, dependendo da configuração de pressão de retorno. Consulte os documentos de referência para ver detalhes.

  • ImageAnalysis ImageReaderMode foi mudado para uma estratégia de pressão de retorno intdef.

  • ImageProxy.getImage() está marcado como experimental. Os aplicativos precisam anotar o uso, por exemplo, com @androidx.camera.core.ExperimentalGetImage.

  • O requisito de anotação UIThread para o Analyzer foi removido.

  • A função ImageAnalysis.clearAnalyzer() é adicionada para remover um analisador.

  • Os listeners com mais de um método foram renomeados para Callback:

    • ImageCapture.OnImageCapturedListener agora é ImageCapture.OnImageCapturedCallback
    • ImageCapture.OnImageSavedListener agora é ImageCapture.OnImageSavedCallback
    • VideoCapture.OnVideoSavedListener agora é VideoCapture.OnVideoSavedCallback
  • Enums foram mudados para IntDef.

  • Controles de zoom foram adicionados:

    • CameraControl.setLinearZoom()
    • CameraControl.setZoomRatio()
    • CameraInfo.getLinearZoom()
    • CameraInfo.getMaxZoomRatio()
    • CameraInfo.getZoomRatio()
  • CameraInfo.hasFlashUnit() foi adicionado para determinar se o hardware de flash/lanterna está presente.

  • O CameraInfo.isFlashAvailable() foi removido. A lanterna substitui a funcionalidade do flash. Mais detalhes estão incluídos na documentação de referência.

  • Os campos ImageCapture.Metadata foram substituídos por acessadores get/set/is.

  • startFocusMetering e cancelFocusMetering agora retornam ListenableFutures, que representam a operação assíncrona da chamada.

  • MeteringPoints agora funcionam como identificadores para ações de medição e são produzidos por fábricas. Os apps devem usar as fábricas já existentes, em vez de fábricas personalizadas.

Problemas corrigidos

  • Correção do problema ao tirar uma foto depois da retomada. Após uma pausa, a foto ficava pendente.
  • Problema conhecido: CameraControl.enableTorch() é funcional, mas o ListenableFuture<Void> retornado é sempre um futuro complete(success) imediato, mesmo sem uma unidade de flash. As próximas versões vão corrigir esse problema no comportamento final: quando não houver unidade de flash, enableTorch(true) vai falhar imediatamente (não enviando a solicitação para CaptureSession) e TorchState vai permanecer desativado.
  • Problema conhecido: startFocusAndMetering e cancelFocusAndMetering iniciam e cancelam a medição de foco, mas retornam um futuro completed (success) imediato que não representa o comportamento documentado. O FocusMeteringResult de ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering() é um resultado falso que isFocusSuccessful() e é sempre "false", diferentemente do comportamento documentado e pretendido.
  • Problema conhecido: uma fábrica de pontos de medição para uso com eventos de toque PreviewView está sendo desenvolvida. Por enquanto, os apps que conectam superfícies gerenciadas personalizadas podem usar as fábricas de pontos de medição já existentes. Caso contrário, nenhuma funcionalidade de toque de foco vai estar disponível para PreviewView.

Camera-Camera2 e Camera-Core Versão 1.0.0-alpha06

9 de outubro de 2019

Lançamento de androidx.camera:camera-camera2:1.0.0-alpha06 e androidx.camera:camera-core:1.0.0-alpha06. Estas são as confirmações incluídas em camera-camera2:1.0.0-alpha06 e estas são as confirmações incluídas em camera-core:1.0.0-alpha06.

Novos recursos

Mudanças nas proporções de configuração:

  • setTargetAspectRatioMode() foi adicionado e aceita um argumento enum. Isso define o modo de proporção com as opções RATIO_4_3 ou RATIO_16_9 em vez de uma proporção arbitrária. Isso reflete o fato de que apenas certas proporções são fornecidas pela câmera, em vez de proporções arbitrárias.
    • Atualmente, as únicas proporções disponíveis são 16:9 e 4:3. No caso de dispositivos 1:1, apenas alguns dispositivos têm essa opção disponível na câmera e apenas em resoluções limitadas. Os aplicativos que projetam uma interface 1:1 ou processamento individual precisam usar as opções mais flexíveis 16:9 ou 4:3 e cortar a exibição ou processar uma sub-região.
    • Essas proporções são orientadas para usar a área máxima do sensor.
  • getTargetAspectRatio() foi adicionado para usar as APIs de configuração de caso de uso, retornando a proporção destinada para a saída de caso de uso.
  • O método setTargetAspectRatio(Rational aspectRatio) foi modificado para ImageCapture para setTargetAspectRatioCustom(Rational aspectRatio). Quando definido, a saída de ImageCapture será cortada da forma correta.

APIs Executor

  • As funções a seguir aceitam um parâmetro de executor, que permite ao app controlar em qual executor a função vai ser executada.
    • API Preview.setOnPreviewOutputUpdateListener(). Se o executor não estiver presente para essa função, ele vai ser executado na linha de execução principal.
    • Preview.setOnPreviewOutputUpdateListener
    • FocusMeteringAction.Builder.setAutoFocusCallback
    • ImageAnalysis.setAnalyzer
    • ImageCapture.takePicture
    • CameraView.takePicture
    • CameraView.startRecording
    • VideoCapture.startRecording

CameraInfo adicionada com Check Flash disponível e APIs de rotação do sensor

  • Adição de CameraInfo e um método getCameraInfo, que permite que os apps verifiquem se uma lente com a CameraInfo está disponível e se há um flash disponível na câmera. Por exemplo:

    try {
        CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing);
        LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable();
        flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE);
    } catch (CameraInfoUnavailableException e) {
        Log.w(TAG, "Cannot get flash available information", e);
        flashToggle.setVisibility(View.VISIBLE);
    }
    
  • Adição de CameraInfo.getSensorRotationDegrees() Ele fornece a orientação do sensor da câmera em relação à orientação natural do dispositivo, ou para conveniência, em relação a uma orientação descrita por uma rotação de superfície (que descreve uma orientação relativa à orientação natural).

Mudanças na API e correções de bugs

  • Proporções: para cada caso de uso, é preciso que os aplicativos chamem apenas um de setTargetResolution() ou setTargetAspectRatio(). Chamar ambos no mesmo builder retornará um erro.
    • Em geral, recomenda-se usar setTargetAspectRatio() com base no design da IU do aplicativo. Resoluções específicas serão baseadas no caso de uso. Por exemplo, a visualização vai ser próxima a resoluções de tela, e a captura de imagem vai fornecer imagens estáticas de alta resolução. Consulte a tabela de resoluções automáticas para ter mais informações.
    • Use setTargetResolution() para casos mais específicos, por exemplo, quando o mínimo (para salvar o cálculo) ou as resoluções máximas (para detalhes de processamento) forem necessárias.
  • API Executor: a chamada setCallbackHandler() foi removida das APIs de configuração de casos de uso. Em vez disso, os aplicativos podem definir o executor como um parâmetro em várias outras APIs que definem um callback.
  • Anotações nulas atualizadas para várias funções.
  • Correção de um problema que fazia com que java.lang.IllegalStateException at Camera$StateCallback.onError fosse gerado ao abrir a câmera.
  • Foi corrigido o problema que selecionava resoluções muito pequenas (menos de 640 x 480) quando o app solicitava resoluções maiores ou padrão, resultando em uma imagem de visualização bloqueada ou desfocada. Os aplicativos que precisam especificamente de resoluções menores podem solicitá-los explicitamente.
  • Correção de um problema em que a câmera mostrava uma tela preta (falha ao iniciar a câmera) após retornar de uma intent que acionou outro aplicativo de câmera.
  • Correção de um bug que gerava o seguinte erro quando os apps eram iniciados ou interrompidos várias vezes: java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
  • Correção do seguinte erro que ocorre ao desativar o ImageAnalysis: java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
  • Adição de mais testes para o fluxo de desconexão da câmera.
  • Mais robustez do sistema de testes ao realizar testes consecutivos de câmera.

Camera-Camera2 e Camera-Core Versão 1.0.0-alpha05

5 de setembro de 2019

Lançamento de androidx.camera:camera-camera2:1.0.0-alpha05 e androidx.camera:camera-core:1.0.0-alpha05. Estas são as confirmações incluídas em camera-camera2:1.0.0-alpha05, e estas são as confirmações incluídas em camera-core:1.0.0-alpha05.

  • Mudança da API: variáveis de erro de caso de uso renomeadas:

    • ImageCapture.UseCaseError foi renomeado para ImageCapture.ImageCaptureError
    • VideoCapture.UseCaseError foi renomeado para VideoCapture.VideoCaptureError
  • A API CameraControl foi adicionada às APIs do Toque para focar.

    • A API foi adicionada para receber um CameraControl da CameraX para uma câmera, selecionada com "lens facing":

      CameraX.getCameraControl(LensFacing lensFacing)

    • MeteringPointFactory, MeteringPoint, MeteringMode e FocusMeteringAction foram adicionados para executar o Toque para focar.

      MeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height);
      MeteringPoint point = factory.createPoint(x, y);
      FocusMeteringAction action = FocusMeteringAction.Builder.from(point,
                                       MeteringMode.AF_ONLY)
          .addPoint(point2, MeteringMode.AE_ONLY) // could have many
          .setAutoFocusCallback(new OnAutoFocusListener(){
              public void onFocusCompleted(boolean isSuccess) {
              }
          })
          // auto calling cancelFocusAndMetering in 5 sec.
          .setAutoCancelDuration(5, TimeUnit.Second)
          .build();
      
    • Adição da API para CameraControl iniciar e cancelar a medição de foco:

      getCameraControl(lensFacing).startFocusAndMetering(action); getCameraControl(lensFacing).cancelFocusAndMetering();

    • APIs foram adicionadas às Metering Point Factories que auxiliam na conversão de coordenadas de toque para coordenadas de sensor, com base nas classes de visualização:

      MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView); MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);

  • Aplique chamando os seguintes métodos na linha de execução principal (IU), gerando um IllegalStateException quando não estiverem. Versões futuras vão permitir o uso em outras linhas de execução e garantirão a serialização.

    • CameraX.bindToLifecycle()
    • CameraX.unbind()
    • CameraX.unbindAll()
    • ImageAnalysis.setAnalyzer()
    • ImageAnalysis.getAnalyzer()
    • ImageAnalysis.removeAnalyzer()
    • Preview.removePreviewOutputListener()
    • Preview.getOnPreviewOutputUpdateListener()
    • Preview.setOnPreviewOutputUpdateListener()
  • Várias configurações agora aceitam parâmetros nulos, e getters correspondentes podem retornar nulo.

  • Foi corrigido problema ao testar em emuladores que não oferecem suporte às configurações de AF/AE/AWB.

  • Correção do bug de falha na rotação durante a análise da imagem.

  • Correção do bug em que a visualização aparece em preto no início (sem dados da câmera), após a rotação ou alterna entre as câmeras frontal e traseira.

  • Remoção de testes para vários casos de uso simultâneos de análise de imagem. Para garantir a compatibilidade, os aplicativos só devem anexar um único caso de uso de análise de imagem.

  • Adicionados testes robolétricos iniciais para a câmera falsa no conjunto de teste de câmera (WIP).

  • Remoção do teste do Camera2Inititalizer porque a cobertura não era clara ou era enganosa.

Camera-Camera2 e Camera-Core Versão 1.0.0-alpha04

7 de agosto de 2019

Lançamento de androidx.camera:camera-camera2:1.0.0-alpha04 e androidx.camera:camera-core:1.0.0-alpha04. A versão 1.0.0-alpha04 contém estas confirmações (link em inglês).

Novos recursos

Alterações na seleção de Proporção e de Resolução

O objetivo da CameraX é inicializar uma sessão de câmera. Isso significa que a CameraX vai comprometer a resolução/proporção com base na capacidade do dispositivo, a fim de iniciar uma sessão de captura como principal objetivo. Assim, é possível que as solicitações não sejam atendidas de maneira precisa. Isso pode acontecer porque:

  • Os dispositivos não são compatíveis com a resolução solicitada.
  • Existem problemas de compatibilidade, como em dispositivos LEGADOS, em que determinadas resoluções precisam ser usadas para um funcionamento correto.
  • Em alguns dispositivos, determinados formatos estão disponíveis apenas em proporções específicas.
  • Existe uma preferência por um "mod16 mais próximo" para codificação JPEG ou de vídeo. Consulte CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP.

Embora a CameraX crie e gerencie a sessão, sempre verifique os tamanhos de imagem retornados na saída do caso de uso no seu código e faça as modificações necessárias.

Algumas mudanças foram feitas para definir resoluções e proporções, com o objetivo de tornar a API mais clara:

  • Agora, quando nenhuma outra proporção estiver definida, o caso de uso de visualização terá uma proporção padrão de 4:3.
  • Quando a CameraX considerar internamente mudanças para resoluções e proporções solicitadas com base na capacidade do dispositivo, ela tentará primeiramente manter a mesma proporção (conforme determinado por qualquer uma das chamadas setTargetAspectRatio ou setTargetResolution)
  • Uma versão "mod16 mais próximo" da resolução é considerada como a mesma proporção.

Modo sem bloqueio do ImageAnalysis

  • O comportamento de ImageReaderMode.ACQUIRE_LATEST_IMAGE não faz bloqueios. Ele adquire a imagem mais recente na fila, mas descarta as imagens não usadas continuamente para permitir que o pipeline da câmera evite o bloqueio.
  • O analisador pode manter uma única imagem indefinidamente, sem paralisar o pipeline.
  • Se o aplicativo disponibilizar um executor que faça bloqueios, o caso de uso do ImageAnalysis vai ser bloqueado.
  • O conjunto de executores padrão se comporta internamente como um executor sem bloqueio.

Correções de bugs

  • Foram corrigidos problemas de tempo limite que aguardavam convergência 3A ao capturar imagens em dispositivos sem foco, exposição e balanço de branco automáticos.
  • Correção do problema que ocorria ao tirar fotos rapidamente com o ImageCapture. Correção de erro: java.lang.IllegalStateException: maxImages (2) has already been acquired
  • Um problema que ocorria quando o atributo setLensFacing não era chamado para um caso de uso, resultando em uma java.lang.IllegalArgumentException: Unable to get camera ID for use case foi corrigido.
  • Correção do problema que ocorria quando o dispositivo LEGADO exigia uma proporção específica como resolução JPEG máxima.
  • Correção do problema que ocorria ao colocar o app em segundo plano enquanto a câmera era inicializada.
  • O problema em APIs anteriores à 25 foi corrigido com a remoção do erro checkAndUpdateEglState: invalid current EGLDisplay.
  • Correção do problema ao desvincular a visualização depois de ativar e iniciar extensões.
  • Artefatos de build para visualização e extensões de câmera agora são publicados como versões Alfa.

Camera-Camera2 e Camera-Core Versão 1.0.0-alpha03

2 de julho de 2019

Lançamento de androidx.camera:camera-core:1.0.0-alpha03 e androidx.camera:camera-camera2:1.0.0-alpha03. A versão 1.0.0-alpha03 contém estas confirmações.

Mudanças na API

  • Adição de esclarecimento javadoc para "target" nas chamadas de configuração setTarget.

Camera-Core

  • Foi corrigida a falha de superfície de entrada/saída não configurada ao abrir/fechar ou vincular/desvincular rapidamente.
  • Movimentação para novas implementações de Futures.
  • Correções de teste para aumentar a robustez.
  • O teste de integração do Core agora mostra o tempo de captura de fotos.
  • Desenvolvimento de classe compat interna para executores.
  • As imagens de captura do app de teste de tempo aguardam que as anteriores fiquem completas e com estabilidade aprimorada.

Extensões

  • Adição de verificações de controle de versão
  • Cobertura de teste extra: callbacks de evento de extensão
  • Melhorias para imagem e metadados correspondentes internamente
  • Correção da alternância de modo no app de teste

Camera-Camera2 e Camera-Core Versão 1.0.0-alpha02

5 de junho de 2019

Lançamento de androidx.camera:camera-core:1.0.0-alpha02 e androidx.camera:camera-camera2:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estas confirmações.

Correções de bugs

  • Correção do problema de divisão por zero ao usar o emulador.
  • Foi corrigido o erro NullPointerException/Surface Abandoned, que ocorria em alguns dispositivos ao tirar fotos rapidamente durante a desvinculação e nova vinculação de casos de uso em pouco tempo.
  • Foi corrigido um problema interno para garantir que as atualizações da solicitação de captura afetem todas as superfícies de forma consistente.
  • Melhorias de estabilidade ao reiniciar casos de uso em novas instâncias de apps.
  • Alterações na arquitetura interna para preparar a compatibilidade com executores na API.
  • Esclarecimentos extras do Javadoc sobre gerenciamento de classes e ciclos de vida da CameraX.
  • Adição de teste de instrumentação para o app de teste de desempenho Antelope.
  • Remoção da necessidade de "-keepattributes Signature" na configuração do Proguard para apps.

Camera-Camera2 e Camera-Core 1.0.0-alpha01

7 de maio de 2019

Lançamento de androidx.camera:camera-core:1.0.0-alpha01 e androidx.camera:camera-camera2:1.0.0-alpha01. A versão 1.0.0-alpha01 contém estas confirmações.

Camera-Lifecycle: versão 1.0.0-beta11

14 de outubro de 2020

Lançamento do androidx.camera:camera-lifecycle:1.0.0-beta11. A versão 1.0.0-beta11 contém estas confirmações.

Correções de bugs

  • <UseCase>.getTargetRotation() vai retornar Surface.ROTATION_0 se for chamado antes de ser anexado a uma instância de Camera, a menos que um targetRotation tenha sido definido no Builder ou UseCase (I80fcd).

Camera-Lifecycle versão 1.0.0-beta10

23 de setembro de 2020

Lançamento do androidx.camera:camera-lifecycle:1.0.0-beta10. A versão 1.0.0-beta10 contém estas confirmações.

Correções de bugs

Camera-Lifecycle versão 1.0.0-beta09

16 de setembro de 2020

Lançamento do androidx.camera:camera-lifecycle:1.0.0-beta09. A versão 1.0.0-beta09 contém estas confirmações.

Camera-Lifecycle versão 1.0.0-beta08

19 de agosto de 2020

Lançamento do androidx.camera:camera-lifecycle:1.0.0-beta08. A versão 1.0.0-beta08 contém estas confirmações.

Correções de bugs

  • A inicialização não deve mais falhar ao usar um Context que não retorna um objeto da Application de Context.getApplicationContext() (I3d3c9, b/160817073).

Camera-Lifecycle versão 1.0.0-beta07

22 de julho de 2020

Lançamento do androidx.camera:camera-lifecycle:1.0.0-beta07. A versão 1.0.0-beta07 contém estas confirmações.

Camera-Lifecycle versão 1.0.0-beta06

24 de junho de 2020

Lançamento do androidx.camera:camera-lifecycle:1.0.0-beta06. A versão 1.0.0-beta06 contém estas confirmações.

Mudanças na API

  • Agora, a CameraX pode ser configurada com o ProcessCameraProvider#configureInstance() antes de chamar ProcessCameraProvider#getInstance(). Isso permite a personalização do CameraXConfig sem precisar implementar CameraXConfig.Provider na classe Application do app (Ia1a8d, link em inglês).

Camera-Lifecycle versão 1.0.0-beta05

10 de junho de 2020

Lançamento do androidx.camera:camera-lifecycle:1.0.0-beta05. A versão 1.0.0-beta05 contém estas confirmações.

Correções de bugs

  • Foi corrigida a falha no app ao inicializar a CameraX enquanto o smartphone estava no modo não perturbe. Um InitializationException contém um CameraUnavailableException que vai ser definido como o ListenableFuture do resultado da inicialização, em vez de causar falhas no aplicativo (I9909a, b/149413835, links em inglês)

Camera-Lifecycle: versão 1.0.0-beta04

27 de maio de 2020

Lançamento do androidx.camera:camera-lifecycle:1.0.0-beta04. A versão 1.0.0-beta04 contém estas confirmações.

Camera-Lifecycle versão 1.0.0-beta03

15 de abril de 2020

Lançamento do androidx.camera:camera-lifecycle:1.0.0-beta03. A versão 1.0.0-beta03 contém estas confirmações.

Correções de bugs

  • Correção da regressão de beta03 em casos em que chamar bindToLifecycle() sem UseCase geraria uma exceção. Isso impediu a recuperação de uma Camera sem vincular um UseCase.
  • Correções para oferecer suporte ao lançamento de camera-core.

Camera-Lifecycle versão 1.0.0-beta01

26 de fevereiro de 2020

Lançamento do androidx.camera:camera-lifecycle:1.0.0-beta01. A versão 1.0.0-beta01 contém estas confirmações.

Correções de bugs

  • A documentação foi corrigida para mencionar que, ao receber um ProcessCameraProvider durante a inicialização, uma configuração padrão é usada e a extensão de Application é opcional (I5e395).

Camera-Lifecycle: versão 1.0.0-beta02

1º de abril de 2020

Lançamento do androidx.camera:camera-lifecycle:1.0.0-beta02. A versão 1.0.0-beta02 contém estas confirmações.

Correções de bugs

  • Atualização para oferecer suporte às correções de bugs nos artefatos camera-camera2:1.0.0-beta02 e camera-core:1.0.0-beta02.

Camera-Lifecycle: versão 1.0.0-alpha10

10 de fevereiro de 2020

Lançamento do androidx.camera:camera-lifecycle:1.0.0-alpha10. A versão 1.0.0-alpha10 contém estas confirmações.

Mudanças na API

  • A anotação @MainThread foi adicionada aos métodos BindToLifecycle, unind e unindAll (I990d2, link em inglês)

Camera-Lifecycle versão 1.0.0-alpha03

22 de janeiro de 2020

androidx.camera:camera-lifecycle:1.0.0-alpha03 é lançado. A versão 1.0.0-alpha03 contém estas confirmações.

Atualizações

  • Várias correções e atualizações compatíveis com as mudanças de Camera Core e Camera2.

Camera-Lifecycle Versão 1.0.0-alpha02

18 de dezembro de 2019

Lançamento do androidx.camera:camera-lifecycle:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estas confirmações.

Mudanças na dependência

  • Atualizada para usar androidx.camera:camera-core:1.0.0-alpha08.

Camera-Lifecycle Versão 1.0.0-alpha01

4 de dezembro de 2019

Lançamento do androidx.camera:camera-lifecycle:1.0.0-alpha01. A versão 1.0.0-alpha01 do camera-lifecycle contém estas confirmações (link em inglês).

Observações sobre a API

  • O artefato camera-lifecycle foi adicionado, fornecendo a interface LifeCycleCameraProvider e uma implementação chamada ProcessCameraProvider, que oferece muitas das funções da classe CameraX anterior no núcleo e é usada por meio do método getInstance().
  • Os apps precisam incluir a biblioteca camera-lifecycle para usar a CameraX.
  • Veja as notas na seção camera-core sobre como inicializar a CameraX usando um ProcessCameraProvider.

Camera-Extensions e Camera-View: versão 1.0.0

Versão 1.0.0-alpha32

15 de dezembro de 2021

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha32 e androidx.camera:camera-view:1.0.0-alpha32. A versão 1.0.0-alpha32 contém estas confirmações.

Mudanças na API

  • Remoção de anotações @RequiresApi(21) desnecessárias das classes/interfaces internas (I8e286, b/204917951).
  • Atualização de arquivos de API para o artefato camera-extensions (If683a, b/161377155).

Correções de bugs

  • O app não tem mais permissão para ativar os modos de extensão ao vincular a VideoCapture. A CameraX Extensions oferece suporte apenas a ImageCapture e Preview. A VideoCapture ainda não tem suporte. Se o app vincular a VideoCapture e ativar qualquer modo de extensão, uma IllegalArgumentException vai ser gerada (I0d87b).
  • O elemento CameraSelector#filter não gera mais uma IllegalArgumentException quando o conjunto de resultados está vazio (I27804).
  • A API ExtensionsManager#getInstance foi renomeada como getInstanceAsync porque retorna uma interface ListenableFuture. O sufixo "Async" do nome da função mostra claramente que essa é uma função assíncrona (I279d2).
  • O parâmetro de resolução da API ExtensionsManager#getEstimatedCaptureLatencyRange foi removido, porque os usuários não sabem quais tamanhos são compatíveis com o caso de uso ImageCapture e não conseguem distinguir se as informações de latência retornadas são para o tamanho máximo de saída de captura ou o parâmetro de resolução de entrada (I74bb2).
  • O parâmetro CameraProvider das funções ExtensionsManager foi movido para a API getInstance(). Assim, os usuários não precisam inserir o parâmetro CameraProvider todas as vezes ao chamar as funções ExtensionsManager (Ic7e48).

Versão 1.0.0-alpha31

17 de novembro de 2021

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha31 e androidx.camera:camera-view:1.0.0-alpha31. A versão 1.0.0-alpha31 contém estas confirmações.

Mudanças na API

  • CameraSelector#filter foi adicionado à API pública para filtrar uma lista de CameraInfos com base em um CameraSelector (I105d0).

Correções de bugs

  • Corrigimos uma falha que acontecia ao alternar rapidamente o modo de extensões em determinados dispositivos (Iebbef).

Versão 1.0.0-alpha30

13 de outubro de 2021

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha30 e androidx.camera:camera-view:1.0.0-alpha30. A versão 1.0.0-alpha30 contém estas confirmações.

Mudanças na API

  • A anotação @RequiresApi(21) foi adicionada a todas as classes da CameraX e a minSdkVersion foi descartada do AndroidManifest.xml. Isso permitirá que o camera-core seja facilmente integrado a aplicativos que têm uma minSdkVersion menor que 21, mas querem usar caminhos de código que dependem da API 21 e versões mais recentes condicionalmente. Em aplicativos com a minSdkVersion 21 ou versões mais recentes, nenhuma ação é necessária (Ie7f2e, b/200599470).

Correções de bugs

  • Foi corrigido o problema AbstractMethodError, que acontece quando o ProGuard está ativado (Iae468, b/201177844).

Versão 1.0.0-alpha29

29 de setembro de 2021

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha29 e androidx.camera:camera-view:1.0.0-alpha29. A versão 1.0.0-alpha29 contém estas confirmações.

Mudanças na API

  • A anotação ExperimentalUseCaseGroup foi removida agora que as APIs não são mais experimentais (I01ef5).
  • Remova RotationProvider#removeAllListeners(). Em vez disso, use RotationProvider#removeListener(...) (Id9d4a).
  • Atualização da classe RotationReceiver: mudança do set/clear do Listener para add/remove/removeAll, remoção da variação setListener que usa a linha de execução principal por padrão e adição de anotação de métodos (Ib1669).

Correções de bugs

  • ExtensionMode#BEAUTY foi renomeado como FACE_RETOUCH para representar corretamente o que é feito pelo modo de extensão (I61f54, b/198515274).
  • Correção do problema em que a câmera era fechada inesperadamente quando vários CameraController e PreviewView eram usados em uma atividade (Ibfd18, b/197539358).

Versão 1.0.0-alpha28

18 de agosto de 2021

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha28 e androidx.camera:camera-view:1.0.0-alpha28. A versão 1.0.0-alpha28 contém estas confirmações.

Mudanças na API

  • A anotação ExperimentalUseCaseGroupLifecycle foi removida, agora que as APIs não são mais experimentais (I17b85).
  • RotationListener foi refatorado e renomeado como RotationProvider. Ele continua oferecendo o mesmo recurso com uma API um pouco diferente (Idffc5).
  • TAP_TO_FOCUS_UNSUCCESSFUL foi renomeado como TAP_TO_FOCUS_NOT_FOCUSED, e TAP_TO_FOCUS_SUCCESSFUL foi renomeado como TAP_TO_FOCUS_FOCUSED. OutputSize finalizado (I099fa).

Correções de bugs

  • As classes <EffectName><UseCase>Extender descontinuadas, o ExtensionsErrorListener e as APIs ExtensionsManager relacionadas foram removidos (I3b8c3).

Versão 1.0.0-alpha27

21 de julho de 2021

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha27 e androidx.camera:camera-view:1.0.0-alpha27. A versão 1.0.0-alpha27 contém estas confirmações.

Mudanças na API

  • A API de janela de visualização foi promovida, deixando de ser experimental. Removida a anotação experimental da API (I717ea).
  • CoordinateTransform#getTransform foi renomeado como CoordinateTransform#transform, e o JavaDoc foi atualizado (I864ae).

Correções de bugs

  • Correção do problema de extensão do modo PreviewView PERFORMANCE ao usá-lo em conjunto com a IU do Compose (Ie1137, b/183864890).

Versão 1.0.0-alpha26

30 de junho de 2021

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha26 e androidx.camera:camera-view:1.0.0-alpha26. A versão 1.0.0-alpha26 contém estas confirmações.

Mudanças na API

  • Adicionado um novo método, CameraController#getTapToFocusState(), que expõe o resultado mais recente do Toque para focar (Iaccb0).
  • Mais recursos da camera-core foram adicionados ao CameraController: getters/setters para proporções de destino, resolução de destino, modo de captura, CameraControl e executores personalizados (Iea8f2).
  • Uma classe RotationReceiver que recebe mudanças de rotação de Surface foi adicionada. Ela pode ser usada para definir a rotação desejada quando o dispositivo está no modo retrato/paisagem fixo (Ib278f).
  • Novas APIs públicas getEstimatedCaptureLatencyRange foram expostas na classe ExtensionsManager (I6a8ec).
  • ExtensionsErrorListener foi descontinuado. Atualmente, essa interface só é usada para monitorar se uma visualização ou a ImageCapture está ausente ao ativar os modos de extensão. A CameraX adicionará automaticamente uma visualização ou ImageCapture extra para que as funções de extensão funcionem bem. Depois disso, nenhum erro será informado por essa interface (I47d9e).
  • ExtensionManager getInstance, isExtensionAvailable e getExtensionEnabledCameraSelector das APIs públicas foram expostos, e as classes <EffectName><UseCase>Extender e APIs relacionadas antigas foram descontinuadas (I329e6).

Versão 1.0.0-alpha25

2 de junho de 2021

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha25 e androidx.camera:camera-view:1.0.0-alpha25. A versão 1.0.0-alpha25 contém estas confirmações.

Mudanças na API

  • As APIs ExperimentalCameraFilter agora não estão mais no estágio experimental e se tornaram APIs formais. Elas podem ser usadas sem a anotação OptIn (I4bc94).
  • Um utilitário que transforma coordenadas entre casos de uso foi adicionado. Exemplo de uso: transformar as coordenadas detectadas no caso de uso do ImageAnalysis e destacar o objeto detectado na visualização (I63ab1, b/137515129).
  • A CameraView foi removida. CameraView foi substituída por CameraController. Consulte o guia de migração (em inglês) para aprender a migrar: (Id5005).

Correções de bugs

  • ExperimentalUseCaseGroupLifecycle foi substituído por ExperimentalUseCaseGroup (I3b2ef, b/159033688).

Versão 1.0.0-alpha24

21 de abril de 2021

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha24 e androidx.camera:camera-view:1.0.0-alpha24. A versão 1.0.0-alpha24 contém estas confirmações.

Correções de bugs

  • A anotação @Experimental foi substituída por @RequiresOptIn para APIs experimentais. Para chamar APIs experimentais, use androidx.annotation.OptIn em vez de androidx.annotation.experimental.UseExperimental, que foi descontinuado (Iff226).
  • Correção do problema estendido do PreviewView no Samsung J5 Prime (Ib10b6)

Camera Extensions e View versão 1.0.0-alpha23

24 de março de 2021

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha23 e androidx.camera:camera-view:1.0.0-alpha23. A versão 1.0.0-alpha23 contém estas confirmações.

Mudanças na API

  • O uso da CameraView foi descontinuado. Em vez disso, use LifecycleCameraController. Consulte o guia de migração (em inglês) (Idac2c).
  • A anotação FloatRange foi adicionada a setLinearZoom() (I69971).

Correções de bugs

  • As dependências de visualização de câmera foram fixadas para depender de artefatos da versão 1.0.0. A dependência de camera-view não vai mais fazer com que a resolução de dependência do Gradle atualize automaticamente o camera-core, o camera-camera2 e o camera-lifecycle para a versão 1.1.0 mais recente dos artefatos, embora a camera-view ainda seja compatível com esses artefatos se estiverem explicitamente configurados para usar a versão 1.1.0 (Ic8fa1, b/181599852).
  • A visualização esticada no Samsung A3 foi corrigida no PreviewView (Iacb30, b/180121821).
  • Corrigido o problema em que o seletor da câmera não podia ser definido antes da inicialização da câmera (Ic8bd0).

Camera Extensions e View versão 1.0.0-alpha22

24 de fevereiro de 2021

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha22 e androidx.camera:camera-view:1.0.0-alpha22. A versão 1.0.0-alpha22 contém estas confirmações.

Mudanças na API

Correções de bugs

  • Correção de ExtensionsErrorListener para informar erros quando apenas Preview ou ImageCapture está vinculado (I5ae39).

Camera Extensions e View versão 1.0.0-alpha21

27 de janeiro de 2021

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha21 e androidx.camera:camera-view:1.0.0-alpha21. A versão 1.0.0-alpha21 contém estas confirmações.

Lançamento para compatibilidade com outros artefatos da biblioteca da câmera.

Camera Extensions e View: versão 1.0.0-alpha20

16 de dezembro de 2020

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha20 e androidx.camera:camera-view:1.0.0-alpha20. A versão 1.0.0-alpha20 contém estas confirmações.

Lançamento para compatibilidade com outros artefatos da biblioteca da câmera.

Camera Extensions e View: versão 1.0.0-alpha19

11 de novembro de 2020

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha19 e androidx.camera:camera-view:1.0.0-alpha19. A versão 1.0.0-alpha19 contém estas confirmações.

Correções de bugs

  • A anotação @ExperimentalVideo foi introduzida para camera-view. Essa anotação marca as APIs que expõem a funcionalidade experimental de vídeo, que está sujeita a mudanças à medida que os recursos são completamente desenvolvidos. Qualquer método que use essas APIs precisa usar a anotação @UseExperimental com ExperimentalVideo como markerClass (I6d729).

Camera-Extensions: versão 1.0.0-alpha18

14 de outubro de 2020

Lançamento do androidx.camera:camera-extensions:1.0.0-alpha18. A versão 1.0.0-alpha18 contém estas confirmações.

Correções de bugs

  • Melhoria na latência de inicialização da CameraX e bindToLifecycle (I61dc5).
  • <UseCase>.getTargetRotation() vai retornar Surface.ROTATION_0 se for chamado antes de ser anexado a uma instância de Camera, a menos que um targetRotation tenha sido definido no Builder ou UseCase (I80fcd).

Camera-View: versão 1.0.0-alpha18

14 de outubro de 2020

Lançamento do androidx.camera:camera-view:1.0.0-alpha18. A versão 1.0.0-alpha18 contém estas confirmações.

Lançamento para compatibilidade com outros artefatos da biblioteca da câmera.

Camera-Extensions versão 1.0.0-alpha17

23 de setembro de 2020

Lançamento do androidx.camera:camera-extensions:1.0.0-alpha17. A versão 1.0.0-alpha17 contém estas confirmações.

Correções de bugs

Camera-View: versão 1.0.0-alpha17

23 de setembro de 2020

Lançamento do androidx.camera:camera-view:1.0.0-alpha17. A versão 1.0.0-alpha17 contém estas confirmações.

Correções de bugs

Camera-Extensions versão 1.0.0-alpha16

16 de setembro de 2020

Lançamento do androidx.camera:camera-extensions:1.0.0-alpha16. A versão 1.0.0-alpha16 contém estas confirmações.

Correções de bugs

  • Um método foi adicionado no ExtensionsManager para receber um objeto Extensions usado para ativar e consultar extensões em instâncias da Câmera (I4fb7e).

Camera-View: versão 1.0.0-alpha16

16 de setembro de 2020

Lançamento do androidx.camera:camera-view:1.0.0-alpha16. A versão 1.0.0-alpha16 contém estas confirmações.

Mudanças na API

  • Removidos PreviewView#setDeviceRotationForRemoteDisplayMode() e PreviewView#getDeviceRotationForRemoteDisplayMode(). Os dois métodos são para personalizar a rotação da visualização, quando a rotação desejada não é a de exibição, como uma exibição remota. Para lidar com a rotação de visualizações que não sejam de exibição, defina a rotação desejada com Preview#setTargetRotation() e a PreviewView#getViewPort(targetRotation) recém-adicionada (Ib62cc).
  • createSurfaceProvider() foi renomeado como getSurfaceProvider(). O método sempre vai retornar a mesma instância de Preview.SurfaceProvider (Iff83c).

Correções de bugs

  • O PreviewView é forçado a usar TextureView se o efeito de extensão está ativado e a implementação da biblioteca do fornecedor precisa executar um processo especial na plataforma de saída (I0c3cc).
  • Permissão de rotação desejada arbitrária para o Preview. As informações de transformação são calculadas e retornadas dinamicamente ao usuário por um novo callback TranformationInfoListener (I21470).

Problemas conhecidos

  • Em PreviewView, OnClickListener#onClick() não é invocado quando o usuário final clica em "PreviewView". O evento de toque é consumido por engano por PreviewView#onTouchEvent(). O problema será corrigido na próxima versão.
  • O MeteringPoint recebido de PreviewView#getMeteringPointFactory() poderá estar incorreto se a ViewPort for usada com PreviewView.

Camera-Extensions versão 1.0.0-alpha15

19 de agosto de 2020

Lançamento do androidx.camera:camera-extensions:1.0.0-alpha15. A versão 1.0.0-alpha15 contém estas confirmações.

Correções de bugs

  • O método ExtensionsManager.init() agora usa um Context como parâmetro em vez de 0 args (Ife754).
  • A inicialização não deve mais falhar ao usar um Context que não retorna um objeto da Application de Context.getApplicationContext() (I3d3c9, b/160817073).

    Camera-View: versão 1.0.0-alpha15

    19 de agosto de 2020

Lançamento do androidx.camera:camera-view:1.0.0-alpha15. A versão 1.0.0-alpha15 contém estas confirmações.

Correções de bugs

  • DisplayOrientedMeteringPointFactory usa uma instância de CameraInfo, em vez de CameraSelector, para que haja um mapeamento direto para a Camera que vai receber os pontos gerados. Todas as classes que usam DisplayOrientedMeteringPointFactory também aceitam uma instância de CameraInfo em vez de CameraSelector (I400c1).
  • Contato removido: TextureViewMeteringPointFactory. PreviewView fornece uma API pública (createMeteringPointFactory()) para criar uma fábrica de ponto de medição, independentemente de usar TextureView ou SurfaceView (Ide693).
  • Os modos de implementação SURFACE_VIEW/TEXTURE_VIEW do PreviewView foram renomeados como PERFORMANCE/COMPATIBLE. PERFORMANCE é o modo SURFACE_VIEW antigo e COMPATIBLE é o modo TEXTURE_VIEW antigo (I0edc2).
  • Para captura de imagens, substitua a sinalização de virar para a horizontal nos metadados com base na direção da câmera (I28499).

Camera-Extensions: versão 1.0.0-alpha14

22 de julho de 2020

Lançamento do androidx.camera:camera-extensions:1.0.0-alpha14. A versão 1.0.0-alpha14 contém estas confirmações.

Camera-View: versão 1.0.0-alpha14

22 de julho de 2020

Lançamento do androidx.camera:camera-view:1.0.0-alpha14. A versão 1.0.0-alpha14 contém estas confirmações.

Camera-Extensions versão 1.0.0-alpha13

24 de junho de 2020

Lançamento do androidx.camera:camera-extensions:1.0.0-alpha13. A versão 1.0.0-alpha13 contém estas confirmações.

Correções de bugs

  • Adição de interfaces experimentais para filtrar câmeras por ID e características da câmera (I28f61, link em inglês).

Camera-View: versão 1.0.0-alpha13

24 de junho de 2020

Lançamento do androidx.camera:camera-view:1.0.0-alpha13. A versão 1.0.0-alpha13 contém estas confirmações.

Correções de bugs

  • O CameraView não falha mais com uma IllegalArgumentException ao se vincular a um LifecycleOwner cujo ciclo de vida transita para um estado DESTROYED logo após ser vinculado. Os ciclos de vida de vinculação em um estado DESTROYED não tentarão abrir a câmera (I7c2b8, link em inglês).
  • PreviewView StreamState agora está disponível por CameraView.getPreviewStreamState() (I21a2b).

Camera-Extensions versão 1.0.0-alpha12

10 de junho de 2020

Lançamento do androidx.camera:camera-extensions:1.0.0-alpha12. A versão 1.0.0-alpha12 contém estas confirmações.

Correções de bugs

  • Foi corrigida a falha no app ao inicializar a CameraX enquanto o smartphone estava no modo não perturbe. Um InitializationException contém um CameraUnavailableException que vai ser definido como o ListenableFuture do resultado da inicialização, em vez de causar falhas no aplicativo (I9909a, b/149413835, links em inglês)

Camera-View: versão 1.0.0-alpha12

10 de junho de 2020

Lançamento do androidx.camera:camera-view:1.0.0-alpha12. A versão 1.0.0-alpha12 contém estas confirmações.

Correções de bugs

  • Adição da API PreviewView#getBitmap() para retornar uma representação de bitmap do conteúdo exibido na superfície de visualização (I9b500, b/157659818, links em inglês)

Camera-Extensions: versão 1.0.0-alpha11

27 de maio de 2020

Lançamento do androidx.camera:camera-extensions:1.0.0-alpha11. A versão 1.0.0-alpha11 contém estas confirmações.

Camera-View: versão 1.0.0-alpha12

10 de junho de 2020

Lançamento do androidx.camera:camera-view:1.0.0-alpha12. A versão 1.0.0-alpha12 contém estas confirmações.

Novos recursos

Mudanças na API

Correções de bugs

  • Adição da API PreviewView#getBitmap() para retornar uma representação de bitmap do conteúdo exibido na superfície de visualização (I9b500, b/157659818, links em inglês)

Camera-View: versão 1.0.0-alpha11

27 de maio de 2020

Lançamento do androidx.camera:camera-view:1.0.0-alpha11. A versão 1.0.0-alpha11 contém estas confirmações.

Mudanças na API

  • Adição da API PreviewView#getPreviewStreamState para permitir aos apps observar se a visualização está em streaming ou não. Quando o PreviewView está no modo TEXTURA_VIEW, o estado STREAMING também garante a visibilidade da imagem de visualização (Ic0906, b/154652477, links em inglês)
  • A API PreviewView#setDeviceRotationForRemoteDisplayMode() foi adicionada para fornecer rotação de dispositivos para cálculos de transformação se o aplicativo estiver em execução no modo de exibição remota (I59b95, b/153514525, links em inglês)

Correções de bugs

  • Foi corrigido o problema de distorção da visualização em câmeras FULL/LIMITED/LEVEL_3 com o Android 7.0 e versões anteriores. Uso forçado do modo ImplementationMode#TEXTURE_VIEW quando a versão do Android é 7.0 ou anterior. (I83e30, b/155085307, links em inglês)
  • Remoção do parâmetro CameraInfo de PreviewView#createSurfaceProvider(). Agora, PreviewView o recupera internamente de SurfaceRequest (If18f0, b/154652477, links em inglês)
  • A proporção padrão de VideoCapture foi corrigida para 16:9 na CameraView (Ie6a7b, b/153237864, links em inglês)
  • Correção dos problemas de tela preta de PreviewView ao deslizar o fragmento Preview e depois de volta para o ViewPager2. Também foi corrigido o problema quando removeView(previewview) e depois addView(previewView). (Iab555, b/149877652, b/147354615)
  • Atualize a API CameraView#takePicture() para que seja possível salvar imagens em Uri e OutputStream. Atualize o app de teste para usar Uri como exemplo canônico. (Ia2459, b/153607583).
  • Você pode configurar o tipo de escala de PreviewView a partir de um layout XML ao definir o atributo ScaleType (I08565, b/153015659, link em inglês)
  • O CameraView.ScaleType foi removido. Em vez disso, use PreviewView.ScaleType para definir/receber um tipo de escala com o CameraView (Ia8974, b/153014831, links em inglês)
  • Defina uma cor de plano de fundo para PreviewView, se ainda não tiver uma. Isso impede o conteúdo por trás dele de ser visível antes do início da visualização do stream. (I09fad, link em inglês)

Camera-Extensions versão 1.0.0-alpha10

15 de abril de 2020

Lançamento do androidx.camera:camera-extensions:1.0.0-alpha10. A versão 1.0.0-alpha10 contém estas confirmações.

Correções de bugs

  • Correções para oferecer suporte ao lançamento da Camera-Core

Camera-View: versão 1.0.0-alpha10

15 de abril de 2020

Lançamento do androidx.camera:camera-view:1.0.0-alpha010. A versão 1.0.0-alpha10 contém estas confirmações.

Correções de bugs

  • Foi corrigido um problema conhecido em que a implementação do SurfaceView de PreviewView não funcionava bem em alguns dispositivos e causava falha no app após retomar a visualização (I5ed6b, link em inglês)

Camera-Extensions: versão 1.0.0-alpha09

1º de abril de 2020

Lançamento do androidx.camera:camera-extensions:1.0.0-alpha09. A versão 1.0.0-alpha09 contém estas confirmações.

Correções de bugs

  • Atualização para oferecer suporte às correções de bugs nos artefatos camera-camera2:1.0.0-beta02, camera-core:1.0.0-beta02 e camera-lifecycle:1.0.0-beta02.

Camera-View versão 1.0.0-alpha09

1º de abril de 2020 Lançamento do androidx.camera:camera-view:1.0.0-alpha09. A versão 1.0.0-alpha09 contém estas confirmações.

Problemas conhecidos

  • É possível que o ImplementationMode.SURFACE_VIEW com PreviewView não funcione bem em alguns dispositivos, porque a SurfaceView usada para visualização invalida a plataforma quando o ciclo de vida da janela é interrompido. Ao reiniciar, a câmera é aberta novamente e pode tentar retomar a visualização antes que a plataforma de SurfaceView seja válida novamente. Por enquanto, use ImplementationMode.TEXTURE_VIEW.

Mudanças na API

  • PreviewView.setImplementationMode() foi renomeado como PreviewView.setPreferredImplementationMode().
  • PreviewView.getImplementationMode() foi renomeado como PreviewView.getPreferredImplementationMode().
  • PreviewView.getSurfaceProvider() foi substituído por PreviewView.createSurfaceProvider(CameraInfo), que usa uma instância CameraInfo anulável para otimizar a visualização usando ImplementationMode.SURFACE_VIEW sempre que possível. Se uma instância nula for transmitida ou o modo de implementação preferencial for definido como ImplementationMode.TEXTURE_VIEW, ImplementationMode.TEXTURE_VIEW vai ser usado internamente.
  • A amostra de código a seguir demonstra como um caso de uso de visualização era usado anteriormente com o PreviewView.

    preview.setSurfaceProvider(previewView.previewSurfaceProvider)
    cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
    

    Agora, você pode escrever o seguinte:

    val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
    previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW
    preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
    
  • A anotação @UiThread foi adicionada a PreviewView.getSurfaceProvider(), o que significa que ela precisa ser chamada a partir da linha de execução principal (I192f3).

  • Adicionado PreviewView.setScaleType(), que permite definir o tipo de escala da visualização. Ele aceita um dos valores em PreviewView.ScaleType e assume PreviewView.ScaleType.FILL_CENTER como padrão.

  • Adição de PreviewView.getScaleType().

  • Remoção do suporte à configuração do modo de implementação do PreviewView em um layout XML que usa o atributo implementationMode.

  • Adição da API createMeteringPointFactory() ao PreviewView para oferecer suporte à conversão (x, y) em PreviewView para MeteringPoint (IB36d7).

Correções de bugs

  • Correção de casos em que uma visualização incorreta é exibida após a mudança do tamanho de PreviewView (I71101, link em inglês)

Camera-Extensions: versão 1.0.0-alpha08

26 de fevereiro de 2020

Lançamento do androidx.camera:camera-extensions:1.0.0-alpha08. A versão 1.0.0-alpha08 contém estas confirmações.

Camera-View: versão 1.0.0-alpha08

26 de fevereiro de 2020

Lançamento do androidx.camera:camera-view:1.0.0-alpha08. A versão 1.0.0-alpha08 contém estas confirmações.

Correções de bugs

  • Em SurfaceRequest.provideSurface(), ListenableFuture foi substituído por Executor e Callback. Isso simplifica a API ao não exigir mais o processamento de exceções em provideSurface() e faz com que o callback provideSurface() não possa ser cancelado. O objetivo é evitar falhas em dispositivos mais antigos, causadas pelo lançamento prematuro de plataformas. O objeto SurfaceRequest.Result agora é usado para rastrear como uma SurfaceRequest usa a Surface fornecida. (I7854b).
  • SurfaceRequest.setSurface(Surface) foi renomeado como SurfaceRequest.provideSurface(Surface), e SurfaceRequest.setWillNotComplete() foi renomeado como SurfaceRequest.willNotProvideSurface() (I224fe).
  • A inicialização de variantes do app com o ProGuard ativado foi corrigida, preservando a sinalização que define o provedor CameraXConfig padrão (I2d6c1).

Camera-Extensions: versão 1.0.0-alpha07

10 de fevereiro de 2020

Lançamento do androidx.camera:camera-extensions:1.0.0-alpha07. A versão 1.0.0-alpha07 contém estas confirmações.

Correções de bugs

  • Os argumentos que anteriormente eram transmitidos em ImageCapture.OnImageSavedCallback.onError() e ImageCapture.OnImageCapturedCallback.onError() foram substituídos por um único argumento ImageCaptureException, que ainda contém todas as informações transmitidas anteriormente.
  • O argumento do arquivo anteriormente transmitido em ImageCapture.OnImageSavedCallback.onImageSaved() foi removido (I750d2, link em inglês)

Camera-View: versão 1.0.0-alpha07

10 de fevereiro de 2020

Lançamento do androidx.camera:camera-view:1.0.0-alpha07. A versão 1.0.0-alpha07 contém estas confirmações.

Mudanças na API

  • A implementação de TextureView da PreviewView agora define o tamanho da TextureView como o tamanho de saída do sensor da câmera antes do dimensionamento para preencher a PreviewView mãe. Caso você queira que a visualização da câmera preencha uma parte inteira da IU (a tela inteira, por exemplo), não defina o tamanho de PreviewView como um valor fixo nem faça com que ele agrupe o conteúdo, por exemplo, usando o atributo "wrap_content". Isso pode fazer com que a visualização da câmera só preencha parte de PreviewView, caso o tamanho de saída do sensor da câmera seja menor. Em vez disso, defina o tamanho de PreviewView para que seja igual ao do pai, por exemplo, usando o atributo "match_parent". (1204869, link em inglês)

Correções de bugs

  • Atualização de ImageCapture para que seja possível salvar imagens em Uri e OutputStream. Os métodos takePicture sobrecarregados foram unificados em apenas um. Atualização do app de teste para usar Uri como exemplo canônico (Ia3bec, link em inglês)
  • Preview.PreviewSurfaceProvider foi renomeado como Preview.SurfaceProvider. Os SurfaceProvider não exigem mais que os desenvolvedores criem o próprio ListenableFuture, e a Surface agora é fornecida por um novo objeto SurfaceRequest. O método Preview.getPreviewSurfaceProvider() foi removido devido ao potencial de uso indevido quando Preview está pareado com outras classes, como PreviewView (I20105, link em inglês)
  • Os argumentos que anteriormente eram transmitidos em ImageCapture.OnImageSavedCallback.onError() e ImageCapture.OnImageCapturedCallback.onError() foram substituídos por um único argumento ImageCaptureException, que ainda contém todas as informações transmitidas anteriormente.
  • O argumento do arquivo anteriormente transmitido em ImageCapture.OnImageSavedCallback.onImageSaved() foi removido (I750d2, link em inglês)
  • A API foi atualizada com os métodos getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio() e getLinearZoom() de junção da CameraInfo em getZoomState(), que retorna uma instância ZoomState (Ib19fe).

Camera-Extensions versão 1.0.0-alpha06

22 de janeiro de 2020

Lançamento do androidx.camera:camera-extensions:1.0.0-alpha06. A versão 1.0.0-alpha06 contém estas confirmações.

Atualizações

  • Várias correções e atualizações compatíveis com as mudanças de Camera Core e Camera2.

Camera-View Versão 1.0.0-alpha06

22 de janeiro de 2020

Lançamento do androidx.camera:camera-view:1.0.0-alpha06. A versão 1.0.0-alpha06 contém estas confirmações.

Atualizações

  • Várias correções e atualizações compatíveis com as mudanças de Camera Core e Camera2.

Camera-Extensions Versão 1.0.0-alpha05

18 de dezembro de 2019

Lançamento do androidx.camera:camera-extensions:1.0.0-alpha05. A versão 1.0.0-alpha05 contém estas confirmações.

Correções de bugs

  • Atualizado para corresponder às APIs internas do Camera Core.

Camera-View Versão 1.0.0-alpha05

18 de dezembro de 2019

Lançamento do androidx.camera:camera-view:1.0.0-alpha05. A versão 1.0.0-alpha05 contém estas confirmações.

Problemas conhecidos

  • A proporção pode estar incorreta ao usar o PreviewView (b/146215202, link em inglês).

Novos recursos

  • Foi implementada uma nova classe, chamada PreviewView.TextureViewImplementation, que sincroniza o ciclo de vida do SurfaceTexture com o uso da superfície TextureView pela câmera.

Camera-Extensions Versão 1.0.0-alpha04

4 de dezembro de 2019

Lançamento do androidx.camera:camera-extensions:1.0.0-alpha04. A versão 1.0.0-alpha04 do camera-extensions contém estas confirmações (link em inglês).

Mudanças na API

  • A verificação de disponibilidade e a ativação de uma extensão agora aceitam CameraSelector como parâmetro de entrada. Ele precisa ser o mesmo CameraSelector usado para vincular o caso de uso.

    val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
    val builder = ImageCapture.Builder()
    val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder)
    if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) {
        bokehImageCaptureExtender.enableExtension(cameraSelector)
    }
    val imageCapture = builder.build()
    mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)
    
  • Você precisa inicializar as extensões antes de usar a biblioteca de extensões.

    val availability = ExtensionsManager.init()
    Futures.addCallback<ExtensionsManager.ExtensionsAvailability>(
       availability,
       object : FutureCallback<ExtensionsManager.ExtensionsAvailability> {
           override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) {
               // Ready to make extensions calls
           }
           override fun onFailure(throwable: Throwable) {
               // Extensions could not be initialized
           }
       },
       Executors.newSingleThreadExecutor()
    )
    

Camera-View Versão 1.0.0-alpha04

4 de dezembro de 2019

Lançamento do androidx.camera:camera-view:1.0.0-alpha04. A versão 1.0.0-alpha04 do camera-view contém estas confirmações (link em inglês).

Mudanças na API

  • Uma classe PreviewView é fornecida para exibir facilmente a saída do caso de uso de Preview em um aplicativo.
  • PreviewView pode ser incluído no layout:

    <androidx.camera.view.PreviewView
      android:id="@+id/preview_view"
      … />
    
  • PreviewView fornece um PreviewSurfaceProvider para conectar facilmente um caso de uso de Preview.

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • "ZoomLevel" agora é "ZoomRatio" em API-naming.

  • Alguns parâmetros de método mudaram de nulidade.

Camera-Extensions e Camera-View Versão 1.0.0-alpha03

9 de outubro de 2019

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha03 e androidx.camera:camera-view:1.0.0-alpha03. Estas são as confirmações incluídas em camera-extensions:1.0.0-alpha03 e estas são as confirmações incluídas em camera-view:1.0.0-alpha03.

Novos recursos

  • Adição do inicializador de contexto para extensões. Versão das extensões incrementada para 1.1.0

Camera-Extensions and Camera-View Versão 1.0.0-alpha02

5 de setembro de 2019

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha02 e androidx.camera:camera-view:1.0.0-alpha02. Estas são as confirmações incluídas em camera-extensions:1.0.0-alpha02, e estas são as confirmações incluídas em camera-view:1.0.0-alpha02.

  • Adição de testes para verificar se PreviewImageProcessorImpl implementou corretamente os carimbos de data/hora.
  • Correção da falha de teste de ExtensionTest no Nexus 5 (API de nível 21) e garantia de que a visualização esteja disponível.

Camera-Extensions e Camera-View: versão 1.0.0-alpha01

7 de agosto de 2019

Lançamento de androidx.camera:camera-extensions:1.0.0-alpha01 e androidx.camera:camera-view:1.0.0-alpha01. Estas são as confirmações incluídas em camera-extensions:1.0.0-alpha01 e estas são as confirmações incluídas em camera-view:1.0.0-alpha01

  • Nova biblioteca para futuras extensões de câmera, para acessar efeitos em dispositivos compatíveis. Essa biblioteca ainda está em andamento.
  • Nova classe de visualização da câmera. Essa biblioteca ainda está em andamento.