CameraX
Esta tabela lista todos os artefatos no grupo androidx.camera.
| Artefato | Versão estável | Versão candidata a lançamento | Versão Beta | Versão Alfa |
|---|---|---|---|---|
| camera-camera2 | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-core | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-compose | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-effects | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-extensions | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-feature-combination-query | - | - | - | 1.5.0-alpha06 |
| camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha06 |
| camera-lifecycle | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-mlkit-vision | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-view | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-viewfinder | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
| camera-video | 1.5.1 | - | - | 1.6.0-alpha01 |
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.6.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.6.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.
Consulte a documentação do Issue Tracker para saber mais.
Camera Viewfinder Compose: versão 1.0
Versão 1.0.0-alpha02
12 de junho de 2024
Lançamento de androidx.camera:camera-viewfinder-compose:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estes commits.
Versão 1.0.0-alpha01
14 de maio de 2024
Lançamento de androidx.camera:camera-viewfinder-compose:1.0.0-alpha01. A versão 1.0.0-alpha01 contém estes commits.
Novos recursos
- Nova biblioteca. Essa biblioteca apresenta um elemento combinável Viewfinder nativo do Compose, que pode ser usado com a CameraX e a Camera2. O Viewfinder combinável é compatível com diferentes proporções e processamento de eventos de toque.
Visor da câmera: versão 1.4
Versão 1.4.0-alpha07
12 de junho de 2024
Lançamento de androidx.camera:camera-viewfinder:1.4.0-alpha07 e androidx.camera:camera-viewfinder-core:1.4.0-alpha07. A versão 1.4.0-alpha07 contém estes commits.
Versão 1.4.0-alpha06
14 de maio de 2024
Lançamento de androidx.camera:camera-viewfinder:1.4.0-alpha06 e androidx.camera:camera-viewfinder-core:1.4.0-alpha06. A versão 1.4.0-alpha06 contém estes commits.
Mudanças na API
- Renomeie os Enums
ImplementationModedeViewfinderpara refletir melhor as implementações subjacentes e adicione constantes fixas paraTransformationInfo.sourceRotation. (Ic6149) - Adição de
ZoomGestureDetector.ZoomEventpara encapsular os estados de um gesto de zoom. (I84cdf).
Versão 1.6 da câmera
Versão 1.6.0-alpha01
22 de outubro de 2025
Lançamento de androidx.camera:camera-*:1.6.0-alpha01. A versão 1.6.0-alpha01 contém estes commits.
Novos recursos
- O CameraX migrou para uma pilha de câmera unificada e de alta performance, que também é usada pelo app Câmera do Pixel. Conhecida como
CameraPipe, essa nova pilha é uma colaboração entre as equipes do CameraX e da Câmera do Pixel. Isso garante que todas as melhorias sejam compartilhadas, beneficiando os usuários do CameraX e do app Câmera Pixel.
Mudanças na API
- Adição de novas APIs para detecção dinâmica de adição/remoção de câmeras. Consulte a API
CameraPresenceListenerpara mais detalhes. (I41ead, b/427182232, b/419441394)
Correções de bugs
- A API FeatureGroup agora fornece resultados consistentes quando
PREVIEW_STABILIZATIONé usado comVideoCapture. Isso corrige um bug que causava resultados inconsistentes quando um caso de uso dePreviewnão estava ativo. (Ifed82, b/449913903) - Correção de um problema em que recursos preferidos não compatíveis eram disponibilizados incorretamente. Agora, os recursos são filtrados corretamente quando os casos de uso necessários não são atendidos. (I38db8, b/449532342)
- Correção de falha no resultado de vídeo no Samsung Galaxy S6. (I612d9, b/235127608)
- Correção de um problema em que
CameraInfo#isFeatureGroupSupportedpodia retornar "true" incorretamente paraPREVIEW_STABILIZATIONse oSessionConfigna consulta já estivesse configurado com outros recursos. (I2c355c, b/437816469).
Versão 1.5 da câmera
Versão 1.5.1
8 de outubro de 2025
Lançamento de androidx.camera:camera-*:1.5.1. A versão 1.5.1 contém estes commits.
Correções de bugs
- Suporte a
CameraEffectno modo de composição de câmera simultânea. O efeito será aplicado à saída da composição. OmirrorModeemVideoCaptureserá ignorado quando o efeito for definido no modo de composição de câmera simultânea. (If3d00, b/425565129) - Correção do problema em que
mirrorModenão era aplicado corretamente à câmera secundária no modo de composição de câmera simultânea. (I686cd, b/446430827) - Suporte à vinculação de
Preview,ImageCaptureeVideoCaptureno modo de câmera não composição simultânea. (Ib410a, b/443009871) - Correção de um problema em que UseCases, como
ImageCaptureeVideoCapture, perdiam as informações de rotação desejada se fossem recriados. Isso pode fazer com que imagens ou vídeos tenham uma orientação incorreta se uma configuração comoimageCaptureModefor alterada depois que o dispositivo for girado. (I477c8, b/444734537) - Correção de um problema que impedia a Prévia de selecionar resoluções 16:9 e o
VideoCapturede gravar em QUALITY_1080P. Esse problema ocorria ao usar uma configuração padrão de resolução de visualização enquanto o recurso internoStreamSharingestava ativo (por exemplo, quando quatro UseCases eram vinculados simultaneamente). (I493cb, b/440364875) - Correção da falha quando o efeito é ativado após o encerramento de
SurfaceProcessor(I2c450, b/414150174). - Correção de um bug no
CameraControllerque causava umaIllegalStateExceptionquando um UseCase inicial selecionava a resolução máxima, o que impedia que outros UseCases fossem vinculados. (Ifb758, b/440374234). - Exclui tamanhos de saída YUV_420_888 problemáticos para o Nokia 7 Plus que causam o problema de falha silenciosa sem mensagens de erro informadas. (I3af47, b/436524501).
- Correção de um problema em que
CameraInfo#isFeatureGroupSupportedpodia retornar "true" incorretamente para o recursoPREVIEW_STABILIZATION. Isso pode acontecer ao consultar com umSessionConfigque já foi configurado com outros recursos. (I2c355, b/437816469) - Melhoria da estabilidade do
CameraXViewfinderem níveis de API e dispositivos mais antigos com problemas deSurfaceView, usandoTextureViewcomo padrão nesses cenários. Esse mecanismo de substituição é o novo padrão, mas pode ser substituído de forma programática. (Ieb476, b/437496463). - Correção de um vazamento de memória em
PreviewView, que poderia impedir que a atividade fosse coletada como lixo. Isso acontece se um novoSurfaceRequestchegar antes que o anterior seja processado. (I4aa0b,b/443112512) - Correção de falha na gravação em alta velocidade/câmera lenta nos dispositivos Huawei P smart, Infinix Hot 40i e Realme C53. (40a668e, b/442984200)
Versão 1.5.0
10 de setembro de 2025
Lançamento de androidx.camera:camera-*:1.5.0. A versão 1.5.0 contém estes commits.
Mudanças importantes desde a versão 1.4.0:
- Gravação em alta velocidade e câmera lenta: integre facilmente a gravação de vídeo em alta velocidade (120/240 fps) e em câmera lenta com o mínimo de código. Consulte
Recorder#getHighSpeedVideoCapabilities(CameraInfo)eHighSpeedVideoSessionConfigpara mais detalhes. - API
SessionConfigeFeatureGroup: a nova APISessionConfigpermite configurar a sessão da câmera e ativar vários recursos juntos com segurança, incluindo HLG (HDR), UltraHDR, 60 FPS e estabilização de prévia. Você também pode definir um grupo de recursos preferencial com prioridade, permitindo que o CameraX determine a combinação ideal compatível. ConsulteSessionConfig.Builder#setPreferredFeatureGroup,SessionConfig.Builder#setRequiredFeatureGroupeCameraInfo#isFeatureGroupSupported(SessionConfig)para mais informações. - API Deterministic Frame Rate: resolve limitações anteriores com
setTargetFrameRateusandoCameraInfo.getSupportedFrameRateRanges(sessionConfig)para consultar eSessionConfig.setExpectedFrameRateRangepara definir frame rates precisos e compatíveis. - Extensões de câmera: agora o formato UltraHDR é compatível com as extensões. Marque
ImageCapture.getImageCaptureCapabilities(cameraInfo).getSupportedOutputFormats()e ative emImageCapture.Builder.setOutputFormat. A proporção de zoom e os recursos de estabilização de prévia agora são refletidos quando as extensões estão ativadas. - Intensidade da luz da lanterna: ajuste a intensidade usando
CameraControl.setTorchStrengthLevel. - Modo de iluminação aprimorada: é possível ativar o modo de iluminação aprimorada(
CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY) com as seguintes APIs: consulteCameraInfo#isLowLightBoostSupported,CameraInfo#getLowLightBoostStateeCameraControl#enableLowLightBoostAsync. - Captura de vídeo:
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEagora é acionado por falta de espaço de armazenamento durante a gravação.PendingRecording.withAudioEnabled(boolean initialMuted)permite controlar o estado inicial de silêncio para gravação de áudio. - Captura de imagem: compatibilidade com formatos DNG (RAW) e JPEG + DNG (RAW) no
ImageCapture. Verifique se há suporte para RAW emImageCaptureCapabilities(CameraInfo).getSupportedOutputFormats(). Use APIstakePicturesobrecarregadas com váriosOutputFileOptionspara captura RAW+DNG. - Análise de imagem: suporte ao formato NV21 em
ImageAnalysis. Ative comImageAnalysis.Builder.setOutputImageFormat(OUTPUT_IMAGE_FORMAT_NV21).
Versão 1.5.0-rc01
13 de agosto de 2025
Lançamento de androidx.camera:camera-*:1.5.0-rc01. A versão 1.5.0-rc01 contém estes commits.
Correções de bugs
- Mudança da minSdk padrão da API 21 para a API 23 (Ibdfca, b/380448311, b/435705964, b/435705223).
- Removemos a restrição de saída de 10 bits para o modo de exposição automática de reforço em pouca luz. Agora, os aplicativos podem ativar simultaneamente os dois recursos em dispositivos compatíveis. (I5a638).
- Resolvemos um problema que fazia com que dispositivos com chipsets
UniSoctravassem ao capturar uma imagem. O problema ocorreu quandoVideoCapture,PrevieweImageCaptureforam usados simultaneamente com todas as transmissões definidas para uma resolução de 1280x720. (Ia00c4, b/380802479) - Correção da tela preta de visualização quando nenhuma taxa de frames de alta velocidade é definida para gravação em alta velocidade/câmera lenta. (cdf0ff2e9)
- Melhoria no tratamento de erros e no registro em
getViewportAspectRatioInt(82fca18)
Versão 1.5.0-beta02
16 de julho de 2025
Lançamento de androidx.camera:camera-*:1.5.0-beta02. A versão 1.5.0-beta02 contém estes commits.
Mudanças na API
- Adição de novas APIs para definir ou consultar grupos de recursos de alta qualidade de maneira mais intuitiva e precisa, já que esses recursos podem não ser compatíveis como uma combinação em todos os dispositivos. Agora o
SessionConfigcontém novas APIs para indicar um grupo de recursos como obrigatório ou preferencial. A APICameraInfo.isFeatureGroupSupportedpermite saber se um grupo de recursos é compatível antes de vincular umSessionConfig.SessionConfigtambém permite definir um listener para saber quais recursos são selecionados quando uma configuração de sessão é vinculada. (Ie4d60). - Adição das novas APIs
SessoinConfig.Builder.setFrameRateRange(Range<Integer>)eCameraInfo.getSupportedFrameRateRanges(SessionConfig), permitindo que os desenvolvedores consultem taxas de frames garantidas e compatíveis, restritas por umSessionConfigespecífico, e apliquem a taxa de frames emSessionConfig. (Ieacf7) - Introduzimos a nova API
SessionConfig, que inclui uma abstração melhor para configurar casos de uso, parâmetros de sessão,CameraEffect,ViewPorte muito mais. Ao vincular umSessionConfiga um LifecycleOwner, a sessão da câmera é aberta e configurada usando os casos de uso e parâmetros de sessão especificados, além de aplicar osCameraEffecteViewPortdesignados. Ao atualizar um novoSessionConfigpara o mesmoLifecycleOwner, basta vincular um novoSessionconfigsem precisar invocar unbind ouunbindAllprimeiro. (Iedfc3). - Adição de novas APIs para gravar vídeos em alta velocidade/câmera lenta. Consulte a API
HighSpeedVideoSessionConfigpara mais detalhes. (Ia16f3)
Correções de bugs
- Correção da API
ImageCaptureCapabilities#getSupportedOutputFormats()que informava que formatos RAW eram compatíveis em alguns dispositivos que não têm essa capacidade. (Ibcadb). - Correção do vazamento de memória que ocorre quando
PreviewViewé usado,CameraEffecté ativado ou 4 casos de uso(StreamSharing) são vinculados (I87468) - Correção de uma falha na gravação de vídeo por
AssertionError: estado de áudio interno inválido: IDLING. (I38d4b, b/414259796) - Correção do problema em que, quando o app é executado em uma tela externa e o dispositivo está no modo paisagem, a prévia em
PreviewViewfica esticada ou lateral (Ia917a) - Correção do problema em que as configurações de estabilização da visualização não eram aplicadas corretamente quando o stream da câmera era compartilhado entre a visualização e a VideoCapture.(I5430e)
CameraXViewfinderagora processa corretamente a substituição de superfície noViewfindersubjacente. Isso abrange cenários como quando um visorEXTERNALno nível 28 da API ou anterior sai da tela ou se umCameraXViewfinder(com qualquerImplementationMode) faz parte demoveableContentOf(). Nos casos em que aViewfinderSurfaceSessionsubjacente não pode ser mantida ativa, aCameraXViewfinderinvalida oSurfaceRequestatual do CameraX, permitindo que ele use a novaSurface. (I79432)- Corrige um problema no Android 10/11 em que o
EXTERNALCameraXViewfinderpodia aparecer esticado ou incorreto devido à aplicação precoce de operações de transformação (como escala ou tradução). Agora, o sistema aguarda a criação da superfície antes de aplicar essas transformações na fase de layout, garantindo a saída correta. (Icc77c). - O elemento combinável
CameraXViewfinderagora funciona corretamente com oPagerdo Compose. Essa mudança garante que o elemento combinável possa ser redefinido com sucesso implementando o callbackonResetdeAndroidView, com suporte às implementaçõesEMBEDDEDeEXTERNAL. (I0d9be) - Correção de um vazamento de proprietário de ciclo de vida que ocorre ao desvincular casos de uso de um proprietário de ciclo de vida sem encerrar o provedor de câmera.
Versão 1.5.0-beta01
7 de maio de 2025
Lançamento de androidx.camera:camera-*:1.5.0-beta01. A versão 1.5.0-beta01 contém estes commits.
Mudanças na API
- Os projetos lançados com o Kotlin 2.0 exigem o KGP 2.0.0 ou mais recente para serem consumidos (Idb6b5)
- Agora,
ContentScalee Alignment podem ser usados no visor para dimensionar e posicionar a superfície mostrada no contêiner, de maneira semelhante ao comportamento deandroidx.compose.foundation.Image. (Ibcea3) TransformationInfoagora tem valores padrão para todos os argumentos. Isso permite que os Viewfinders sejam criados sem nenhumTransformationInfo, que será padrão para uma rotação de origem de 0, sem espelhamento de origem e sem um retângulo de corte. (I2b1b2)- Adicionamos
LifecycleCameraProvider, um provedor de câmera que pode ser instanciado com diferentes configurações para recursos como acessar a câmera de um dispositivo virtual configurando com um contexto personalizado. (Ia2992)
Correções de bugs
- Correção do problema de congelamento da visualização ao usar
ImageAnalysiscom outro stream que usaTEMPLATE_RECORDno dispositivo Samsung SM-E556B. (Ic0e62, b/409478042) - Correção do problema de congelamento da visualização ao usar
ImageAnalysiscom outro stream que usaTEMPLATE_RECORDno dispositivo Samsung SM-M556B. (Ic1a6a, b/395822788) - Foi corrigido o problema do modo NOTURNO das extensões
AssertErrorem dispositivos Pixel com Android 15 ao realizar operações relacionadas ao zoom. (I27a5d, b/401460276) - Correção do problema de coordenadas incorretas da caixa delimitadora do Analisador do Kit de ML ao usar
CameraController. (Iae91b, b/409808510).
Versão 1.5.0-alpha06
26 de fevereiro de 2025
Lançamento de androidx.camera:camera-*:1.5.0-alpha06. A versão 1.5.0-alpha06 contém estes commits.
Mudanças na API
- Adição de
CameraInfo.getTorchStrengthLevel,CameraInfo.getMaxTorchStrengthLeveleCameraControl.setTorchStrengthLevelpara permitir a personalização do brilho da lanterna (I00878). - Uma nova API
CameraController#setTapToFocusAutoCancelDurationfoi adicionada para que os usuários possam controlar o comportamento de cancelamento automático para eventos de toque para focoPreviewView. Por padrão, o CameraX cancela os eventos de foco após 5 segundos (ou seja, o foco da câmera é redefinido), e essa API permite modificar essa duração ou desativar o cancelamento automático. (Icf59a). FLASH_STATE_READYfoi renomeado comoNOT_FIRED, e os outros nomes de constantesFlashStateforam simplificados para melhorar a legibilidade. (I8771d)- API Low Light Boost exposta. Dispositivos com o Android 15 ou versões mais recentes podem oferecer suporte ao recurso de melhoria em pouca luz. Esse recurso pode ajustar automaticamente o brilho dos fluxos de visualização, vídeo ou análise de imagem em condições de pouca luz. Os aplicativos podem usar a nova API para: 1. Use
CameraInfo#isLowLightBoostSupportedpara verificar a disponibilidade do recurso. 2. UseCameraControl#enableLowLightBoostAsyncpara ativar o modo quando os dispositivos forem compatíveis. 3. UseCameraInfo#getLowLightBoostStatepara monitorar o estado do aumento de pouca luz. (I937ed) - Adicione classes de compatibilidade para permitir consultas mais rápidas que não sejam da Camera2 em camera-feature-combination-query. (Ie97ee).
- Para eventos de toque para foco
CameraController, uma nova APIgetTapToFocusInfoState()também expõe a posição de toque correspondente retornando umLiveDatada classeTapToFocusInfo. A APILiveData<Integer>anterior, que retornavagetTapToFocusState(), foi descontinuada em favor da nova API. (I238d2)
Correções de bugs
- Correção do problema em que a estabilização de prévia não era aplicada quando ativada com as extensões. (I24ad7).
- Correção do evento de estado de foco
CameraControllerque não era redefinido paraTAP_TO_FOCUS_NOT_STARTEDquando a CameraX cancelava automaticamente um evento de foco que acontecia após 5 segundos por padrão. (I31954). - Correção do congelamento da prévia ao usar o recurso "Sem atraso do obturador" (ZSL, na sigla em inglês) após várias capturas devido a recursos de imagem não lançados. (Ic3c2a).
- Correção de problemas em que, em alguns dispositivos, os vídeos UHD ficam com uma tonalidade vermelha quando o pipeline envolve
OpenGL. (Idcedc).
Versão 1.5.0-alpha05
15 de janeiro de 2025
Lançamento de androidx.camera:camera-*:1.5.0-alpha05. A versão 1.5.0-alpha05 contém estes commits.
Mudanças na API
- Adicione
VideoCapture.getSelectedQuality()para saber a qualidade selecionada com base noQualitySelector. (I70508, b/204288986). - Quando uma captura de imagem é invocada com a API
ImageCapture.OnImageCapturedCallback, o ImageInfo noImageProxyretornado agora pode ser usado para saber se o flash foi disparado pela nova APIImageInfo.getFlashState(). (Id2c61, b/380527406). - Adição de compatibilidade com o formato de saída
OUTPUT_IMAGE_FORMAT_NV21paraImageAnalysis. (I484ab). - Remoção da anotação experimental do artefato
featurecombinationquery(I4427f) - Ajuste o intervalo de proporção de zoom permitido para
CameraControlde acordo com as características específicas das extensões quando um modo de extensão está ativado. (I85af1).
Correções de bugs
- O
compileSdkfoi atualizado para 35 para usar a API relacionada ao Android 15. Os apps que usam bibliotecas CameraX também precisam atualizar a configuraçãocompileSdk. (Ic80cd) - Agora, essa biblioteca usa anotações de nulidade do JSpecify, que são de uso de tipo. Os desenvolvedores Kotlin precisam usar o seguinte argumento do compilador para garantir o uso correto:
-Xjspecify-annotations=strict(esse é o padrão a partir da versão 2.1.0 do compilador Kotlin). (Idc6c6, b/326456246)
Versão 1.5.0-alpha04
11 de dezembro de 2024
Lançamento de androidx.camera:camera-*:1.5.0-alpha04. A versão 1.5.0-alpha04 contém estes commits.
Mudanças na API
- Exposição de
ImageCapture.Builder#setOutputFormateImageCaptureCapabilities#getSupportedOutputFormatscomo APIs estáveis (Ieb04a) - Adicione
VideoCapture.getResolutionInfo()para receber as informações de resolução quando umVideoCaptureé vinculado a um ciclo de vida. (Icb478) - Exposição de
PreviewView.getScreenFlashePreviewView.setScreenFlashOverlayColorcomo APIs estáveis. (I74fee).
Correções de bugs
- Correção de um problema de falha de captura no dispositivo Vivo 1610 ao tirar fotos com flash no escuro. (I366f4)
- Corrigimos o problema em que a lanterna desligava inesperadamente após a captura de imagens no Redmi Note 6 Pro. (I2e0e8, b/377144569)
- Correção de um problema em dispositivos Pixel Android 15 em que o modo NOTURNO em Extensões não capturava imagens estáticas até que a câmera focasse em um objeto próximo. (I228d4)
- Foi corrigido o problema de mau funcionamento da captura de imagens estáticas quando as extensões estão ativadas e o
VideoCaptureestá vinculado. (I5c745). - Ativamos o suporte para captura de imagens estáticas
UltraHDRnas extensões, se o dispositivo for compatível. (I48300). - Correção de um problema de tempo do flash para captura com flash com
CameraEffectsegmentando capturas de imagem em dispositivos TCL. (I7698c).
Versão 1.5.0-alpha03
30 de outubro de 2024
Lançamento de androidx.camera:camera-*:1.5.0-alpha03. A versão 1.5.0-alpha03 contém estes commits.
Mudanças na API
- Adição de APIs de formato de saída para RAW e RAW + JPEG
ImageCapture. A verificação de capacidade do dispositivo é exposta emImageCaptureCapabilities#getSupportedOutputFormats. OOUTPUT_FORMAT_RAWé para capturar imagens RAW, que estão no formato Adobe DNG, e oOUTPUT_FORMAT_RAW_JPEGé para capturar imagens RAW e JPEG simultaneamente. A nova APIImageCapture#takePictureé usada para captura simultânea de imagens e precisa fornecer doisOutputFileOptions. O primeiro é para imagens RAW e o segundo para imagens JPEG. (Ib0f3d).
Correções de bugs
- Correção do problema de subexposição de visualização e vídeo em dispositivos TCL quando
VideoCaptureestá ativado (Id7a64). - Foi corrigido o problema em que a invocação de
startFocusMeteringcomPreviewView.getMeteringPointFactorynão recebia as coordenadas corretas do sensor quando um efeito era ativado ou quando quatro casos de uso eram vinculados (compartilhamento de stream). (I916c5, b/345993685) - Foi corrigido o problema em que o evento
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEnão era acionado ao gravar um vídeo quando não havia espaço de armazenamento suficiente disponível. (I35779, b/356399842).
Versão 1.5.0-alpha02
2 de outubro de 2024
Lançamento de androidx.camera:camera-*:1.5.0-alpha02. A versão 1.5.0-alpha02 contém estes commits.
Novos recursos
- Novas APIs para consultar recursos de câmera compatíveis com o dispositivo. Por exemplo, verificar se o HDR e 60 FPS podem ser ativados ao mesmo tempo. Ele inclui dois artefatos: camera-feature-combination-query e camera-feature-combination-query-play-services.
É uma versão compatível da API
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupporteddo camera2 com dados adicionais fornecidos pelo Google Play Services.
Correções de bugs
- Correção do problema de taxa de frames desejada de
Preview/VideoCaptureem dispositivos de nível LEGADO. A taxa de frames desejada definida pelas APIssetTargetFrameRateouCamera2Interopsempre era substituída pelo valor fornecido peloAeFpsRangeLegacyQuirk. Com essa correção, a biblioteca CameraX vai respeitar o valor definido pela APIsetTargetFrameRateouCamera2Interop. (Ie2d32). - Adição de funcionalidades de flash/lanterna/3A para capturas de imagem com
CameraEffect. As capturas de imagem comCameraEffectagora têm os mesmos processamentos pré e pós-captura (por exemplo, disparo do flash, convergência 3A etc., quando aplicável) que a captura de imagem semCameraEffect. (I5ff30). - Exclusão de tamanhos de saída problemáticos para
ImageAnalysisno dispositivo Samsung SM-A057G. Quando oImageAnalysisusa uma resolução maior ou igual a 1920x1440, ele causa um problema de visualização em preto. AplicamosExcludedSupportedSizesQuirkao dispositivo SM-A057G para evitar o problema. (I63dfe, b/365877975). - Foi corrigido o problema de frame rate desejado do
Preview/VideoCapturequando o mecanismo de compartilhamento de stream é ativado internamente para compartilhar um stream comPrevieweVideoCapture. (I4fdac). - Ativamos a solução alternativa para corrigir o problema de metadados incorretos de imagens JPEG nos dispositivos Samsung S10e e S10+. Com a correção, o CameraX pode salvar a imagem JPEG ou retornar objetos Bitmap corretos ao chamar a função
ImageProxy.toBitmap()nesses dispositivos se o problema de metadados de imagem JPEG incorretos ocorrer. (Iae493, b/356428987) - As extensões foram desativadas para a câmera traseira do Samsung A52s com ID 0 porque falhas nativas podem ocorrer ao capturar imagens HDR, e a configuração de sessões de captura pode falhar nos modos BOKEH ou FACE_RETOUCH. (I03ec9, b/364152642)
- Foi corrigido o problema em que o evento
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEnão era acionado ao gravar um vídeo quando não havia espaço de armazenamento suficiente disponível. (Ia5b4f, b/356399842). - Correção de um problema em que a segunda tentativa de gravação de vídeo falhava no Oppo A5 (CPH1931). (I181d6)
Versão 1.5.0-alpha01
4 de setembro de 2024
Lançamento de androidx.camera:camera-*:1.5.0-alpha01. A versão 1.5.0-alpha01 contém estes commits.
Novos recursos
- Um novo artefato,
camera-compose, foi lançado para o adaptador do Viewfinder Compose da CameraX, que mostra um stream de visualização de umSurfaceRequestda CameraX decamera-core. (I8666e). - Adicionamos um novo elemento combinável,
CameraXViewfinder, que atua como um elemento idiomático que adapta osSurfaceRequests do CameraX para oViewfindercombinável. (I4770f)
Mudanças na API
- Forneça uma API para definir as configurações de composição para captura de vídeo com duas câmeras simultâneas. As configurações incluem valor alfa para fusão, deslocamento nas coordenadas x e y, escala da largura e altura da janela de exibição do frame da câmera. O deslocamento, a largura e a altura são especificados em coordenadas normalizadas do dispositivo. (Ia2b8a).
- A
CameraProvider.getCameraInfofoi exposta para ser uma API formal. (I901cd). - Adição da API
PendingRecording.withAudioEnabled(boolean initialMuted)para controlar o estado inicial de mudo. (I635c3, b/354829267).
Correções de bugs
- Correção da falha quando
bindToLifecycleé invocado com umLifecycleOwnerdestruído. (I6e6d8). - Correção: a visualização é uma tela preta na câmera frontal ao vincular com
VideoCaptureno Motorola Edge 20 Fusion. (I1fe88). - Otimizamos a configuração para detectar gestos de zoom no
PreviewViewe melhorar a fluidez. (I04ffc).
Versão 1.4 da câmera
Versão 1.4.2
26 de março de 2025
Lançamento de androidx.camera:camera-*:1.4.2. A versão 1.4.2 contém estes commits.
Correções de bugs
- Correção do problema de congelamento da visualização ao usar
ImageAnalysiscom outro fluxo que usaTEMPLATE_RECORDno Samsung Galaxy M55. (Ic1a6a, b/395822788)
Versão 1.4.1
11 de dezembro de 2024
Lançamento de androidx.camera:camera-*:1.4.1. A versão 1.4.1 contém estes commits.
Correções de bugs
- Correção de um problema em dispositivos Pixel Android 15 em que o modo NOTURNO em Extensões não capturava imagens estáticas até que a câmera focasse em um objeto próximo. (I228d4)
- Foi corrigido o problema de mau funcionamento do
ImageCapture#takePicturequando as extensões estão ativadas e oVideoCaptureestá vinculado. (I5c745).
Versão 1.4.0
30 de outubro de 2024
Lançamento de androidx.camera:camera-*:1.4.0. A versão 1.4.0 contém estes commits.
Mudanças importantes desde a versão 1.3.0
O CameraX 1.4.0 está repleto de atualizações incríveis! Veja um resumo:
Recurso principal: HDR de 10 bits:
- Capture fotos e vídeos HDR incríveis com facilidade.
- Compatível com codificação HLG e HEVC de 10 bits.
- Aproveite a prévia em HDR de 10 bits e consulte os recursos do dispositivo.
- Funciona com imagens
UltraHDRe vídeos HDR em uma variedade cada vez maior de dispositivos.
Outros recursos legais:
- Extensões Kotlin: foram adicionadas funções de suspensão
takePictureeawaitInstance. - Efeitos em tempo real: aplique efeitos como marcas d'água e destaque de objetos.
- API CameraController: novos controles para configuração de captura de vídeo.
- Estabilização da prévia: consulte a capacidade do dispositivo e ative a estabilização.
- Melhorias no VideoCapture: controle mais preciso da qualidade e acesso a resoluções mais altas.
- Integração das extensões da CameraX: integração perfeita com
VideoCapturee novos recursos doImageCapture. - API Shutter Sound: verifique facilmente os requisitos regionais de som do obturador.
- Flash na tela: fotos com pouca luz aprimoradas para câmeras frontais.
- APIs de metadados de extensões de câmera: APIs de suporte para ajustar a intensidade das extensões e receber notificações do modo de extensões atual em
ExtensionMode#AUTO. Confira mais correções de bugs nos nossos anúncios de Beta e RC.
Versão 1.4.0-rc04
16 de outubro de 2024
Lançamento de androidx.camera:camera-*:1.4.0-rc04. A versão 1.4.0-rc04 contém estes commits.
Correções de bugs
- Foi corrigido o problema em que a invocação de
startFocusMeteringcomPreviewView.getMeteringPointFactorynão recebia as coordenadas corretas do sensor quando um efeito era ativado ou quando quatro casos de uso eram vinculados (compartilhamento de stream). (I916c5, b/345993685)
Versão 1.4.0-rc03
2 de outubro de 2024
Lançamento de androidx.camera:camera-*:1.4.0-rc03. A versão 1.4.0-rc03 contém estes commits.
Correções de bugs
- Adição de funcionalidades de flash/lanterna/3A para capturas de imagem com
CameraEffect. As capturas de imagem comCameraEffectagora têm os mesmos processamentos pré e pós-captura (por exemplo, disparo do flash, convergência 3A etc., quando aplicável) que a captura de imagem semCameraEffect. (I5ff30). - Otimizamos a suavidade do gesto de pinça para aumentar o zoom no
PreviewView(I04ffc). - Desvincular o Ultra HDR da capacidade de saída de 10 bits, já que o suporte a Ultra HDR não exige mais que os dispositivos tenham essa capacidade. (I96ff2, I0c3b3)
Versão 1.4.0-rc02
18 de setembro de 2024
Lançamento de androidx.camera:camera-*:1.4.0-rc02. A versão 1.4.0-rc02 contém estes commits.
Correções de bugs
- Correção da falha quando
bindToLifecycleé invocado com umLifecycleOwnerdestruído. (I6e6d8). - Adicionada animação de visibilidade em
ScreenFlashViewparaScreenFlash#apply, o que também corrige bugs devido à conclusão assíncrona da mudança de brilho após algum tempo. (I37cdb). - Melhoria na suavidade do zoom ao substituir as configurações de zoom no framework em dispositivos compatíveis.
Versão 1.4.0-rc01
7 de agosto de 2024
Lançamento de androidx.camera:camera-*:1.4.0-rc01. A versão 1.4.0-rc01 contém estes commits.
Novos recursos
- Adicionamos o
CameraInfo.getCameraInfoexperimental para fornecer informações específicas da câmera sem a necessidade de vincular casos de uso a ela. (I550d1)
Mudanças na API
- Adição das APIs
PreviewView.getScreenFlashePreviewView.setScreenFlashOverlayColorpara casos em queScreenFlashViewnão é adicionado explicitamente. (I43945).
Correções de bugs
- Correção de problemas de exposição e tonalidade de cor quando a imagem é capturada com o flash ativado em baixa luminosidade com o caso de uso VideoCapture vinculado. (Ic9814).
- Correção do problema em que interromper uma solicitação do
takePicturecom as extensões ativadas poderia não gerar um resultado, e a próxima solicitação dotakePicturepoderia não funcionar mais. (Iae78f). - Correção de um problema de vazamento de memória que ocorre quando as extensões estão ativadas. (Iab276).
- Foi resolvido um problema de funcionamento das extensões do CameraX em dispositivos como o Pixel 7/8 e a série Samsung Galaxy S24. O problema, que decorre de um problema de conversão de
Camera2OutputConfigImplno modo de lançamento, surgiu após o upgrade do AGP para a versão 8.5.1 e a ativação da minificação. (I99598, b/354824993).
Versão 1.4.0-beta02
12 de junho de 2024
Lançamento de androidx.camera:camera-*:1.4.0-beta02. A versão 1.4.0-beta02 contém estes commits.
Mudanças na API
- Semelhante a
VideoCapture, adicionesetMirrorModepara o caso de uso de pré-lançamento. Ele vai oferecer suporte ao modo espelho ATIVADO e DESATIVADO para o stream de prévia usandoOutputConfiguration.setMirrorModeda API 33 e versões mais recentes. Para APIs mais antigas, não haverá operação. (I821f4)
Correções de bugs
- Corrigido o problema que impedia os apps de tirar fotos no Samsung Tab A8 quando
ImageCaptureselecionava 1920x1080 na combinaçãoPreview+VideoCapture+ImageCaptureUseCase. (I5a463, b/336925549). - A gravação persistente fixa pode não continuar gravando após a troca de câmera. (Icb0a1).
Versão 1.4.0-beta01
14 de maio de 2024
Lançamento de androidx.camera:camera-*:1.4.0-beta01. A versão 1.4.0-beta01 contém estes commits.
Mudanças na API
- Adição de
ZoomGestureDetector.ZoomEventpara encapsular os estados de um gesto de zoom. (I84cdf).
Correções de bugs
- Correção de um bug em que a captura e o toque para foco não usam os valores de FPS/modo de estabilização de solicitação repetida, o que pode recriar a sessão de captura e causar problemas de latência ou congelamento da visualização em alguns dispositivos. (I7dc0b)
- Correção de um bug que impedia a seleção de alta resolução quando o
CameraEffectestava ativado em alguns dispositivos. por exemplo, 4000 x 3000 no Samsung A32 5G. (Ie3ed3, b/337336152). - Foi corrigida uma falha ao tirar fotos com a visualização,
ImageCaptureeVideoCapture(UHD)vinculados no Pixel 4XL API29. (I5b288). - Suporte a dispositivos virtuais: o contexto transmitido para
ProcessCameraProviderpreserva o ID do dispositivo para garantir a funcionalidade em um ambiente de dispositivo virtual. (I5ba48).
Versão 1.4.0-alpha05
17 de abril de 2024
Lançamento de androidx.camera:camera-*:1.4.0-alpha05. A versão 1.4.0-alpha05 contém estes commits.
Novos recursos
- Conversão de
ProcessCameraProviderpara implementação em Kotlin. (I46d4f). - Adicionamos funções de suspensão
ImageCapture.takePicturepara permitir que ela seja chamada de maneira idiomática em Kotlin. (I920be).
Mudanças na API
- Adicione APIs de formato de saída a
ImageCapturee o métodogetSupportedOutputFormatsaImageCaptureCapabilitiespara consultar a capacidade do dispositivo. O valor padrão do formato de saída éOUTPUT_FORMAT_JPEG, que captura imagens SDR no formato JPEG. Quando o dispositivo é compatível com Ultra HDR e o formato de saída está definido comoOUTPUT_FORMAT_JPEG_ULTRA_HDR, o CameraX captura imagens compactadas em Ultra HDR usando o formato de imagem JPEG/R. O formato é compatível com versões anteriores de imagens SDR JPEG e oferece suporte para renderização de conteúdo HDR. Isso significa que, em apps ou dispositivos mais antigos, as imagens aparecem como JPEG normal. Já em apps e dispositivos atualizados para oferecer suporte total ao formato, as imagens aparecem como HDR. (I5de50) - Adição de
PhysicalCameraInfoemCameraInfopara consultar informações da câmera física e adição de setter/getter de ID da câmera física emCameraSelector(Ic5b90) CameraController#COORDINATE_SYSTEM_VIEW_REFERENCEDfoi substituída porImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. O valor da constante permanece o mesmo. Isso serve para consolidar todas as constantes em um só lugar. (I890bb).- A nova API
RetryPolicypermite que os desenvolvedores personalizem o comportamento de novas tentativas para a inicialização da CameraX. (I36dd2). - Permitir a criação do objeto
ImageCaptureLatencyEstimatepara ajudar na capacidade de teste (Iaba99) - Adicione um
ImageAnalysis#COORDINATE_SYSTEM_SENSOR. Quando isso é usado, oMlKitAnalyzerretorna coordenadas no sistema de coordenadas do sensor da câmera. (I3ec61). - API de metadados de extensões expostas. As novas interfaces
CameraExtensionsInfoeCameraExtensionsControlpermitem que os aplicativos monitorem e ajustem as configurações de intensidade da extensão. Os aplicativos podem receber a instânciaCameraExtensionsInfoouCameraExtensionsControlusando os métodosExtensionsManager#getCameraExtensionsInfo()ouExtensionsManager#getCameraExtensionsControl()recém-adicionados. (I28e1a) - Adição de
ProcessCameraProvider.awaitInstance, que é uma versão de suspensão deProcessCameraProvider.getInstance(Ib22b9). - Adicione uma API
PreviewView#getSensorToViewTransform(). A matriz representa a transformação das coordenadas do sensor da câmera para as coordenadas dePreviewView. Isso pode ser usado para transformar coordenadas de umUseCasepara outro. Por exemplo, transformar as coordenadas de objetos detectados emImageAnalysispara uma sobreposiçãoPreviewView. (I947ab). - Torne a API
camera-viewfinder-coremais genérica para que possa ser usada porcamera-viewfinderecamera-viewfinder-compose. (I1e295). - Adicione a função
getSurfaceaViewfinderSurfaceRequest. (I781a0). - Use
camera-viewfinder-coreemcamera-viewfindere descontinueViewfinderSurfaceRequesteCameraViewfinder. (I6198c). - Adicionamos
ZoomGestureDetector, que interpreta gestos de escalonamento configurados especificamente para a atividade de pinça para zoom. (Ifafbf).
Correções de bugs
- Corrigimos o problema de seleção de resolução
ImageAnalysisrelacionado à configuração de resolução de destino padrão do analisador: a resolução de destino era mantida incorretamente como 640 x 480, mesmo que os aplicativos tivessem definido uma configuração de resolução padrão diferente para o analisador. Se os aplicativos encontrarem esse problema (1.3.0 ~ 1.3.2) e não for possível fazer upgrade para usar as versões mais recentes que contêm a solução, defina diretamente umResolutionSelectorcom a resolução preferida e umAspectRatioStrategycorrespondente aoImageAnalysisUseCasepara contornar o problema. (I81f72, b/330091012). - Foi corrigido um problema em que uma solicitação
takePictureenfileirada poderia não ser executada se a solicitação atual falhasse. (Ie0801). - Faça a verificação de dados JPEG inválidos aplicada aos dispositivos Vivo X60 e X60 Pro. Isso pode corrigir o problema de imagens anormalmente grandes nesses dispositivos. (I82247, b/288828159)
- Correção do problema de metadados incorretos de imagens JPEG em dispositivos Samsung A24. Com a correção, o CameraX pode salvar a imagem JPEG ou retornar objetos Bitmap corretos ao chamar a função
ImageProxy.toBitmap()em dispositivos Samsung A24. (I8d6eb, b/309005680). - Faça a verificação de dados JPEG inválidos em todos os dispositivos Samsung se a imagem capturada for maior que 10 MB. Isso pode corrigir o problema de imagens anormalmente grandes em dispositivos Samsung. (Ic2a65, b/288828159).
- Removemos o suporte a
ImageAnalysisnas extensões do CameraX porque muitas implementações de extensões de OEMs não funcionam bem comImageAnalysise podem causar problemas inconsistentes. (I2d926).
Versão 1.4.0-alpha04
24 de janeiro de 2024
Lançamento de androidx.camera:camera-*:1.4.0-alpha04. A versão 1.4.0-alpha04 contém estas confirmações.
Novos recursos
- Novo artefato: camera-effects: uma biblioteca para aplicar efeitos em tempo real à saída do CameraX, incluindo
Preview,VideoCapturee/ouImageCapture. Esse artefato contém implementações do OpenGL da APICameraEffectque manipula a saída da câmera de maneira eficiente. OverlayEffect: para desenhar sobreposições com a API Canvas do Android. Isso permite que o app aplique uma marca d'água ou destaque objetos detectados nas saídas da câmera.- APIs
DynamicRangepara o caso de uso de visualização: agora, o intervalo dinâmico pode ser definido no caso de uso de visualização, independente do caso de uso de vídeo. Isso permite intervalos dinâmicos de HDR, como HLG10, apenas para a prévia. Novas APIs também estão disponíveis emCameraInfopara consultar quais intervalos dinâmicos cada câmera oferece suporte.
Mudanças na API
ScreenFlashUiCompleterfoi renomeado comoScreenFlashListener, eScreenFlashUiCompleter#getExpirationTimeMillisfoi movido para o parâmetroexpirationTimeMillisdeScreenFlash#apply. (I13944)- Novas APIs adicionadas para permitir que o intervalo dinâmico seja definido no caso de uso de prévia e para consultar os intervalos dinâmicos compatíveis com cada câmera. Isso permite que intervalos dinâmicos de HDR, como HLG10, sejam usados apenas com o caso de uso de prévia, sem exigir mais que um
VideoCaptureseja vinculado ao mesmo tempo. (If25e3). getMirroring()foi renomeado comoisMirroring()(I47063).- Adicionamos suporte à estimativa de latência de captura estática em tempo real na CameraX. As extensões de câmera permitem que os aplicativos usem uma API que fornece uma estimativa de quanto tempo uma captura vai levar. A estimativa considera as condições ambientais atuais, o estado da câmera e inclui o tempo gasto no processamento de solicitações de captura de vários frames, além de qualquer tempo adicional para codificar buffers processados, se necessário. (I05c3a).
- O
ScreenFlashUiControlfoi renomeado comoScreenFlash, oScreenFlashUiControl#applyScreenFlashUicomoScreenFlash#applye oScreenFlashUiControl#clearScreenFlashUicomoScreenFlash#clear. Além disso, o métodogetScreenFlashUiApplyTimeoutSecondsfoi adicionado em vez de expor oSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDSdiretamente. (Iccdd0).
Correções de bugs
- Correção de um vazamento de memória que faz com que atividades ou fragmentos não sejam liberados quando as extensões estão ativadas (I14215).
- Correção do problema em que
getZoomRatioretornava incorretamente um valor reduzido ao aplicar uma proporção de zoom crescente. (I4aa0d, b/317543616) - O evento
ImageCapture#ScreenFlash#clearé invocado imediatamente quandoImageCaptureé desvinculado ou a câmera é fechada. Também corrige alguns bugs em que ele nunca é invocado porque as capturas nesses cenários não são concluídas corretamente. (If99f9). - Foi corrigida a falha que ocorre quando o ciclo de vida é interrompido antes da conclusão da solicitação
takePicture(Idf017, b/306202751). - Foi corrigido o problema em que a visualização da câmera ficava preta quando as extensões estavam ativadas em alguns dispositivos (I1ffd0)
- Correção da duração incorreta da gravação de vídeo em dispositivos que usam o SoC Snapdragon 778G. (If6aa7, b/316057919)
Versão 1.4.0-alpha03
13 de dezembro de 2023
Lançamento de androidx.camera:camera-*:1.4.0-alpha03. A versão 1.4.0-alpha03 contém estas confirmações.
Novos recursos
- Adicionamos
CameraInfo.mustPlayShutterSoundpara informar se um som de obturador precisa ser reproduzido de acordo com as restrições regionais. (Ifda84). - Adição de
OnImageCapturedCallback.onCaptureStartedeOnImageSavedCallback.onCaptureStartedpara notificar quando a câmera começa a expor um frame. Recomendamos reproduzir o som ou a animação do obturador neste momento. (Ic49b3) - Adicionamos suporte ao recurso de flash da tela na CameraX para captura de imagens da câmera frontal. A CameraX cuida do processamento da API do lado do framework e sincroniza o tempo com as mudanças na interface do app conforme necessário (por exemplo, acionador de pré-captura de AE após a mudança de cor/brilho da tela do app). Os apps só precisam adicionar as implementações do lado da interface na interface
ScreenFlashUiControlfornecida à CameraX. (I8ae84) - Adicionado suporte à implementação do recurso de flash de tela no lado da interface do usuário no CameraX. Os apps poderão receber uma implementação básica de
ImageCapture.ScreenFlashUiControldePreviewViewou do recém-adicionadoScreenFlashView, que vai adicionar uma visualização de sobreposição monocromática e maximizar o brilho da tela durante a captura de fotos com flash. (I1810e).
Mudanças na API
- Compatibilidade com novos recursos de extensões(pós-visualização e progresso do processo de captura): adição de APIs
ImageCapture#getImageCaptureCapabilities()para que os apps consultem as funcionalidades da pós-visualização e do callback de progresso do processo de captura. Os apps podem ativar a pós-visualização usando oImageCapture.Builder#setPostviewEnabled(). O tamanho pós-visualização pode ser selecionado usandoImageCapture.Builder#setPostviewResolutionSelector(). Ao invocartakePicture(),onPostviewBitmapAvailableeonCaptureProcessProgressedpodem ser implementados emOnImageSavedCallbackouOnImageCapturedCallbackpara receber a visualização após a exibição e a notificação de progresso do processo, se compatível. (I5cd88). - APIs para calcular a transformação de coordenadas do sensor para o buffer atual, com uma flag indicando se a superfície contém as informações de orientação da câmera. (I59096)
- Exponha a API para consultar
PreviewCapabitlityna préviaUseCase. (Ie5b6c) - Adição de APIs para oferecer suporte a mais qualidades para
VideoCapture. ORecorder.Builder#setVideoCapabilitiesSource(int)pode ser usado comVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIESpara criar uma instânciaRecorderque oferece suporte a mais qualidades do queVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE. Um caso de uso comum é quando o aplicativo tenta gravar vídeos em UHD sempre que possível, mas oCamcorderProfiledo dispositivo não inclui configurações de UHD, mesmo que o codec seja capaz de gravar vídeos nessa qualidade. (Iedbe2, b/263961771). - Adicione o getter/setter do formato de saída
ImageAnalysisaCameraController. (I9a96c, b/308240643)
Correções de bugs
- Em Câmera
1.3.1: melhoria na performance doProcessCameraProvider#bindToLifecycle(). A principal mudança é otimizar o processo de identificação das combinações de tamanho mais adequadas paraUseCases. Os resultados ideais variam de acordo com as combinações específicas deUseCasee o número de tamanhos de saída compatíveis para os dispositivos de destino. (I454f2). - Permitir o uso do
VideoCapturequando as extensões estão ativadas. (I91f32). - Correção do problema de imagens JPEG grandes capturadas em dispositivos das séries Samsung A71 e M51. As imagens JPEG capturadas contêm dados de padding redundantes de 0 no segmento de dados compactados JFIF. Isso faz com que as imagens capturadas tenham um tamanho de arquivo muito grande. Esses dados de padding de 0s redundantes serão removidos para que as imagens capturadas tenham tamanhos de arquivo de imagem normais. (I01afc, b/288828159).
- Desative o suporte a
ImageAnalysisnos Pixels para evitar o bug que retorna acidentalmente os tamanhos compatíveis não vazios deImageAnalysis. (I7ec31). - Correção de um problema de desempenho em que o carregamento da CPU e o consumo de energia aumentavam quando as extensões estavam ativadas. (Ibdccb).
- Adição do Snapdragon 480 ao
CameraUseInconsistentTimebaseQuirk. Isso corrige um problema no Android 12 para dispositivos que usam esse chipset, em que o áudio das gravações é compensado pela quantidade de tempo que o dispositivo fica em estado suspenso. (I58010).
Versão 1.4.0-alpha02
18 de outubro de 2023
Lançamento de androidx.camera:camera-*:1.4.0-alpha02. A versão 1.4.0-alpha02 contém estas confirmações.
Mudanças na API
- Renomeie a API como
setCameraOpenRetryMaxTimeoutInMillisWhileResuminge renomeie o argumento. (I72370) - Adição de APIs para consultar a capacidade do dispositivo e ativar a estabilização de vídeo/prévia. (I87544).
- Forneça uma API para personalizar o tempo máximo de espera para novas tentativas de abertura da câmera. (I0c642).
- Lançamos
ProcessCameraProvider.shutdownAsynccomo uma API pública de teste para permitir que o provedor de câmera de processo seja usado em conjuntos de testes que podem precisar inicializar o CameraX de maneiras diferentes entre os testes. (I9eca7). - Adição de APIs para configurar o intervalo dinâmico, a taxa de frames e o modo espelho da captura de vídeo. (Ifb8f7).
- Descontinue
OutputSizee substitua porResolutionSelector. OResolutionSelectoré uma maneira mais abrangente de selecionar resoluções e é consistente com a API camera-core. (I93abd, b/286801438).
Correções de bugs
- Foi corrigido o problema de visualização preta no Samsung Galaxy S23 Ultra 5G quando as extensões Bokeh ou Retoque de rosto estão ativadas com
ImageAnalysisna câmera traseira. (I2e8b1). - Correção de problemas de visualização e
VideoCaptureesticados no Moto E5 Play. (73dce2)
Versão 1.4.0-alpha01
20 de setembro de 2023
Lançamento de androidx.camera:camera-*:1.4.0-alpha01. A versão 1.4.0-alpha01 contém estas confirmações.
Mudanças na API
- Adição de uma nova API para acessar informações de amplitude de áudio durante a gravação. (Id4925)
Correções de bugs
- Melhorar a estabilidade das extensões garantindo que os eventos de inicialização e desinicialização sejam acionados na ordem correta. (Ib3b8e).
- Corrigimos a falha na configuração da sessão de captura por exceder a combinação de superfície compatível devido à adição de uma superfície repetida extra internamente. (Id718c).
- Correção do problema de imagens JPEG grandes capturadas no dispositivo Vivo S16. As imagens JPEG capturadas contêm dados de padding redundantes de 0 no segmento de dados compactados JFIF. Isso faz com que as imagens capturadas tenham um tamanho de arquivo grande. Esses dados de padding de 0s redundantes serão removidos para que as imagens capturadas tenham tamanhos de arquivo de imagem normais. (I79505, b/299069235).
- Foi corrigido o problema em que o
ImageAnalysisnão podia ser vinculado aoImageCapturee à visualização quando alguns modos de extensão estavam ativados em alguns dispositivos. A correção vai retornar o valor correto quando os apps consultarem a disponibilidade doImageAnalysisviaExtensionsManager#isImageAnalysisSupported(). (I7d538). - Atualize o JavaDoc para corresponder ao comportamento. Em vez de ser concluído imediatamente, o
#setZoomRatio,#setLinearZoome#enableTorchaguardam até que a câmera esteja pronta. Também adicionamos informações sobre como conseguir o FOV máximo com a API#takePicture. (I23588).
Versão 1.3
Versão 1.3.4
12 de junho de 2024
Lançamento de androidx.camera:camera-*:1.3.4. A versão 1.3.4 contém estes commits.
Correções de bugs
- Correção do problema em que
getZoomRatioretornava incorretamente um valor reduzido ao aplicar uma proporção de zoom crescente. (I4aa0d, b/317543616) - Foi corrigido o problema em que a captura de imagens estáticas/toque para foco não usava os valores de FPS/modo de estabilização de solicitação repetida, o que podia recriar a sessão de captura e causar problemas de latência ou congelamento da prévia em alguns dispositivos. (I7dc0b)
- Correção do problema em que a taxa de frames era definida como um valor menor ao chamar
setTargetFrameRatecomFRAME_RATE_RANGE_UNSPECIFIED. (I78c61).
Versão 1.3.3
17 de abril de 2024
Lançamento de androidx.camera:camera-*:1.3.3. A versão 1.3.3 contém estes commits.
Correções de bugs
- Corrigimos o problema de seleção de resolução
ImageAnalysisrelacionado à configuração de resolução de destino padrão do analisador: a resolução de destino era mantida incorretamente como 640 x 480, mesmo que os aplicativos tivessem definido uma configuração de resolução padrão diferente para o analisador. Se os aplicativos encontrarem esse problema (1.3.0 ~ 1.3.2) e não for possível fazer upgrade para usar as versões mais recentes que contêm a solução, defina diretamente umResolutionSelectorcom a resolução preferida e umAspectRatioStrategycorrespondente para oImageAnalysisUseCase. (I81f72, b/330091012).
Versão 1.3.2
6 de março de 2024
Lançamento de androidx.camera:camera-*:1.3.2. A versão 1.3.2 contém estes commits.
Correções de bugs
- Correção de um problema de metadados JPEG em dispositivos Samsung A24. Agora, o CameraX salva imagens com precisão, e a função
ImageProxy.toBitmap()retorna objetos Bitmap corretos. (I8d6eb, b/309005680). - Removemos a opção de resolução 9280x6944 nos dispositivos Redmi Note 9 Pro devido a problemas. (Ia23da).
Versão 1.3.1
13 de dezembro de 2023
Lançamento de androidx.camera:camera-*:1.3.1. A versão 1.3.1 contém estas confirmações.
Correções de bugs
Melhoria no desempenho do ProcessCameraProvider#bindToLifecycle(). A principal mudança é otimizar o processo de identificação das combinações de tamanho mais adequadas para UseCases. Os resultados ideais variam de acordo com as combinações específicas de UseCase e o número de tamanhos de saída compatíveis para os dispositivos de destino. (I454f2).
Confira alguns resultados de referência para vários cenários:
Quatro
UseCases:Preview+ImageCapture+ImageAnalysis+VideoCapture- Google Pixel 7: aproximadamente 430 ms a 60 ms
- Samsung Galaxy S23 Ultra: aproximadamente 540 ms a 45 ms
- Samsung A53 5G: aproximadamente 115 ms a 70 ms
Três
UseCases:Preview+ImageCapture+ImageAnalysis- Google Pixel 7: aproximadamente 9 ms a 7 ms
- Samsung Galaxy S23 Ultra: aproximadamente 6 ms a 5 ms
- Samsung A53 5G: aproximadamente 32 ms a 12 ms
Adição do Snapdragon 480 ao
CameraUseInconsistentTimebaseQuirk. Isso corrige um problema no Android 12 para dispositivos que usam esse chipset, em que o áudio das gravações é compensado pela quantidade de tempo que o dispositivo fica em estado suspenso. (I58010).
Versão 1.3.0
18 de outubro de 2023
Lançamento de androidx.camera:camera-*:1.3.0. A versão 1.3.0 contém estas confirmações.
Mudanças importantes desde a versão 1.2.0
- Recursos de vídeo, incluindo HDR de 10 bits, corte, espelhado/não espelhado, ativar/desativar som, definir taxa de frames e muito mais.
- Câmera dupla simultânea
- Biblioteca de efeitos
- Seletor de resolução
- Seleção de câmera telescópica e ultra grande angular
- Troca de câmera durante a gravação de vídeo (recurso experimental)
Versão 1.3.0-rc02
20 de setembro de 2023
Lançamento de androidx.camera:camera-*:1.3.0-rc02. A versão 1.3.0-rc02 contém estas confirmações.
Correções de bugs
- Melhorar a estabilidade das extensões garantindo que os eventos de inicialização e desinicialização sejam acionados na ordem correta. Isso corrigiu alguns problemas de visualização preta ao alternar entre os modos de extensões ou as câmeras. (Iddaac).
- Foi corrigido o problema em que o
ImageAnalysisnão podia ser vinculado aoImageCapturee à visualização quando alguns modos de extensão estavam ativados em alguns dispositivos. A correção vai retornar o valor correto quando os apps consultarem a disponibilidade doImageAnalysisviaExtensionsManager#isImageAnalysisSupported(). (I7d538). - Correção de um problema em que o áudio e o vídeo gravados ficavam dessincronizados quando o modo espelhamento estava ativado no Xiaomi Poco X3 NFC. (I20b4c)
Versão 1.3.0-rc01
23 de agosto de 2023
Lançamento de androidx.camera:camera-*:1.3.0-rc01. A versão 1.3.0-rc01 contém estas confirmações.
Mudanças na API
- Adicionamos
PendingRecording.asPersistentRecordingpara permitir que uma gravação seja feita continuamente enquanto oVideoCapturea que o Gravador está anexado é reassociado. (I517c6).
Correções de bugs
- Correção de uma falha quando uma transmissão é compartilhada com
VideoCapturee a prévia. Também corrigimos uma tela preta em dispositivos LEGACY quando o compartilhamento de stream está ativado. - Correção do problema de imagens JPEG grandes capturadas em dispositivos da série Samsung S7 (SM-G930T, SM-G930V). As imagens JPEG capturadas contêm dados de padding redundantes de 0 no segmento de dados compactados JFIF. Isso faz com que as imagens capturadas tenham um tamanho de arquivo grande. Esses dados de padding de 0s redundantes serão removidos para que as imagens capturadas tenham tamanhos de arquivo de imagem normais. (I407b0, b/288828159).
- Correção do problema de imagens JPEG grandes capturadas nos dispositivos Samsung S22 (SM-S901B, SM-S901B/DS) e S22+ (SM-S906B). As imagens JPEG capturadas contêm dados de padding redundantes de 0 no segmento de dados compactados JFIF. Isso faz com que as imagens capturadas tenham um tamanho de arquivo grande, cerca de 13 MB, no dispositivo S22 SM-S901B/DS. Esses dados de padding de 0s redundantes serão removidos para que as imagens capturadas tenham tamanhos de arquivo de imagem normais. (I73be9, b/288828159)
- Correção do problema de imagens JPEG grandes capturadas em dispositivos das séries Samsung A5, A52, A70 e A72. As imagens JPEG capturadas contêm dados de padding redundantes de 0 no segmento de dados compactados JFIF. Isso faz com que as imagens capturadas tenham um tamanho de arquivo extremo (por exemplo, cerca de 32 MB ou até 96 MB). Esses dados de padding de 0 redundantes serão removidos para que as imagens capturadas tenham tamanhos de arquivo de imagem normais. (I97c4d, b/288828159)
- Correção da falha nativa ao tirar fotos com as extensões ativadas (I698f5).
Versão 1.3.0-beta02
26 de julho de 2023
Lançamento de androidx.camera:camera-*:1.3.0-beta02. A versão 1.3.0-beta02 contém estas confirmações.
Correções de bugs
- Use a lanterna como flash nas variantes do Pixel 4 e 5 para melhorar a qualidade da captura em ambientes com pouca luz (I56ff5, b/280221967).
- Correção do problema de imagens JPEG grandes capturadas em dispositivos da série Samsung A5 (2017). As imagens JPEG capturadas contêm dados de padding redundantes de 0 no segmento de dados compactados JFIF. Isso faz com que as imagens capturadas tenham um tamanho de arquivo de cerca de 32 MB. Esses dados de padding de 0 redundantes serão removidos para que as imagens capturadas tenham tamanhos de arquivo de imagem normais. (I29837, b/288828159).
- Correção do problema em que a nova tentativa não era acionada corretamente em caso de falha na captura nos dispositivos problemáticos mencionados em
CaptureFailedRetryQuirk. (I7b589)
Versão 1.3.0-beta01
21 de junho de 2023
Lançamento de androidx.camera:camera-*:1.3.0-beta01. A versão 1.3.0-beta01 contém estas confirmações.
Mudanças na API
- O nome da função
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)foi renomeado comosetAllowedResolutionMode, e as constantesResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ONforam renomeadas comoPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE. (If84e8) - As APIs descontinuadas
ImageAnalysis.setTargetRotationDegrees(int),ImageCapture.setTargetRotationDegrees(int)eVideoCapture.setTargetRotationDegrees(int)foram removidas. (Id8e77). - A classe
DynamicRangerepresenta o intervalo dinâmico das imagens. Isso pode ser usado para selecionar formatos de alta faixa dinâmica como saída deVideoCaptureaVideoCapture.Builder#setDynamicRange(). (Ib0377). - Adição de uma API
isImageAnalysisSupportedaoExtensionsManagerpara que os apps possam determinar se um caso de uso deImageAnalysispode ser vinculado com a visualização e oImageCapturequando as extensões estão ativadas. (I1bc63). - A nova classe
VideoCapabilitiesobtida doRecorderpode ser usada para consultar intervalos dinâmicos e qualidades compatíveis para gravação de vídeo no dispositivo. Os métodosgetSupportedQualities()eisQualitySupported()doQualitySelectorestão sendo descontinuados. Use os métodosgetSupportedQualities()eisQualitySupported()doVideoCapabilities. (I04014) CameraController#setVideoCaptureTargetQuality()é renomeado parasetVideoCaptureQualitySelectore usa o argumentoQualitySelector, que oferece mais flexibilidade para a configuração da qualidade do vídeo.CameraController#getVideoCaptureTargetQuality()é alterado paragetVideoCaptureQualitySelector. (I520ed).- A anotação experimental dos recursos de vídeo foi removida. Os recursos de vídeo agora estão na versão estável. (I1a113).
Correções de bugs
- Use a lanterna como flash nos modelos Samsung SM-A320 para melhorar a velocidade e a qualidade da imagem capturada com pouca luz. (I6a022, b/286190938).
- Adição de compatibilidade com o formato
ImageFormat.JPEGparaImageProxy.toBitmap(). Se não for possível decodificar a matriz de bytes JPEG, umUnsupportedOperationExceptionserá gerado. (I81958, b/282057603).
Versão 1.3.0-alpha07
24 de maio de 2023
Lançamento de androidx.camera:camera-*:1.3.0-alpha07. A versão 1.3.0-alpha07 contém estas confirmações.
Novos recursos
- A nova API
VideoCapture.Builder# setTargetFrameRate(Range)permite que gravações de vídeo sejam capturadas em outras taxas de frames além da padrão do dispositivo. As taxas de frames disponíveis para gravações podem ser consultadas pela nova APICameraInfo#getSupportedFrameRates().
Mudanças na API
- As constantes
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ONforam renomeadas comoALLOWED_RESOLUTIONS_NORMAL/SLOW, e o nome da função do buildersetHighResolutionEnabledFlagfoi renomeado comosetAllowedResolutionMode. (Iae817). CameraInfo#getSupportedFrameRateRanges()agora retorna umSetem vez de umListpara representar melhor que os intervalos não estão ordenados. (I02f43).- Adicione um listener de erros a
CameraEffectpara processar erros irrecuperáveis (Ice471). - Adição de um construtor público em
ResolutionInfopara melhorar a capacidade de teste (If6d1c) - Fornecimento de uma API
UseCase.snapToSurfaceRotation(int)para substituir o uso desetTargetRotationDegreese descontinuação das APIsImageAnalysis.setTargetRotationDegrees(int),ImageCapture.setTargetRotationDegrees(int)eVideoCapture.setTargetRotationDegrees(int). (Ia9010). - Adição das novas APIs
Preview#getTargetFrameRateePreview.Builder#setTargetFrameRatepara definir e recuperar a taxa de frames de destino para o caso de uso de visualização (If4f22). - Agora,
VideoRecordEvent.Finalizeserá concluído com o código de erroERROR_RECORDING_GARBAGE_COLLECTEDquando o objetoRecordingfor interrompido devido à coleta de lixo. (Iba974).
Correções de bugs
- Correção de
NullPointerExceptionquando os tamanhos de saída armazenados em cache emStreamConfigurationMapCompatsão nulos. (Idf124, b/282025204). - Correção do problema em que
Preview.setSurfaceProvider(null)não pausava a visualização nas extensões (Ia903e). - Correção de um problema em que
ConcurrentModificationExceptionera gerado durante a abertura da câmera quandoVideoCaptureestava vinculado. (Ic8ac4).
Versão 1.3.0-alpha06
19 de abril de 2023
Lançamento de androidx.camera:camera-*:1.3.0-alpha06. A versão 1.3.0-alpha06 contém estas confirmações.
Novos recursos
- A câmera simultânea é um novo recurso introduzido no Android 11 que oferece suporte ao streaming simultâneo de dispositivos de câmera. Por exemplo, ela permite que um dispositivo tenha as câmeras frontal e traseira funcionando ao mesmo tempo. No momento, o CameraX só oferece suporte a duas câmeras simultâneas, o que permite que duas câmeras operem ao mesmo tempo, com no máximo dois {@link UseCase}s vinculados a cada uma. A resolução máxima é de 720p ou 1440p. Para mais detalhes, consulte CameraManager#getConcurrentCameraIds().
- Apresentamos a nova API
ResolutionSelector, que abrange os seguintes recursos:- Os aplicativos podem especificar estratégias de proporção e resolução para selecionar a melhor resolução para as necessidades deles.
- Todos os parâmetros de tamanho e proporção são expressos nas coordenadas do sensor do dispositivo de câmera.
- Os aplicativos podem implementar um filtro de resolução personalizado para organizar os tamanhos compatíveis na ordem desejada.
- Os aplicativos também podem ativar a captura em alta resolução para obter imagens de maior resolução. No entanto, usar uma resolução alta pode resultar em tempos de captura mais lentos.
- Adição de APIs de espelhamento
VideoCapture. Os vídeos gravados peloVideoCapturenão são espelhados por padrão. No entanto, a visualização da câmera é espelhada na câmera frontal por padrão. As APIs de espelhamentoVideoCapturepermitem o alinhamento com a visualização da câmera ao usar a câmera frontal. Há trêsMirrorMode,OFF,ONeON_FRONT_ONLY. Para alinhar à prévia da câmera, é recomendável usarON_FRONT_ONLY, o que significa que o espelhamento não está ativado para a câmera traseira, mas está ativado para a câmera frontal.
Mudanças na API
- Nova API
ResolutionSelectorexposta. Os aplicativos podem especificar estratégias de proporção e resolução com regras de substituição ou um filtro de resolução personalizado para receber os resultados desejados. Os aplicativos podem especificar uma flag para ativar a captura de alta resolução. Isso permite que o CameraX selecione resoluções mais altas ao tirar fotos ou gravar vídeos. No entanto, usar uma resolução alta pode resultar em tempos de captura mais lentos. (Ibed95). - Agora é possível consultar os intervalos de FPS compatíveis com o algoritmo AE usando
CameraInfo#getSupportedFrameRateRanges(). (Iaa67f) - Consolide os nomes de todos os métodos de taxa de frames para usar "FrameRate". Corrija o erro do Javadoc em
VideoCapture#getTargetFrameRate()(I83304). - Descontinuamos as APIs legadas
setTargetAspectRatioesetTargetResolution. Use a nova APIResolutionSelector. (I542c3). - Adição de APIs públicas para câmera dupla simultânea, incluindo
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)boolean isConcurrentCameraModeOn()eConcurrentCameraConfig,SingleCameraConfigeConcurrentCamera(Iab1c1)
- Tornar
ImageProcessor.Response#getOutputImageNonNull (Ib9c60) - Adicionamos APIs de espelhamento
VideoCapture, incluindoVideoCapture.Builder.setMirrorMode(int)eVideoCapture.getMirrorMode(). As APIs são úteis para aplicativos que exigem que a gravação de vídeo seja consistente com o comportamento comum de visualização da câmera. Por exemplo, a visualização da câmera traseira não é espelhada, mas a da câmera frontal é. (I713b6, b/194634656). - Adição da API
setTargetFrameRate()emVideoCapture.Buildere da APIgetTargetFramerate()emVideoCapture(I109d4) - Faça com que
SurfaceOutputestenda Closable e oculte o construtor público de SurfaceOutput.Event. (I60ea8). - Adicionamos
Recording.mutepara ativar ou desativar o som de uma gravação em processamento de forma dinâmica.RecordingStatsvai conterAudioStats.AUDIO_STATE_MUTEDquando a gravação em processamento for silenciada explicitamente. (Ie17fc). - Tornamos o parâmetro
#setEffects()não nulo. Adição de uma API#clearEffects()para limpar efeitos. O app precisa chamar#clearEffects()para remover os efeitos. (I4b4d9) - Adição de um segundo construtor para
ViewfinderSurfaceRequest.Builderque usa um builder para o construtor de cópia (I621a7).
Correções de bugs
- Correção do problema em que os apps que invocavam a API Extensions podiam falhar ao fechar a câmera (Ib27e5).
- Correção de um problema em que o
VideoCapturenão funcionava com a câmera frontal em alguns dispositivos. Por exemplo, no Samsung Galaxy S23 e no Xiaomi 2107113SG. (Ibec7e, b/270656244) - Correção do problema em que tirar fotos usando "Arquivo" na pasta pública de armazenamento externo sempre falha no Android 10 ou versões mais recentes. No Android 10, tirar fotos usando o arquivo na pasta pública de armazenamento externo também exige definir
requestLegacyExternalStoragecomo "true" na tag do aplicativo. (I11b2c). - Correção de uma falha de
RejectedExecutionExceptionemDefaultSurfaceProcessor. A falha pode ocorrer quandoVideoCaptureestá vinculado e a atividade está pausada. (Idb46a, b/273713906).
Versão 1.3.0-alpha05
22 de março de 2023
Lançamento de androidx.camera:camera-*:1.3.0-alpha05. A versão 1.3.0-alpha05 contém essas confirmações.
Mudanças na API
- Adição de APIs de rotação de
VideoCapture, incluindoVideoCapture.Builder.setTargetRotation(int),VideoCapture.setTargetRotation(int),VideoCapture.setTargetRotationDegrees(int)eVideoCapture.getTargetRotation(). As APIs são úteis para aplicativos que bloqueiam a orientação do dispositivo.ImageCapture.setTargetRotationDegrees(int)eImageAnalysis.setTargetRotationDegrees(int)também são adicionados. (Id3ffe, b/205242781). - Permitir
VIDEO_CAPTUREePREVIEW|VIDEO_CAPTUREcomo destino de efeitos. Os efeitos que têm como destinoVIDEO_CAPTUREserão aplicados ao UseCaseVideoCapture. Os efeitos que têm como destinoPREVIEW|VIDEO_CAPTUREserão aplicados a um stream compartilhado antes de serem copiados para a visualização e o streamVideoCapture. (Iee6f3).
Correções de bugs
- Em Câmera
1.2.2: corrigimos o problema em que as extensões do CameraX não funcionavam corretamente quando o proguard estava ativado em alguns dispositivos, como o Pixel (I90aa2). - Correção de um bug do
PreviewView. Se o app processar a orientação da tela por conta própria, a visualização poderá ficar distorcida ao girar. Isso só acontece em alguns dispositivos. Ele pode ser reproduzido no Pixel 4a, Pixel 5 e Pixel 6a. (I14340, b/223488673).
Versão 1.3.0-alpha04
22 de fevereiro de 2023
Lançamento de androidx.camera:camera-*:1.3.0-alpha04. A versão 1.3.0-alpha04 contém essas confirmações.
Novos recursos
Um novo recurso que oferece suporte a combinações de plataforma anteriormente sem suporte ao compartilhar um fluxo para vários casos de uso.
- Anteriormente, o CameraX gerava
IllegalArgumentExceptionao vincular "Preview, VideoCapture, ImageAnalysis" no nível de hardware da câmera FULL e abaixo, ou ao vincular "Preview, VideoCapture, ImageCapture" no nível de hardware LEGACY. - Agora, as vinculações vão funcionar sem gerar exceções. Em vez disso, o CameraX usará o OpenGL para copiar um stream compartilhado para a visualização e a captura de vídeo.
- Como custo da cópia do buffer, o app poderá ter um aumento na latência e no consumo de energia.
Mudanças na API
- Uma API foi adicionada para converter
ImageProxyemBitmap. O formato deImageProxycom suporte éImageFormat.YUV_420_888ePixelFormat.RGBA_8888. Se o formato for inválido, será gerado umIllegalArgumentException(Ic7110). CoroutineCameraViewfinderfoi adicionado para oferecer suporte à configuração do visor usando funções de suspensão em Kotlin (I657bc).- Foi adicionado um novo construtor público para
ViewfinderSurfaceRequest. Ele oferece a flexibilidade quando o usuário não pode fornecerCameraCharacteristics(Ie6549).
Correções de bugs
- Foi corrigida a falha de extensões que ocorria em alguns dispositivos Samsung ao pausar/retomar o app muito rapidamente (Iaca26).
Versão 1.3.0-alpha03
25 de janeiro de 2023
Lançamento de androidx.camera:camera-*:1.3.0-alpha03. A versão 1.3.0-alpha03 contém essas confirmações.
Mudanças na API
CameraInfo.getIntrinsicZoomRatiofoi adicionado para fornecer informações de ângulo de visualização em relação à câmera padrão (Ib300c).CameraInfo.getLensFacingfoi adicionado para fornecer informações voltadas para a lente.CameraSelector#LENS_FACING_EXTERNALfoi adicionado como um recurso experimental para selecionar câmeras externas (Icaf3e).- Adicione
#setEffect()aCameraController, que permite adicionar efeitos à saída da câmera (I1d21f). - Adicione o método
invalidate()aSurfaceRequest. O provedor pode notificar que a plataforma fornecida anteriormente não é mais válida (Idc649). - Adicione uma API
ImageProcessor. Essa interface serve para injetar efeitos de pós-processamento no pipelineImageCapture(I575c6). - Foi adicionada a API
Recorder.Builder.setAspectRatio(), que pode ser combinada comQualitySelectorpara oferecer suporte a mais resoluções de vídeo (I8a082). Recorder.Builder#setTargetVideoEncodingBitRatefoi adicionado para definir a codificação de vídeo de destinoBitRate, eRecorder#getTargetVideoEncodingBitRatefoi adicionado para receber a taxa de bits de codificação de vídeo de destino (I5984d).
Correções de bugs
- A falha de
ImageCaptureque ocorria quando não havia unidade de flash e o modo de flash estava ativado foi corrigida (I9e8b4, b/263391112). - O problema de corrupção de imagens JPEG ao gravar dados de local Exif em alguns dispositivos Samsung Android 12 foi corrigido (Ib7086, b/263747161, b/263289024).
- Ao definir a lanterna/zoom antes dos componentes de inicialização da câmera, como ao chamar
CameraController#enableTorch, a ação pendente será armazenada em cache e enviada quando a inicialização for acionada (I11e92, b/264157663).
Versão 1.3.0-alpha02
7 de dezembro de 2022
Lançamento de androidx.camera:camera-*:1.3.0-alpha02. A versão 1.3.0-alpha02 contém estas confirmações.
Mudanças na API
- nova API para aplicar o efeito pós-processamento à saída da visualização (Ic17d5).
OutputOptions.getDurationLimitfoi renomeado comoOutputOptions.getDurationLimitMillis, eOutputOptions.setDurationLimitfoi renomeado comoOutputOptions.setDurationLimitMillis(I91f0c).- A classe
AudioConfigfoi adicionada para processar a configuração de áudio ao gravar vídeos. A anotação@RequiresPermissionfoi movida das funçõesstartRecordingparaAudioConfigpara evitar solicitações de permissão desnecessárias nos casos em que o áudio não é necessário (I28755). - Remoção das classes Metadata,
OnVideoSavedCallback,OutputFileOptionseOutputFileResultsque não são mais usadas após a aplicação da nova API de captura de vídeo (I38cd8). - Aplicação da nova API de captura de vídeo. Os métodos
getVideoCaptureTargetSizeesetVideoCaptureTargetSizeforam substituídos pelos métodosgetVideoCaptureTargetQualityesetVideoCaptureTargetQuality, já que não há mais suporte parasetTargetResolution(I2a1d5).
Correções de bugs
- A API descontinuada
core.VideoCapturefoi removida (I531e0). - Correção do problema em que o callback
onErrornão era chamado ao tirar fotos sem a permissão de armazenamento (I936db, b/244807669). - Melhoria na qualidade e a confiabilidade das extensões da câmera. As extensões da câmera estão desativadas nos dispositivos Motorola com extensões de câmera v1.1.0 ou mais antigas devido a problemas com o suporte ao Bokeh, captura de imagens e visualização não retomada (Id3ce3).
- Correção da falha nativa quando o corte de vídeo via
ViewPortestá ativado em dispositivos legados (I16b8a, b/251357665).
Versão 1.3.0-alpha01
9 de novembro de 2022
Lançamento de androidx.camera:camera-*:1.3.0-alpha01. A versão 1.3.0-alpha01 contém estas confirmações.
Novos recursos
- O
Camera-viewfinderfoi publicado oficialmente. OCamera-viewfinderfornece um widget de visor básico que pode mostrar a transmissão da Camera2. Confira este exemplo de código.
Mudanças na API
- Foi adicionado
OutputOptions.setDurationLimitpara permitir a configuração do limite da duração do vídeo. A gravação será finalizada de forma automática quando exceder o limite de duração especificado (I902a0). - Foi adicionado o estado de erro
AudioStats.AUDIO_STATE_SOURCE_ERRORdo áudio da gravação de vídeo. Ele é enviado quando a configuração da fonte de áudio falha ou ocorre algum erro (I37410).
Correções de bugs
- Foi adicionada peculiaridade para permitir que alguns dispositivos problemáticos tentem repetir a captura uma vez ao encontrar falhas (Id4795).
- Correção do problema de tela preta da implementação da
PreviewVieweSurfaceViewemViewPager2. Como parte da correção,PreviewViewvai reutilizar aSurfaceViewse a resolução solicitada não mudar (Ib3f27). - Suporte ao corte de vídeo (recurso WYSIWYG) quando a API
ViewPortouCameraControlleré usada (Ifbba8, b/201085351). - Correção do problema que ocorria quando o vídeo capturado com a câmera frontal não era gravado no Huawei P40 Lite (I87c57, b/250807400).
Versão 1.2
Versão 1.2.3
24 de maio de 2023
Lançamento de androidx.camera:camera-*:1.2.3. A versão 1.2.3 contém estas confirmações.
Correções de bugs
- Correção de um problema em que o
VideoCapturenão funcionava com a câmera frontal em alguns dispositivos. Por exemplo, no Samsung Galaxy S23 e no Xiaomi 2107113SG. (Ibec7e, b/270656244)
Versão 1.2.2
22 de março de 2023
Lançamento de androidx.camera:camera-*:1.2.2. A versão 1.2.2 contém estas confirmações.
Correções de bugs
- Correção do problema em que as extensões do CameraX não funcionavam corretamente quando o ProGuard estava ativado em alguns dispositivos, como o Pixel (I90aa2).
Versão 1.2.1
25 de janeiro de 2023
Lançamento de androidx.camera:camera-*:1.2.1. A versão 1.2.1 contém estas confirmações.
Correções de bugs
- Corrija o problema de corrupção de imagens JPEG ao gravar dados de local Exif em alguns dispositivos Samsung Android 12 (b/263289024).
Versão 1.2.0
7 de dezembro de 2022
Lançamento de androidx.camera:camera-*:1.2.0. A versão 1.2.0 contém estas confirmações.
Mudanças importantes desde a versão 1.1.0
- Nova biblioteca camera-mlkit-vision. Integração fácil da CameraX usando vários recursos do MLKit, como a leitura de código de barras, detecção facial, detecção de texto etc. Adicionamos
MLKitAnalyzercomo novas APIs. - Nova API Zero-Shutter Lag experimental. Otimização do 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 será menor em comparação com outros modos de captura. Em dispositivos sem suporte para oZERO_SHUTTER_LAG, ele será substituído porCAPTURE_MODE_MINIMIZE_LATENCY. - O uso de
android.camera.core.VideoCapturefoi descontinuado. - A
setStreamUseCase()foi adicionada como uma APICamera2Interoppública. - Novo requisito de nível de API para
setOutputImageRotationEnabled. ImageAnalysis.Analyzer#getTargetResolutionOverride()foi renomeado comoImageAnalysis.Analyzer#getDefaultTargetResolution()- Adicionamos a API para definir metadados de local do vídeo salvo.
- Correção de uma taxa de frames baixa ao usar os casos de uso de
VideoCapturee de visualização com proporção de 16:9 - 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.
- Correção dos problemas de esticamento da
Preview/VideoCaptureno Samsung J7 Prime (SM-G610M) e no J7 (SM-J710MN) em dispositivos com API de nível 27. - 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.
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
setStreamUseCaseparaOutputConfigurationO 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/VideoCaptureno 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 imagensPreview/VideoCapturesejam esticadas. Adição de solução alternativa para não selecionar a resolução de 1.920 x 1.080 para visualização ouVideoCapturepara evitar o problema de imagem esticada (I0e04e). - Correção de uma taxa de frames baixa ao usar os casos de uso
VideoCapturee 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
SurfaceProviderda visualização não é definido. Como parte da correção, a visualização semSurfaceProviderdefinido 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
BOKEHestava 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.AnalyzereMLKitAnalyzerse tornaram APIs oficiais. - A API é exposta para definir metadados de local do vídeo salvo.
- O
ImageAnalysis.Analyzer#getTargetResolutionOverride()foi renomeado comoImageAnalysis.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
ExifInterfaceanalise 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 comoImageAnalysis.Analyzer#getDefaultTargetResolution(). O comportamento também mudou para que o valor retornado por esse método possa ser substituído pelo valor deImageAnalysis#setTargetResolution()(If1d36). - A API é exposta para definir metadados de local do vídeo salvo. Um objeto
android.location.Locationpode ser definido com a nova APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location)(I313a0, b/204197544).
Correções de bugs
- Correção do problema ao tirar fotos com a prévia de desvinculação (Ie70b6, b/235119898).
- Correção de uma falha no
Recorderque 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.AnalyzereMLKitAnalyzerfoi 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
isFocusSuccessfulcomo falso se aFocusMeteringActionnã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
- Foi adicionado um novo modo de captura
CAPTURE_MODE_ZERO_SHUTTER_LAGemImageCapture. Também adicionamosisZslSupportedemCameraInfopara consultar a capacidade do dispositivo. O modoCAPTURE_MODE_ZERO_SHUTTER_LAGtem 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
AssertionErrornão era processado ao receber a característicaCONTROL_ZOOM_RATIO_RANGEfoi 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
QualitySelectornão gravava um vídeo em UHD quando uma estratégia de substituição estava ativada. O problema ocorre quando aVideoCaptureestá vinculada àImageCapturee à visualização em um dispositivo de câmera com nível de hardware FULL ou superior. Uma estratégia de substituição deQualitySelectorfaz com queVideoCapturereceba incorretamente uma resolução FHD. Essa combinação de uso oferece suporte à resolução UHD e precisa ser adotada (I0e788, b/230651237). - A
NullPointerExceptionfoi corrigida emImageCapture.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 oficial camera-video 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.setOutputImageRotationEnabledesetOutputImageFormat). - Adicionamos 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
CameraStateque 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#OnImageCapturedCallbackquando as extensões estão ativadas. - Adicionamos uma API
isFocusMeteringSupportedaCameraInfo, que permite que os aplicativos confirmem se aFocusMeteringActionfornecida oferece suporte à câmera atual ou não. - A API
getResolutionInfofoi exposta para fornecer as informações de resolução para Preview,ImageCaptureeImageAnalysis - Adicionamos uma nova API
ImageCapture.Builder#setJpegQualitypara 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 deCameraInfoscom base em umCameraSelector. - Adicionamos
Camera2CameraControl.clearCaptureRequestOptionspara limpar as opções de solicitação de captura já existentes. - Adicionamos uma API experimental para usar
CameraControllercom bibliotecas de processamento de imagens externas, como a MLKit. - Adicionamos a API experimental
CameraInfo#getCameraSelector()que retorna umCameraSelectorexclusivo para a câmera. - Várias APIs experimentais foram promovidas para APIs formais públicas.
- A anotação
@Experimentalfoi substituída por@RequiresOptInpara 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()eCameraXConfig#getSchedulerHandler(). - APIs
@ExperimentalCameraFilter. - APIs experimentais de compensação de exposição.
- A API
UseCaseGroupexperimental foi promovida para camera-core, camera-lifecycle e camera-video. Os elementosViewPort#getLayoutDirection,ViewPort.Builder#setLayoutDirectioneViewPort.Builder#setScaleTypeforam adicionados para personalizar a janela de visualização. - O
ExperimentalUseCaseGroupLifecyclefoi promovido para APIs formais públicas. - Mudanças nas APIs atuais.
Renamed MediaStoreOutputOptions.getCollectioncomoMediaStoreOutputOptions.getCollectionUri.- A classe
ActiveRecordingfoi renomeada como "Recording" para diminuir a verbosidade. - A API criadora
QualitySelectorfoi mudada para uma API baseada em lista.
Correções de bugs
- Foi corrigido o problema da
EOFExceptiondoYuvToJpegProcessorquando o modo de extensão era ativado e o modoImageCapture#CAPTURE_MODE_MAX_QUALITYestava 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
NullPointerExceptionfoi corrigida emImageCapture.takePicture()(I92366, b/230454568, b/229766155). - Foi corrigido um bug em que o
AssertionErrornão era processado ao receber a característicaCONTROL_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 doVideoCapture<Recorder>falhasssem na gravação com umaMediaCodec.CodecException, especialmente em dispositivos com APIs 21 e 22 (Ie7f68). - Correção de um problema em que imagens capturadas da
CameraExtensionsActivitynão eram excluídas emImageCaptureTest.
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
CaptureRequestOptionsfoi restringido (I261b6). - Foi adicionada uma API experimental para usar
CameraControllercom 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
PreviewViewquando 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
AbstractMethodErrorque 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 causa 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 daInvalidConfigException. Se ainda não for possível configurar oRecorder, 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
- Foi adicionada a 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 da matriz de compatibilidade de versões grandes.
Mudanças na API
Camera2CameraControl.clearCaptureRequestOptionsforam 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
QualitySelectormudou para serem representadas por objetos de classe. Por exemplo, aQualitySelector.QUALITY_HDé mudada paraQuality.HD, eQualitySelector.FALLBACK_STRATEGY_LOWERé mudada para a instância retornada porFallbackStrategy.lowerQualityOrHigherThan(Quality). A API usada para criar aQualitySelectormudou para uma API baseada em lista. A nova APIQualitySelector.fromOrderedList(List<Quality>)vai fazer referência à ordem da lista de qualidade de entrada em vez da ordem criada porQualitySelector.Procedure. A classeQualitySelector.Procedurefoi removida (I43343). - O
PendingRecording.withEventListener()foi removido, e o listener de eventos agora precisa ser transmitido paraPendingRecording.start(). Esse requisito do listener de eventos serve para incentivar o processamento de erros assíncronos que são informados no eventoVideoRecordEvent.Finalize(I1e71d). - A classe
ActiveRecordingfoi renomeada comoRecordingpara diminuir a verbosidade (I77ceb).
Correções de bugs
- Correção do problema que fazia com que as fotos capturadas no modo
FLASH_AUTOficassem 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
Resolutionde visualização (I4a694). - Remoção de câmeras que não têm
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE. Câmeras comREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLEtêm o conjunto mínimo de recursos aos quais todos os dispositivos de câmera oferecem suporte. Uma câmera semREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLEpode oferecer suporte a uma função especial, mas não à saída de cor padrão. ACameraXnão oferece suporte aos casos de usoPreview,ImageCapture,ImageAnalysisouVideoCapturedessas câmeras. Por isso, é necessário remover essas câmeras para evitar o uso incorreto (Ib8cda). - O elemento
CameraSelector#filternão gera mais umaIllegalArgumentExceptionquando 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
getSensorToBufferTransformMatrixfoi adicionada ao ImageInfo. A matriz retornada é um mapeamento das coordenadas do sensor para as coordenadas do buffer, ou seja, do valor deCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZEpara(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-alpha10como 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 a ImageCapture, a imagem cortada é compactada 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 forCAPTURE_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 a VideoCapture, a ImageCapture e a visualização estivessem vinculadas, 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
YuvToJpegProcessorquando o modo de extensão era ativado e o modoImageCapture#CAPTURE_MODE_MAX_QUALITYestava 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#setLayoutDirectioneViewPort.Builder#setScaleTypeforam 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
Camera2CameraFilterremovida. Sugerimos 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
ExperimentalCameraFilteragora estão fora do estágio experimental e se tornaram APIs formais. Elas podem ser usadas sem a anotação OptIn (I4bc94). - Foi 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
@Experimentalfoi substituída por@RequiresOptInpara APIs experimentais. Para chamar APIs experimentais, useandroidx.annotation.OptInem vez deandroidx.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).
- Foi adicionada uma API CameraState que será exposta pela 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#OnImageCapturedCallbackquando 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 peloCameraSelectorfornecido emCameraXConfig.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 a visualização ou a ImageCapture está vinculada (I5ae39).
- Foi corrigida a regressão de performance da 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
IllegalArgumentExceptionque ocorria quando todos os tamanhos com suporte para 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 particulares 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
ListenableFutureretornava emsetZoomRatioe osetLinearZoomnã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 preta (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 oferece suporte para 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
- Consulte a lista de 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 performance da 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 performance da 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 com suporte para 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
IllegalArgumentExceptionque ocorria quando todos os tamanhos com suporte para 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 apareciam. 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#onCaptureSuccessnã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_RATIOdo Android 11 para aumentar o zoom em dispositivos com Android 11 ou mais recentes que contêmCONTROL_ZOOM_RATIO_RANGEvá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 retornarSurface.ROTATION_0se 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 retornarSurface.ROTATION_0se 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
- Lançamento do suporte à Camera-Core 1.0.0-beta10.
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, a Camera2CameraInfo usa uma instância da CameraInfo ao ser criada para acessar informações relacionadas à 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
InitializationExceptionfoi 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_ONpara tirar uma foto e é modificado paraFLASH_MODE_OFFquando 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
DisplayOrientedMeteringPointFactoryusa uma instância deCameraInfo, em vez deCameraSelector, para que haja um mapeamento direto para a Camera que vai receber os pontos gerados. Todas as classes que usamDisplayOrientedMeteringPointFactorytambém aceitam uma instância deCameraInfoem vez deCameraSelector(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 com suporte para 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_STARTeFIT_ENDforam mesclados comFIT.FITsignifica 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
ConcurrentModificationExceptionao 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
- Foram adicionadas 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#startFocusAndMeteringvai 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
- Foram adicionadas 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 chamarProcessCameraProvider#getInstance(). Isso permite a personalização doCameraXConfigsem precisar da implementação deCameraXConfig.Providerna classe Application do app (Ia1a8d, link em inglês). CameraControl#startFocusAndMeteringvai 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
InitializationExceptioncontém umaCameraUnavailableExceptionque vai ser definida como oListenableFuturedo 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
startFocusAndMeteringem dispositivos em queCONTROL_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
InitializationExceptioncontém umCameraUnavailableExceptionque vai ser definido como oListenableFuturedo 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
setTargetResolutionesetTargetRotation. (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 da Camera2 via
Camera2Interopsem 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/149103700, links em inglês). - Correção da inicialização automática ao usar um app em um dispositivo usando uma pseudolocalidade. (I3bef3, b/154767663, 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
ImageProxydeImageCapturenão era retrocedido (I0c455, b/153249512). - Foram corrigidos os problemas em que a vinculação da 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)
- Melhoria da confiabilidade da reabertura da câmera 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
- Adicionamos uma API experimental,
CameraXConfig.Builder#setSchedulerHandler(), para definir o gerenciador usado internamente pela pilha de câmera da CameraX. Essa nova API junto aCameraXConfig.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 oImageProxyera acessado após oImageReaderProxyser fechado. Isso também faz com que todos osImageProxyrecebidos peloAnalyzerprecisem estar fechados antes de oImageReaderProxyser fechado (I4b299, b/145956416, b/154155377, b/156357269). - Remoção do parâmetro
CameraInfodePreviewView#createSurfaceProvider(). Agora,PreviewViewo recupera internamente deSurfaceRequest(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/154767663, 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
ImageAnalysisem 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
ImageProxydeImageCapturenão era retrocedido (I0c455, b/153249512). - Foi corrigido o problema em que a primeira câmera na lista de recursos do
CameraManagercom suporte nem sempre estava selecionada para uso (I4c624, b/153418028, links em inglês) - Correção da falha intermitente causada pela configuração de
Preview.SurfaceProviderque 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()semUseCasegeraria uma exceção. Isso impediu a recuperação de umaCamerasem vincular umUseCase.
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()doImageProxyproduzido porImageCapturefoi 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.gradlenão é mais necessária para usar a implementação padrão da 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
IllegalArgumentExceptionque acontecia nos dispositivos em que o tamanho da tela é menor que 640 x 480. (Ife3f2, b/150506192, links em inglês) - O
bindToLifecyclefoi corrigido para que só modifique o UseCase se a vinculação for realizada. Antes, ao chamarbindToLifecyclepara 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()doImageProxyproduzido porImageCapturefoi corrigido para corresponder ao valor de orientação rotacional EXIF (Id4281, b/150802561, links em inglês) - O
bindToLifecyclefoi corrigido para que só modifique o UseCase se a vinculação for realizada. Antes, ao chamarbindToLifecyclepara 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
Previewnão estava sendo atualizada quando a superfície de visualização mudava após chamarPreview.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 comoSurfaceRequest.provideSurface(Surface), eSurfaceRequest.setWillNotComplete()foi renomeado comoSurfaceRequest.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
CameraXConfigpadrã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(),ListenableFuturefoi substituído porExecutoreCallback. Isso simplifica a API ao não exigir mais o processamento de exceções emprovideSurface()e faz com que o callbackprovideSurface()não possa ser cancelado. O objetivo é evitar falhas em dispositivos mais antigos, causadas pelo lançamento prematuro de plataformas. O objetoSurfaceRequest.Resultagora é usado para rastrear como umaSurfaceRequestusa aSurfacefornecida. (I7854b). SurfaceRequest.setSurface(Surface)foi renomeado comoSurfaceRequest.provideSurface(Surface), eSurfaceRequest.setWillNotComplete()foi renomeado comoSurfaceRequest.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
CameraXConfigpadrã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 queSurfaces sejam retidas somente durante o uso da 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_RANGEcorretamente (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
ImageCapturepara que seja possível salvar imagens emUrieOutputStream. Os métodostakePicturesobrecarregados foram unificados em apenas um. Atualização do app de teste para usarUricomo exemplo canônico (Ia3bec, link em inglês) Preview.PreviewSurfaceProviderfoi renomeado comoPreview.SurfaceProvider. OsSurfaceProviders não exigem mais que os desenvolvedores criem o próprioListenableFuture, e aSurfaceagora é fornecida por um novo objetoSurfaceRequest. O métodoPreview.getPreviewSurfaceProvider()foi removido devido ao potencial de uso indevido quandoPreviewestá pareado com outras classes, comoPreviewView(I20105, link em inglês)getTargetRotation()egetTargetName()foram adicionados aPreview(Iceee7).getTargetRotation(),getBackpressureStrategy()egetImageQueueDepth()foram adicionados aImageAnalysis(I9d6d9, link em inglês)getTargetRotation()egetCaptureMode()foram adicionados aImageCapture()(I5bc17).- Os argumentos que anteriormente eram transmitidos em
ImageCapture.OnImageSavedCallback.onError()eImageCapture.OnImageCapturedCallback.onError()foram substituídos por um único argumentoImageCaptureException, 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
PrevieweImageCaptureagora são marcadas como finais. (I2500b, link em inglês). - A API foi atualizada com os métodos
getZoomRatio(),getMaxZoomRatio(),getMinZoomRatio()egetLinearZoom()de junção daCameraInfoemgetZoomState(), que retorna uma instânciaZoomState(Ib19fe). - Os campos de API
OPTION_TARGET_CLASSeOPTION_TARGET_NAMEdeCameraXConfigforam removidos, já que são destinados apenas para uso de biblioteca interna. Remoção do construtor deCameraXConfig.Builder(I96912, link em inglês) - Remoção da exigência de que o app inclua
Applicationpara inicializar a CameraX. A CameraX agora vai ser inicializada com uma configuração Camera2 padrão, desde que o artefatocamera-camera2esteja incluído nobuild.gradledo 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
CameraInfousandoCamera2CameraInfo.extractCameraId(). O exemplo de código a seguir mostra como fazer isso:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());A classe
Camera2CameraInfoprecisa da markerClassExperimentalCamera2Interop.
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
SurfaceOrientedMeteringPointFactoryuseCaseForSurfacefoi renomeado comouseCaseForAspectRatio, e a documentação de referência foi expandida. - Os métodos
FocusMeteringAction.Builder.from()foram substituídos pelos construtoresFocusMeteringAction.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âmetroDisplaye 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âmetroDisplay. - Expansão da documentação de referência para
setZoomRatioesetLinearZoom.
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
ConcurrentModificationExceptionque 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
startFocusMeteringecancelFocusMeteringagora 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 oferecia suporte para 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 não houver suporte para a opção solicitada, 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
PreviewViewouCameraViewpodem 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
FocusMeteringActioneCameraControl. - Implementação de
TorchControlparaenableTorch()egetTorchState().
Mudanças na API
- IntDefs foram ocultadas, e constantes de IntDef foram removidas da definição de IntDef.
rotationDegreesmovido da classeOnImageCaptureCallbackparaImageInfo.rotationDegreesmovido da classeAnalyzerparaImageInfo.
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).
Camera2Configagora está disponível para uso na inicialização e na configuração de uma implementação baseada na 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 deixe 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.Providere usar aCamera2Configpadrão fornecida porandroidx.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()ehasCamera(), anteriormente fornecidos pela chamada de classe da CameraX, agora estão disponíveis peloProcessCameraProvider.Uma instância por processo de
ProcessCameraProvideré recebida de maneira assíncrona usando o método estáticoProcessCameraProvider.getInstance(), que retorna um futuro audível, que, por sua vez, fornece oProcessCameraProviderna conclusão. Aqui, ele é mostrado emonCreate()em um uso típico. Você pode fazer chamadas paragetInstance()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 interface 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
ListenableFutureretornado porgetInstance(). Isso garante que o provedor da câmera possa ser recuperado doFuturesem bloqueio emFuture.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.bindToLifecyclerecebe 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 da visualização 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
PreviewViewfornecida 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
ImageAnalysisprecisa chamarimage.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 ImageReaderModefoi mudado para uma estratégia de pressão de retornointdef.ImageProxy.getImage()está marcado como experimental. Os aplicativos precisam anotar o uso, por exemplo, com@androidx.camera.core.ExperimentalGetImage.O requisito de anotação
UIThreadpara oAnalyzerfoi removido.A função
ImageAnalysis.clearAnalyzer()é adicionada para remover um analisador.Os listeners com mais de um método foram renomeados para Callback:
ImageCapture.OnImageCapturedListeneragora éImageCapture.OnImageCapturedCallbackImageCapture.OnImageSavedListeneragora éImageCapture.OnImageSavedCallbackVideoCapture.OnVideoSavedListeneragora é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.Metadataforam substituídos por acessadores get/set/is.startFocusMeteringecancelFocusMeteringagora retornamListenableFutures, que representam a operação assíncrona da chamada.MeteringPointsagora 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 oListenableFuture<Void>retornado é sempre um futurocomplete(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 paraCaptureSession) eTorchStatevai permanecer desativado. - Problema conhecido:
startFocusAndMeteringecancelFocusAndMeteringiniciam e cancelam a medição de foco, mas retornam um futurocompleted (success)imediato que não representa o comportamento documentado. OFocusMeteringResultdeListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()é um resultado falso queisFocusSuccessful()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
PreviewViewestá 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 paraPreviewView.
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çõesRATIO_4_3ouRATIO_16_9em 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 parasetTargetAspectRatioCustom(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.setOnPreviewOutputUpdateListenerFocusMeteringAction.Builder.setAutoFocusCallbackImageAnalysis.setAnalyzerImageCapture.takePictureCameraView.takePictureCameraView.startRecordingVideoCapture.startRecording
- API
CameraInfo adicionada com Check Flash disponível e APIs de rotação do sensor
Adicionamos
CameraInfoe um métodogetCameraInfo, 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()ousetTargetAspectRatio(). Chamar ambos no mesmo builder retornará um erro.- Em geral, recomenda-se usar
setTargetAspectRatio()com base no design da interface 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 as resoluções mínimas (para salvar o cálculo) ou máximas (para detalhes de processamento) forem necessárias.
- Em geral, recomenda-se usar
- 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.onErrorfosse 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 a ImageAnalysis:
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more. - Foram adicionamos 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.UseCaseErrorfoi renomeado paraImageCapture.ImageCaptureErrorVideoCapture.UseCaseErrorfoi renomeado paraVideoCapture.VideoCaptureError
A API
CameraControlfoi adicionada às APIs do recurso Toque para focar.A API foi adicionada para receber um
CameraControlda CameraX para uma câmera, selecionada com "lens facing":CameraX.getCameraControl(LensFacing lensFacing)MeteringPointFactory,MeteringPoint,MeteringModeeFocusMeteringActionforam 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
CameraControliniciar 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 (interface), gerando um
IllegalStateExceptionquando não estiverem. Versões futuras vão permitir o uso em outras linhas de execução e garantir 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 um 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
setTargetAspectRatioousetTargetResolution) - 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_IMAGEnã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
setLensFacingnão era chamado para um caso de uso, resultando em umajava.lang.IllegalArgumentException: Unable to get camera ID for use casefoi 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 retornarSurface.ROTATION_0se 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
- Lançamento do suporte à Camera-Core 1.0.0-beta10.
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
InitializationExceptioncontém umCameraUnavailableExceptionque vai ser definido como oListenableFuturedo 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()semUseCasegeraria uma exceção. Isso impediu a recuperação de umaCamerasem vincular umUseCase. - 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
ProcessCameraProviderdurante a inicialização, uma configuração padrão é usada e a extensão deApplicationé 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-beta02ecamera-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
@MainThreadfoi 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
LifeCycleCameraProvidere uma implementação chamadaProcessCameraProvider, que oferece muitas das funções da classe CameraX anterior no núcleo e é usada por meio do métodogetInstance(). - 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 aImageCaptureePreview. AVideoCaptureainda não tem suporte. Se o app vincular aVideoCapturee ativar qualquer modo de extensão, umaIllegalArgumentExceptionvai ser gerada (I0d87b). - O elemento
CameraSelector#filternão gera mais umaIllegalArgumentExceptionquando o conjunto de resultados está vazio (I27804). - A API
ExtensionsManager#getInstancefoi renomeada comogetInstanceAsyncporque retorna uma interfaceListenableFuture. 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#getEstimatedCaptureLatencyRangefoi removido, porque os usuários não sabem quais tamanhos têm suporte do caso de usoImageCapturee 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
CameraProviderdas funçõesExtensionsManagerfoi movido para a APIgetInstance(). Assim, os usuários não precisam inserir o parâmetroCameraProvidertodas as vezes ao chamar as funçõesExtensionsManager(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 acontecia quando o ProGuard estava 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, useRotationProvider#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>Extenderdescontinuadas, 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#getTransformfoi renomeado comoCoordinateTransform#transform, e o JavaDoc foi atualizado (I864ae).
Correções de bugs
- Correção do problema de extensão do modo
PreviewView PERFORMANCEao usá-lo em conjunto com a interface 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
- Foi adicionado um novo método,
CameraController#getTapToFocusState(), que expõe o resultado mais recente do recurso 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>Extendere 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 da ImageAnalysis e destacar o objeto detectado na visualização (I63ab1, b/137515129).
- A
CameraViewfoi removida.CameraViewfoi substituída porCameraController. Consulte o guia de migração (em inglês) para aprender a migrar: (Id5005).
Correções de bugs
ExperimentalUseCaseGroupLifecyclefoi substituído porExperimentalUseCaseGroup(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
@Experimentalfoi substituída por@RequiresOptInpara APIs experimentais. Para chamar APIs experimentais, useandroidx.annotation.OptInem vez deandroidx.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. Porém, a camera-view ainda é 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).
- Correção do 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
- Adição de um getter CameraInfo ao CameraController (Ib8138, b/178251727).
Correções de bugs
- Correção de ExtensionsErrorListener para informar erros quando apenas a visualização ou a ImageCapture está vinculada (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
@ExperimentalVideofoi 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@UseExperimentalcomExperimentalVideocomomarkerClass(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 retornarSurface.ROTATION_0se 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
- Lançamento do suporte à Camera-Core 1.0.0-beta10.
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
- Lançamento do suporte à Camera-Core 1.0.0-beta10.
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
ExtensionsManagerpara receber um objetoExtensionsusado 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()ePreviewView#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 comPreview#setTargetRotation()e aPreviewView#getViewPort(targetRotation)recém-adicionada (Ib62cc). createSurfaceProvider()foi renomeado comogetSurfaceProvider(). 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
DisplayOrientedMeteringPointFactoryusa uma instância deCameraInfo, em vez deCameraSelector, para que haja um mapeamento direto para a Camera que vai receber os pontos gerados. Todas as classes que usamDisplayOrientedMeteringPointFactorytambém aceitam uma instância deCameraInfoem vez deCameraSelector(I400c1).- Contato removido:
TextureViewMeteringPointFactory.PreviewViewfornece uma API pública (createMeteringPointFactory()) para criar uma fábrica de ponto de medição, independentemente de usarTextureViewouSurfaceView(Ide693). - Os modos de implementação
SURFACE_VIEW/TEXTURE_VIEWdo PreviewView foram renomeados comoPERFORMANCE/COMPATIBLE.PERFORMANCEé o modoSURFACE_VIEWantigo eCOMPATIBLEé o modoTEXTURE_VIEWantigo (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
- Foram adicionadas 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
InitializationExceptioncontém umCameraUnavailableExceptionque vai ser definido como oListenableFuturedo 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
- Foi adicionada a API
PreviewView#getBitmap()para retornar uma representação de bitmap do conteúdo mostrado 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
- Foi adicionada a API
PreviewView#getBitmap()para retornar uma representação de bitmap do conteúdo mostrado 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#getPreviewStreamStatepara 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_3com o Android 7.0 e versões anteriores. Uso forçado do modoImplementationMode#TEXTURE_VIEWquando a versão do Android é 7.0 ou anterior. (I83e30, b/155085307, links em inglês) - Remoção do parâmetro
CameraInfodePreviewView#createSurfaceProvider(). Agora,PreviewViewo recupera internamente deSurfaceRequest(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
PreviewViewao deslizar o fragmentoPreviewe depois de volta para o ViewPager2. Também foi corrigido o problema quandoremoveView(previewview)e depoisaddView(previewView). (Iab555, b/149877652, b/147354615) - Atualize a API
CameraView#takePicture()para que seja possível salvar imagens emUrieOutputStream. Atualize o app de teste para usarUricomo 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.ScaleTypefoi removido. Em vez disso, usePreviewView.ScaleTypepara 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
PreviewViewnã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-beta02ecamera-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_VIEWcomPreviewViewnão funcione bem em alguns dispositivos, porque aSurfaceViewusada 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 deSurfaceViewseja válida novamente. Por enquanto, useImplementationMode.TEXTURE_VIEW.
Mudanças na API
PreviewView.setImplementationMode()foi renomeado comoPreviewView.setPreferredImplementationMode().PreviewView.getImplementationMode()foi renomeado comoPreviewView.getPreferredImplementationMode().PreviewView.getSurfaceProvider()foi substituído porPreviewView.createSurfaceProvider(CameraInfo), que usa uma instânciaCameraInfoanulável para otimizar a visualização usandoImplementationMode.SURFACE_VIEWsempre que possível. Se uma instância nula for transmitida ou o modo de implementação preferencial for definido comoImplementationMode.TEXTURE_VIEW,ImplementationMode.TEXTURE_VIEWvai ser usado internamente.O exemplo 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
@UiThreadfoi adicionada aPreviewView.getSurfaceProvider(), o que significa que ela precisa ser chamada a partir da linha de execução principal (I192f3).Adicionamos
PreviewView.setScaleType(), que permite definir o tipo de escala da visualização. Ele aceita um dos valores emPreviewView.ScaleTypee assumePreviewView.ScaleType.FILL_CENTERcomo padrão.Adicionamos
PreviewView.getScaleType().Remoção do suporte à configuração do modo de implementação do
PreviewViewem um layout XML que usa o atributoimplementationMode.Adicionamos a API
createMeteringPointFactory()ao PreviewView para oferecer suporte à conversão (x, y) emPreviewViewparaMeteringPoint(IB36d7).
Correções de bugs
- Correção de casos em que uma visualização incorreta é mostrada 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(),ListenableFuturefoi substituído porExecutoreCallback. Isso simplifica a API ao não exigir mais o processamento de exceções emprovideSurface()e faz com que o callbackprovideSurface()não possa ser cancelado. O objetivo é evitar falhas em dispositivos mais antigos, causadas pelo lançamento prematuro de plataformas. O objetoSurfaceRequest.Resultagora é usado para rastrear como umaSurfaceRequestusa aSurfacefornecida. (I7854b). SurfaceRequest.setSurface(Surface)foi renomeado comoSurfaceRequest.provideSurface(Surface), eSurfaceRequest.setWillNotComplete()foi renomeado comoSurfaceRequest.willNotProvideSurface()(I224fe).- A inicialização de variantes do app com o ProGuard ativado foi corrigida, preservando a sinalização que define o provedor
CameraXConfigpadrã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()eImageCapture.OnImageCapturedCallback.onError()foram substituídos por um único argumentoImageCaptureException, 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
TextureViewdaPreviewViewagora define o tamanho daTextureViewcomo o tamanho de saída do sensor da câmera antes do dimensionamento para preencher aPreviewViewmãe. Caso você queira que a visualização da câmera preencha uma parte inteira da interface (a tela inteira, por exemplo), não defina o tamanho dePreviewViewcomo 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 dePreviewView, caso o tamanho de saída do sensor da câmera seja menor. Em vez disso, defina o tamanho dePreviewViewpara 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
ImageCapturepara que seja possível salvar imagens emUrieOutputStream. Os métodostakePicturesobrecarregados foram unificados em apenas um. Atualização do app de teste para usarUricomo exemplo canônico (Ia3bec, link em inglês) Preview.PreviewSurfaceProviderfoi renomeado comoPreview.SurfaceProvider. OsSurfaceProviders não exigem mais que os desenvolvedores criem o próprioListenableFuture, e aSurfaceagora é fornecida por um novo objetoSurfaceRequest. O métodoPreview.getPreviewSurfaceProvider()foi removido devido ao potencial de uso indevido quandoPreviewestá pareado com outras classes, comoPreviewView(I20105, link em inglês)- Os argumentos que anteriormente eram transmitidos em
ImageCapture.OnImageSavedCallback.onError()eImageCapture.OnImageCapturedCallback.onError()foram substituídos por um único argumentoImageCaptureException, 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()egetLinearZoom()de junção daCameraInfoemgetZoomState(), que retorna uma instânciaZoomState(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
CameraSelectorcomo parâmetro de entrada. Ele precisa ser o mesmoCameraSelectorusado 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. PreviewViewpode ser incluído no layout:<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />PreviewViewfornece umPreviewSurfaceProviderpara 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
PreviewImageProcessorImplimplementou corretamente os carimbos de data/hora. - Correção da falha de teste de
ExtensionTestno 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 (links em inglês).
- 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.