CameraX
이 표에는 androidx.camera
그룹의 모든 아티팩트가 나열됩니다.
아티팩트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
---|---|---|---|---|
camera-camera2 | 1.3.4 | 1.4.0-rc01 | - | - |
camera-core | 1.3.4 | 1.4.0-rc01 | - | - |
카메라 효과 | - | 1.4.0-rc01 | - | - |
camera-extensions | 1.3.4 | 1.4.0-rc01 | - | - |
camera-lifecycle | 1.3.4 | 1.4.0-rc01 | - | - |
camera-mlkit-vision | - | 1.4.0-rc01 | - | - |
camera-view | 1.3.4 | 1.4.0-rc01 | - | - |
카메라 뷰파인더 | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
camera-video | 1.3.4 | 1.4.0-rc01 | - | - |
기기 테스트
CameraX는 Google 실험실의 여러 기기에서 테스트됩니다. 현재 실험실에 있는 기기 목록을 보려면 CameraX 실험실 테스트 기기를 참고하세요.
종속 항목 선언
CameraX의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.
다음과 같이 앱 또는 모듈의 build.gradle
파일에 필요한 아티팩트의 종속 항목을 추가합니다.
Groovy
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.4.0-rc01" // 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.4.0-rc01" // 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}") }
의견
제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
Camera Viewfinder Compose 버전 1.0
버전 1.0.0-alpha02
2024년 6월 12일
androidx.camera:camera-viewfinder-compose:1.0.0-alpha02
이 출시되었습니다. 버전 1.0.0-alpha02에 포함된 커밋을 확인하세요.
버전 1.0.0-alpha01
2024년 5월 14일
androidx.camera:camera-viewfinder-compose:1.0.0-alpha01
이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
- 새 라이브러리 이 라이브러리는 CameraX 및 Camera2와 함께 사용할 수 있는 Compose 네이티브 뷰파인더 컴포저블을 도입합니다. 컴포저블 뷰파인더는 다양한 가로세로 비율과 터치 이벤트 처리를 지원합니다.
카메라 뷰파인더 버전 1.4
버전 1.4.0-alpha07
2024년 6월 12일
androidx.camera:camera-viewfinder:1.4.0-alpha07
및 androidx.camera:camera-viewfinder-core:1.4.0-alpha07
이 출시되었습니다. 버전 1.4.0-alpha07에 포함된 커밋을 확인하세요.
버전 1.4.0-alpha06
2024년 5월 14일
androidx.camera:camera-viewfinder:1.4.0-alpha06
및 androidx.camera:camera-viewfinder-core:1.4.0-alpha06
이 출시되었습니다. 버전 1.4.0-alpha06에 포함된 커밋을 확인하세요.
API 변경사항
- 기본 구현을 더 잘 반영하도록
Viewfinder
의ImplementationMode
enum 이름을 바꾸고TransformationInfo.sourceRotation
의 고정 상수를 추가합니다. 추가했습니다. (Ic6149) - 확대/축소 동작 상태를 캡슐화하는
ZoomGestureDetector.ZoomEvent
를 추가했습니다. 추가했습니다. (I84cdf)
카메라 버전 1.4
버전 1.4.0-rc01
2024년 8월 7일
androidx.camera:camera-*:1.4.0-rc01
이 출시되었습니다. 버전 1.4.0-rc01에 포함된 커밋을 확인하세요.
새로운 기능
- 사용 사례를 카메라에 결합할 필요 없이 특정 카메라 정보를 제공하는 실험용
CameraInfo.getCameraInfo
를 추가했습니다. 추가했습니다. (I550d1)
API 변경사항
ScreenFlashView
가 명시적으로 추가되지 않은 경우를 위해PreviewView.getScreenFlash
및PreviewView.setScreenFlashOverlayColor
API를 추가했습니다. 추가했습니다. (I43945)
버그 수정
- VideoCapture 사용 사례가 결합된 상태에서 어두운 곳에서 플래시를 사용 설정한 상태로 캡처할 때 발생하는 노출 및 색 번짐 문제를 수정했습니다. 추가했습니다. (Ic9814)
- 확장 프로그램이 사용 설정된 상태에서
takePicture
요청을 중단하면 결과를 얻지 못하고 다음takePicture
요청이 더 이상 작동하지 않는 문제를 수정했습니다. 추가했습니다. (Iae78f) - 확장 프로그램을 사용 설정할 때 발생하는 메모리 누수 문제가 수정되었습니다. 추가했습니다. (Iab276)
- Pixel 7/8 및 삼성 갤럭시 S24 시리즈와 같은 기기에서 CameraX 확장 프로그램 오작동이 해결되었습니다. 출시 모드의
Camera2OutputConfigImpl
변환 문제로 인해 발생하는 이 문제는 AGP를 8.5.1로 업그레이드하고 압축을 사용 설정한 후에 발생했습니다. 추가했습니다. (I99598, b/354824993)
버전 1.4.0-beta02
2024년 6월 12일
androidx.camera:camera-*:1.4.0-beta02
이 출시되었습니다. 버전 1.4.0-beta02에 포함된 커밋을 확인하세요.
API 변경사항
VideoCapture
와 마찬가지로 미리보기 사용 사례에setMirrorMode
를 추가합니다. API 33 이상의OutputConfiguration.setMirrorMode
를 통해 미리보기 스트림에 미러링 모드 사용 및 사용 중지를 지원합니다. 이전 API의 경우 노옵스(no-ops)입니다. 추가했습니다. (I821f4)
버그 수정
ImageCapture
이Preview
+VideoCapture
+ImageCapture
UseCase
조합에서 1920x1080을 선택할 때 앱이 삼성 Tab A8에서 사진을 성공적으로 찍지 못하는 문제가 해결되었습니다. 추가했습니다. (I5a463, b/336925549)- 카메라를 전환한 후 영구 녹화를 계속하지 못하는 문제가 해결되었습니다. 추가했습니다. (Icb0a1)
버전 1.4.0-beta01
2024년 5월 14일
androidx.camera:camera-*:1.4.0-beta01
이 출시되었습니다. 버전 1.4.0-beta01에 포함된 커밋을 확인하세요.
API 변경사항
- 확대/축소 동작 상태를 캡슐화하는
ZoomGestureDetector.ZoomEvent
를 추가했습니다. 추가했습니다. (I84cdf)
버그 수정
- 캡처 세션을 다시 만들고 일부 기기에서 지연 시간 문제 또는 미리보기 정지를 일으킬 수 있는 반복 요청 FPS/안정화 모드 값을 계속 캡처하고 탭하여 초점 맞추기를 사용하지 않는 버그를 수정했습니다. 추가했습니다. (I7dc0b)
- 일부 기기에서
CameraEffect
를 사용 설정한 경우 고해상도를 선택할 수 없는 버그가 수정되었습니다. (예: 삼성 A32 5G의 4000x3000). 추가했습니다. (Ie3ed3, b/337336152) - 미리보기로 사진을 찍을 때 발생하는 비정상 종료 문제를 수정했습니다. Pixel 4XL API29에서
ImageCapture
및VideoCapture(UHD)
이 바인딩되었습니다. 추가했습니다. (I5b288) - 가상 기기 지원:
ProcessCameraProvider
에 전달된 컨텍스트는 가상 기기 환경에서 기능을 보장하기 위해 기기 ID를 보존합니다. 추가했습니다. (I5ba48)
버전 1.4.0-alpha05
2024년 4월 17일
androidx.camera:camera-*:1.4.0-alpha05
이 출시되었습니다. 버전 1.4.0-alpha05에 포함된 커밋을 확인하세요.
새로운 기능
ProcessCameraProvider
를 Kotlin 구현으로 변환했습니다. 추가했습니다. (I46d4f)- Kotlin 관용구 방식으로 호출할 수 있도록
ImageCapture.takePicture
정지 함수를 추가했습니다. 추가했습니다. (I920be)
API 변경사항
ImageCapture
에 출력 형식 API를 추가하고 기기 기능을 쿼리하기 위한getSupportedOutputFormats
메서드를ImageCaptureCapabilities
에 추가합니다. 기본 출력 형식 값은OUTPUT_FORMAT_JPEG
이며 SDR 이미지를 JPEG 형식으로 캡처합니다. 기기에서 울트라 HDR을 지원하고 출력 형식이OUTPUT_FORMAT_JPEG_ULTRA_HDR
로 설정된 경우 CameraX는 JPEG/R 이미지 형식을 사용하여 울트라 HDR 압축 이미지를 캡처합니다. 이 형식은 SDR JPEG 형식과 하위 호환되며 콘텐츠의 HDR 렌더링을 지원합니다. 즉, 이전 앱이나 기기에서는 이미지가 일반 JPEG로 매끄럽게 표시됩니다. HDR 형식을 완벽하게 지원하도록 업데이트된 앱과 기기에서는 이미지가 HDR로 표시됩니다. 추가했습니다. (I5de50)CameraInfo
에PhysicalCameraInfo
를 추가하여 물리적 카메라 정보를 쿼리하고CameraSelector
에 물리적 카메라 ID setter/getter를 추가합니다. (Ic5b90)CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED
를ImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED
로 대체했습니다. 상수의 값은 동일하게 유지됩니다. 이는 모든 상수를 한 곳으로 통합하기 위한 것입니다. 추가했습니다. (I890bb)- 새로운
RetryPolicy
API를 사용하면 개발자가 CameraX 초기화의 재시도 동작을 맞춤설정할 수 있습니다. 추가했습니다. (I36dd2) ImageCaptureLatencyEstimate
객체 생성을 사용 설정하여 테스트 가능성을 지원합니다. (Iaba99)ImageAnalysis#COORDINATE_SYSTEM_SENSOR
를 추가합니다. 이를 사용하면MlKitAnalyzer
는 카메라 센서 좌표계의 좌표를 반환합니다. 추가했습니다. (I3ec61)- 노출된 확장 프로그램 메타데이터 API 새로운
CameraExtensionsInfo
및CameraExtensionsControl
인터페이스를 사용하면 애플리케이션에서 확장 프로그램 강도 설정을 모니터링하고 조정할 수 있습니다. 애플리케이션은 새로 추가된ExtensionsManager#getCameraExtensionsInfo()
또는ExtensionsManager#getCameraExtensionsControl()
메서드를 통해CameraExtensionsInfo
또는CameraExtensionsControl
인스턴스를 가져올 수 있습니다. 추가했습니다. (I28e1a) ProcessCameraProvider.getInstance
의 정지 버전인ProcessCameraProvider.awaitInstance
를 추가했습니다. (Ib22b9)PreviewView#getSensorToViewTransform()
API를 추가합니다. 매트릭스는 카메라 센서 좌표에서PreviewView
좌표로의 변환을 나타냅니다. 이는 좌표를 한UseCase
에서 다른UseCase
로 변환하는 데 사용할 수 있습니다. 예를 들어ImageAnalysis
에서 감지된 객체의 좌표를PreviewView
오버레이로 변환합니다. 추가했습니다. (I947ab)camera-viewfinder
및camera-viewfinder-compose
에서 사용할 수 있도록camera-viewfinder-core
API를 더 일반적으로 만듭니다. 추가했습니다. (I1e295)getSurface
함수를ViewfinderSurfaceRequest
에 추가합니다. 추가했습니다. (I781a0)camera-viewfinder
에서camera-viewfinder-core
를 사용하고ViewfinderSurfaceRequest
및CameraViewfinder
를 지원 중단합니다. 추가했습니다. (I6198c)- 손가락을 모으거나 펼쳐 확대/축소하는 활동을 위해 특별히 구성된 크기 조정 동작을 해석하는
ZoomGestureDetector
를 추가했습니다. (Ifafbf)
버그 수정
ImageAnalysis
' 수정됨 분석기 기본 타겟 해상도 설정과 관련된 해상도 선택 문제: 애플리케이션이 분석기 기본 해상도 설정을 다르게 설정한 경우에도 타겟 해상도가 640x480으로 잘못 유지되었습니다. 애플리케이션에 이 문제 (1.3.0~1.3.2)가 발생하고 솔루션이 포함된 최신 버전 출시 버전을 사용하도록 업그레이드할 수 없는 경우ResolutionSelector
를 원하는 해상도로 직접 설정하고AspectRatioStrategy
를ImageAnalysis
UseCase
로 설정하여 이 문제를 해결할 수 있습니다. 추가했습니다. (I81f72, b/330091012)- 현재 요청이 실패하면 큐에 추가된
takePicture
요청이 실행되지 않는 문제가 해결되었습니다. 추가했습니다. (Ie0801) - Vivo X60 및 X60 Pro 기기에 잘못된 JPEG 데이터 확인을 적용합니다. 이렇게 하면 기기에서 비정상적으로 큰 이미지 문제를 해결할 수 있습니다. 추가했습니다. (I82247, b/288828159)
- 삼성 A24 기기에서의 잘못된 JPEG 이미지 메타데이터 문제가 해결되었습니다. 이 수정사항을 통해 CameraX는 JPEG 이미지를 성공적으로 저장하거나 삼성 A24 기기에서
ImageProxy.toBitmap()
함수를 호출할 때 올바른 비트맵 객체를 반환할 수 있습니다. 추가했습니다. (I8d6eb, b/309005680) - 캡처한 이미지가 10MB보다 큰 경우 모든 삼성 기기에 잘못된 JPEG 데이터 검사가 적용되도록 합니다. 이렇게 하면 삼성 기기에서 비정상적으로 큰 이미지 문제가 해결될 수 있습니다. 추가했습니다. (Ic2a65, b/288828159)
- 많은 OEM에서 CameraX 확장 프로그램의
ImageAnalysis
지원을 삭제했습니다. 확장 프로그램 구현은ImageAnalysis
와 제대로 호환되지 않으며 일관성 없는 문제를 일으킬 수 있습니다. 추가했습니다. (I2d926)
버전 1.4.0-alpha04
2024년 1월 24일
androidx.camera:camera-*:1.4.0-alpha04
이 출시되었습니다. 버전 1.4.0-alpha04에 포함된 커밋을 확인하세요.
새로운 기능
- 새로운 아티팩트: camera-effects:
Preview
,VideoCapture
,ImageCapture
등 실시간 효과를 CameraX 출력에 적용하는 라이브러리입니다. 이 아티팩트에는 카메라 출력을 효율적으로 조작하는CameraEffect
API의 OpenGL 구현이 포함되어 있습니다. OverlayEffect
: Android의 Canvas API로 오버레이를 그리는 데 사용합니다. 이렇게 하면 앱이 카메라 출력에서 워터마크를 적용하거나 감지된 객체를 강조 표시할 수 있습니다.- 미리보기 사용 사례용
DynamicRange
API: 이제 동영상 사용 사례와 관계없이 미리보기 사용 사례에서 다이내믹 레인지를 설정할 수 있습니다. 이렇게 하면 미리보기용 HLG10과 같은 HDR 동적 범위가 허용됩니다. 또한CameraInfo
에서 새로운 API를 사용하여 각 카메라가 지원하는 동적 범위를 쿼리할 수 있습니다.
API 변경사항
ScreenFlashUiCompleter
의 이름을ScreenFlashListener
로 변경하고ScreenFlashUiCompleter#getExpirationTimeMillis
를ScreenFlash#apply
의expirationTimeMillis
매개변수로 이동했습니다. 추가했습니다. (I13944)- 미리보기 사용 사례에 다이내믹 레인지를 설정하고 각 카메라에서 지원하는 동적 범위를 쿼리할 수 있도록 새로운 API가 추가되었습니다. 따라서 HLG10과 같은 HDR 동적 범위를 미리보기 사용 사례에서만 사용할 수 있으므로 더 이상
VideoCapture
를 동시에 결합할 필요가 없습니다. 추가했습니다. (If25e3) getMirroring()
에서isMirroring()
로 이름을 바꿨습니다. (I47063)- CameraX에 실시간 스틸 캡처 지연 시간 추정치 지원을 추가했습니다. 카메라 확장 프로그램을 사용하면 애플리케이션이 캡처에 걸리는 시간을 추정하는 API를 사용할 수 있습니다. 추정치는 현재 환경 조건, 카메라 상태를 고려하며, 다중 프레임 캡처 요청을 처리하는 데 걸린 시간과 필요한 경우 처리된 버퍼를 인코딩하는 추가 시간을 포함합니다. 추가했습니다. (I05c3a)
ScreenFlashUiControl
의 이름이ScreenFlash
로,ScreenFlashUiControl#applyScreenFlashUi
에서ScreenFlash#apply
으로,ScreenFlashUiControl#clearScreenFlashUi
의 이름이ScreenFlash#clear
로 변경되었으며SCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS
를 직접 노출하는 대신getScreenFlashUiApplyTimeoutSeconds
메서드가 추가되었습니다. 추가했습니다. (Iccdd0)
버그 수정
- 확장 프로그램이 사용 설정되었을 때 활동 또는 프래그먼트가 해제되지 않는 메모리 누수를 수정했습니다. (I14215)
- 확대/축소 비율을 적용할 때
getZoomRatio
가 감소한 값을 잘못 반환하는 문제를 해결했습니다. 추가했습니다. (I4aa0d, b/317543616) ImageCapture#ScreenFlash#clear
이벤트는ImageCapture
가 결합 해제되거나 카메라가 닫히면 즉시 호출되며 이러한 시나리오에서 캡처가 제대로 완료되지 않아 호출되지 않는 일부 버그를 수정합니다. 추가했습니다. (If99f9)takePicture
요청이 완료되기 전에 수명 주기가 중지될 때 발생하는 비정상 종료 문제를 수정했습니다. (Idf017, b/306202751)- 일부 기기에서 확장 프로그램을 사용 설정할 때 카메라 미리보기가 검은색으로 표시되는 문제를 수정했습니다. (I1ffd0)
- Snapdragon 778G SoC를 사용하는 기기에서 동영상 녹화 시간이 잘못되던 문제를 수정했습니다. 추가했습니다. (If6aa7, b/316057919)
버전 1.4.0-alpha03
2023년 12월 13일
androidx.camera:camera-*:1.4.0-alpha03
이 출시되었습니다. 버전 1.4.0-alpha03에 포함된 커밋을 확인하세요.
새로운 기능
- 셔터 사운드가 지역별 제한사항에 따라 재생되어야 하는지에 관한 정보를 제공하는
CameraInfo.mustPlayShutterSound
를 추가했습니다. 추가했습니다. (Ifda84) - 카메라가 프레임 노출을 시작하기 시작하면 알리도록
OnImageCapturedCallback.onCaptureStarted
및OnImageSavedCallback.onCaptureStarted
를 추가했습니다. 이때 셔터 소리나 셔터 애니메이션을 재생하는 것이 좋습니다. 추가했습니다. (Ic49b3) - 전면 카메라 이미지 캡처를 위해 CameraX에 화면 플래시 기능 지원을 추가했습니다. CameraX는 프레임워크 측 API 처리를 처리하고 필요에 따라 애플리케이션의 UI 변경사항 (예: 앱 화면 색상/밝기 변경 후 AE 사전 캡처 트리거)과 타이밍을 동기화합니다. 앱은 CameraX에 제공되는
ScreenFlashUiControl
인터페이스에 UI 측 구현만 추가하면 됩니다. 추가했습니다. (I8ae84) - CameraX에 화면 플래시 기능 UI 측 구현 지원을 추가했습니다. 앱은
PreviewView
또는 새로 추가된ScreenFlashView
에서 기본ImageCapture.ScreenFlashUiControl
구현을 가져올 수 있습니다. 이 구현은 모노 색상 오버레이 뷰를 추가하고 화면 플래시 사진 캡처 중에 화면 밝기를 최대화합니다. 추가했습니다. (I1810e)
API 변경사항
- 새로운 확장 프로그램 기능(postview 및 캡처 프로세스 진행률) 지원: 앱이 postview 및 캡처 프로세스 진행 상황 콜백의 기능을 쿼리하도록
ImageCapture#getImageCaptureCapabilities()
API를 추가했습니다. 앱은ImageCapture.Builder#setPostviewEnabled()
를 사용하여 postview를 사용 설정할 수 있습니다.ImageCapture.Builder#setPostviewResolutionSelector()
를 사용하여 postview 크기를 선택할 수 있습니다.takePicture()
를 호출할 때 지원되는 경우 postview 및 처리 진행 상황 알림을 받기 위해onPostviewBitmapAvailable
및onCaptureProcessProgressed
를OnImageSavedCallback
또는OnImageCapturedCallback
에 구현할 수 있습니다. 추가했습니다. (I5cd88) - Surface에 카메라 방향 정보가 포함되어 있는지 여부를 나타내는 플래그를 사용하여 센서에서 현재 버퍼로의 좌표 변환을 계산하는 API. 추가했습니다. (I59096)
- 미리보기
UseCase
에서PreviewCapabitlity
를 쿼리하도록 API를 노출합니다. 추가했습니다. (Ie5b6c) VideoCapture
의 더 많은 품질을 지원하는 API를 추가했습니다.Recorder.Builder#setVideoCapabilitiesSource(int)
를VIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES
와 함께 사용하여VIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE
보다 더 많은 품질을 지원하는Recorder
인스턴스를 만들 수 있습니다. 일반적인 사용 사례는 애플리케이션이 가능한 경우 UHD 동영상을 녹화하려고 하지만 코덱이 UHD 동영상을 녹화할 수 있음에도 불구하고 기기의CamcorderProfile
에 UHD 설정을 포함하지 않는 경우입니다. 추가했습니다. (Iedbe2, b/263961771)ImageAnalysis
출력 형식 getter/setter를CameraController
에 추가합니다. 추가했습니다. (I9a96c, b/308240643)
버그 수정
- 카메라
1.3.1
에서:ProcessCameraProvider#bindToLifecycle()
성능을 개선했습니다. 주요 변경사항은UseCases
에 가장 적합한 크기 조합을 식별하는 프로세스를 최적화하는 것입니다. 최적의 결과는 특정UseCase
조합과 대상 기기에 지원되는 출력 크기 수에 따라 달라집니다. 추가했습니다. (I454f2) - 확장 프로그램이 사용 설정된 경우
VideoCapture
사용을 허용합니다. 추가했습니다. (I91f32) - 삼성 A71 및 M51 시리즈 기기에서 대용량 캡처된 JPEG 이미지 문제가 해결되었습니다. 캡처된 JPEG 이미지에는 JFIF 압축 데이터 세그먼트에 중복된 0 패딩 데이터가 포함되어 있습니다. 이로 인해 캡처된 이미지의 파일 크기가 매우 커집니다. 이러한 중복 0 패딩 데이터는 제거되어 캡처된 이미지가 일반 이미지 파일 크기가 되도록 합니다. 추가했습니다. (I01afc, b/288828159)
- 비어 있지 않은
ImageAnalysis
지원 크기를 실수로 반환하는 Pixel 버그를 방지하려면 Pixel에서ImageAnalysis
지원을 사용 중지하세요. 추가했습니다. (I7ec31) - 확장 프로그램을 사용 설정하면 CPU 로드 및 전력 소비가 늘어나는 성능 문제가 수정되었습니다. 추가합니다. (Ibdccb)
CameraUseInconsistentTimebaseQuirk
에 Snapdragon 480을 추가했습니다. 이는 기기가 정지 상태인 시간만큼 녹음 파일의 오디오가 상쇄되는 이 칩셋을 사용하는 기기의 Android 12 문제를 해결합니다. 추가했습니다. (I58010)
버전 1.4.0-alpha02
2023년 10월 18일
androidx.camera:camera-*:1.4.0-alpha02
이 출시되었습니다. 버전 1.4.0-alpha02에 포함된 커밋을 확인하세요.
API 변경사항
- API 이름을
setCameraOpenRetryMaxTimeoutInMillisWhileResuming
로 바꾸고 인수 이름을 바꿉니다. 추가했습니다. (I72370) - 기기 기능을 쿼리하고 동영상/미리보기 흔들림 보정을 사용 설정하는 API를 추가합니다. 추가했습니다. (I87544)
- 카메라 열기 재시도 최대 제한 시간을 맞춤설정하는 API를 제공합니다. 추가했습니다. (I0c642)
- 테스트 사이에 다른 방식으로 CameraX를 초기화해야 할 수 있는 테스트 모음에서 프로세스 카메라 제공자를 사용할 수 있도록
ProcessCameraProvider.shutdownAsync
를 공개 테스트 API로 출시했습니다. 추가했습니다. (I9eca7) - 동영상 캡처 다이내믹 레인지, 프레임 속도, 미러 모드를 구성하기 위한 API를 추가합니다. 추가했습니다. (Ifb8f7)
OutputSize
를 지원 중단하고ResolutionSelector
로 바꿉니다.ResolutionSelector
는 해상도를 선택하는 더 포괄적인 방법이며 camera-core API와 일치합니다. 추가했습니다. (I93abd, b/286801438)
버그 수정
- 후면 카메라에서
ImageAnalysis
로 확장 프로그램 빛망울 효과 또는 얼굴 보정이 사용 설정된 경우 삼성 갤럭시 S23 Ultra 5G의 검은색 미리보기 문제가 해결되었습니다. 추가했습니다. (I2e8b1) - Moto E5 Play에서 미리보기 및
VideoCapture
늘어나는 문제를 수정했습니다. 추가했습니다. (73dce2)
버전 1.4.0-alpha01
2023년 9월 20일
androidx.camera:camera-*:1.4.0-alpha01
이 출시되었습니다. 버전 1.4.0-alpha01에 포함된 커밋을 확인하세요.
API 변경사항
- 녹음 중에 오디오 진폭 정보에 액세스하는 새 API를 추가합니다. 추가합니다. (Id4925)
버그 수정
- 초기화 및 초기화 해제 이벤트가 올바른 순서로 트리거되도록 하여 확장 프로그램 안정성을 개선합니다. 추가했습니다. (Ib3b8e)
- 내부적으로 추가 반복 표면을 추가하여 지원되는 표면 조합을 초과하여 발생하는 캡처 세션 구성 실패를 수정했습니다. 추가했습니다. (Id718c)
- Vivo S16 기기에서 캡처된 대용량 JPEG 이미지 문제를 해결했습니다. 캡처된 JPEG 이미지에는 JFIF 압축 데이터 세그먼트에 중복된 0 패딩 데이터가 포함되어 있습니다. 이로 인해 캡처된 이미지의 파일 크기가 커질 수 있습니다. 이러한 중복 0 패딩 데이터는 제거되어 캡처된 이미지가 일반 이미지 파일 크기가 되도록 합니다. 추가했습니다. (I79505, b/299069235)
- 일부 기기에서 일부 확장 프로그램 모드가 사용 설정되었을 때
ImageAnalysis
를ImageCapture
및 미리보기와 결합할 수 없는 문제를 수정했습니다. 수정은 앱이ExtensionsManager#isImageAnalysisSupported()
를 통해ImageAnalysis
사용 가능 여부를 쿼리할 때 올바른 값을 반환합니다. 추가했습니다. (I7d538) - 동작과 일치하도록 JavaDoc를 업데이트합니다. 즉시 완료되는 대신
#setZoomRatio
,#setLinearZoom
,#enableTorch
는 카메라가 준비될 때까지 대기합니다.#takePicture
API로 최대 FOV를 얻는 방법에 관한 정보도 추가했습니다. 추가했습니다. (I23588)
버전 1.3
버전 1.3.4
2024년 6월 12일
androidx.camera:camera-*:1.3.4
이 출시되었습니다. 버전 1.3.4에 포함된 커밋을 확인하세요.
버그 수정
- 확대/축소 비율을 적용할 때
getZoomRatio
가 감소한 값을 잘못 반환하는 문제를 해결했습니다. 추가했습니다. (I4aa0d, b/317543616) - 반복 요청 FPS/안정화 모드 값을 사용하지 않아 캡처 세션을 다시 만들고 일부 기기에서 지연 시간 문제 또는 미리보기 정지를 일으킬 수 있는 스틸 캡처/탭하여 초점 맞추기를 수정했습니다. 추가했습니다. (I7dc0b)
FRAME_RATE_RANGE_UNSPECIFIED
로setTargetFrameRate
를 호출할 때 프레임 속도가 더 낮은 값으로 설정되는 문제를 수정했습니다. 추가했습니다. (I78c61)
버전 1.3.3
2024년 4월 17일
androidx.camera:camera-*:1.3.3
이 출시되었습니다. 버전 1.3.3에 포함된 커밋을 확인하세요.
버그 수정
ImageAnalysis
' 수정됨 분석기 기본 타겟 해상도 설정과 관련된 해상도 선택 문제: 애플리케이션이 분석기 기본 해상도 설정을 다르게 설정한 경우에도 타겟 해상도가 640x480으로 잘못 유지되었습니다. 애플리케이션에 이 문제 (1.3.0~1.3.2)가 발생하고 솔루션이 포함된 최신 버전 출시를 사용하도록 업그레이드할 수 없는 경우 선호하는 해상도로ResolutionSelector
를 직접 설정하고ImageAnalysis
UseCase와 일치하는AspectRatioStrategy
를 설정하면 이 문제를 해결할 수 있습니다. 추가했습니다. (I81f72, b/330091012)
버전 1.3.2
2024년 3월 6일
androidx.camera:camera-*:1.3.2
이 출시되었습니다. 버전 1.3.2에 포함된 커밋을 확인하세요.
버그 수정
- 삼성 A24 기기에서의 JPEG 메타데이터 문제가 해결되었습니다. 이제 CameraX가 이미지를 정확하게 저장하고
ImageProxy.toBitmap()
함수가 올바른 비트맵 객체를 반환합니다. 추가했습니다. (I8d6eb, b/309005680) - 문제로 인해 Redmi Note 9 Pro 기기에서 9280x6944 해상도 옵션이 삭제되었습니다. 추가했습니다. (Ia23da)
버전 1.3.1
2023년 12월 13일
androidx.camera:camera-*:1.3.1
이 출시되었습니다. 버전 1.3.1에 포함된 커밋을 확인하세요.
버그 수정
ProcessCameraProvider#bindToLifecycle()
성능이 개선되었습니다. 주요 변경사항은 UseCases
에 가장 적합한 크기 조합을 식별하는 프로세스를 최적화하는 것입니다. 최적의 결과는 특정 UseCase
조합과 대상 기기에 지원되는 출력 크기 수에 따라 달라집니다. 추가했습니다. (I454f2)
다음은 다양한 시나리오에 관한 참조 결과입니다.
4개의
UseCases
:Preview
+ImageCapture
+ImageAnalysis
+VideoCapture
- Google Pixel 7: 약 430ms~60ms
- 삼성 갤럭시 S23 Ultra: 약 540ms~45ms
- 삼성 A53 5G: 약 115ms~70ms
UseCases
3개:Preview
+ImageCapture
+ImageAnalysis
- Google Pixel 7: 약 9ms~7ms
- 삼성 갤럭시 S23 Ultra: 약 6ms~5ms
- 삼성 A53 5G: 약 32ms~12ms
CameraUseInconsistentTimebaseQuirk
에 Snapdragon 480을 추가했습니다. 이는 기기가 정지 상태인 시간만큼 녹음 파일의 오디오가 상쇄되는 이 칩셋을 사용하는 기기의 Android 12 문제를 해결합니다. 추가했습니다. (I58010)
버전 1.3.0
2023년 10월 18일
androidx.camera:camera-*:1.3.0
이 출시되었습니다. 버전 1.3.0에 포함된 커밋을 확인하세요.
1.2.0 이후 중요 변경사항
- 10비트 HDR, 자르기, 미러링/비미러, 음소거/음소거 해제, 프레임 속도 설정 등의 동영상 기능을 제공합니다.
- 듀얼 동시 카메라
- 효과 라이브러리
- 해상도 선택기
- 울트라와이드 및 망원경 카메라 선택
- 동영상 녹화 중 카메라 전환 (실험용 기능)
버전 1.3.0-rc02
2023년 9월 20일
androidx.camera:camera-*:1.3.0-rc02
이 출시되었습니다. 버전 1.3.0-rc02에 포함된 커밋을 확인하세요.
버그 수정
- 초기화 및 초기화 해제 이벤트가 올바른 순서로 트리거되도록 하여 확장 프로그램 안정성을 개선합니다. 따라서 확장 프로그램 모드를 전환하거나 카메라를 전환할 때 발생하는 검은색 미리보기 문제가 해결되었습니다. (Iddaac 참조)
- 일부 기기에서 일부 확장 프로그램 모드가 사용 설정되었을 때
ImageAnalysis
를ImageCapture
및 미리보기와 결합할 수 없는 문제를 수정했습니다. 수정은 앱이ExtensionsManager#isImageAnalysisSupported()
를 통해ImageAnalysis
사용 가능 여부를 쿼리할 때 올바른 값을 반환합니다. 추가했습니다. (I7d538) - Xiaomi Poco X3 NFC에서 미러링 모드를 사용 설정한 경우 녹화된 동영상의 오디오와 동영상이 동기화되지 않는 문제가 해결되었습니다. 추가했습니다. (I20b4c)
버전 1.3.0-rc01
2023년 8월 23일
androidx.camera:camera-*:1.3.0-rc01
이 출시되었습니다. 버전 1.3.0-rc01에 포함된 커밋을 확인하세요.
API 변경사항
- 녹음기가 연결된
VideoCapture
가 리바인드되는 동안 녹음 파일이 계속 녹음될 수 있도록PendingRecording.asPersistentRecording
를 추가했습니다. 추가했습니다. (I517c6)
버그 수정
- 스트림을
VideoCapture
및 미리보기 모두와 공유할 때 발생하는 비정상 종료 문제를 해결했습니다. 스트림 공유가 사용 설정된 경우 레거시 기기에서 검은색 화면이 표시되던 문제도 수정되었습니다. - 삼성 S7 (SM-G930T, SM-G930V) 시리즈 기기에서 대용량 캡처된 JPEG 이미지 문제가 해결되었습니다. 캡처된 JPEG 이미지에는 JFIF 압축 데이터 세그먼트에 중복된 0 패딩 데이터가 포함되어 있습니다. 이로 인해 캡처된 이미지의 파일 크기가 커질 수 있습니다. 이러한 중복 0 패딩 데이터는 제거되어 캡처된 이미지가 일반 이미지 파일 크기가 되도록 합니다. 추가했습니다. (I407b0, b/288828159)
- 삼성 S22 (SM-S901B, SM-S901B/DS) 및 S22+ (SM-S906B) 시리즈 기기에서 대용량 캡처된 JPEG 이미지 문제가 수정되었습니다. 캡처된 JPEG 이미지에는 JFIF 압축 데이터 세그먼트에 중복된 0 패딩 데이터가 포함되어 있습니다. 이로 인해 S22 SM-S901B/DS 기기에서 캡처된 이미지의 파일 크기가 약 13MB가 됩니다. 이러한 중복 0 패딩 데이터는 제거되어 캡처된 이미지가 일반 이미지 파일 크기가 되도록 합니다. 추가했습니다. (I73be9, b/288828159)
- 삼성 A5, A52, A70, A72 시리즈 기기에서 큰 크기로 캡처된 JPEG 이미지 문제가 해결되었습니다. 캡처된 JPEG 이미지에는 JFIF 압축 데이터 세그먼트에 중복된 0 패딩 데이터가 포함되어 있습니다. 이로 인해 캡처된 이미지의 파일 크기가 매우 커집니다 (예: 약 32MB 또는 96MB). 이러한 중복 0 패딩 데이터는 제거되어 캡처된 이미지가 일반 이미지 파일 크기가 되도록 합니다. 추가했습니다. (I97c4d, b/288828159)
- 확장 프로그램을 사용 설정한 상태에서 사진을 찍을 때 발생하는 네이티브 충돌 문제를 수정했습니다. (I698f5)
버전 1.3.0-beta02
2023년 7월 26일
androidx.camera:camera-*:1.3.0-beta02
이 출시되었습니다. 버전 1.3.0-beta02에 포함된 커밋을 확인하세요.
버그 수정
- Pixel 4 및 5 변형에서 토치를 플래시로 사용하여 어두운 곳에서 캡처 품질을 개선합니다. (I56ff5, b/280221967)
- 삼성 A5 (2017) 시리즈 기기에서 캡처된 대용량 JPEG 이미지 문제가 해결되었습니다. 캡처된 JPEG 이미지에는 JFIF 압축 데이터 세그먼트에 중복된 0 패딩 데이터가 포함되어 있습니다. 이로 인해 캡처된 이미지의 파일 크기가 약 32MB가 됩니다. 이러한 중복 0 패딩 데이터는 제거되어 캡처된 이미지가 일반 이미지 파일 크기가 되도록 합니다. 추가했습니다. (I29837, b/288828159)
CaptureFailedRetryQuirk
에 언급된 문제가 있는 기기에서 캡처가 실패할 경우 재시도가 제대로 트리거되지 않는 문제를 수정했습니다. 추가했습니다. (I7b589)
버전 1.3.0-beta01
2023년 6월 21일
androidx.camera:camera-*:1.3.0-beta01
이 출시되었습니다. 버전 1.3.0-beta01에 포함된 커밋을 확인하세요.
API 변경사항
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)
함수 이름을setAllowedResolutionMode
로 바꾸고ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
상수의 이름을PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION
/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
로 바꾸었습니다. (If84e8)- 지원 중단된 API
ImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
,VideoCapture.setTargetRotationDegrees(int)
를 삭제했습니다. 추가했습니다. (Id8e77) DynamicRange
클래스는 이미지의 동적 범위를 나타냅니다.VideoCapture
부터VideoCapture.Builder#setDynamicRange()
까지의 출력으로 HDR(High Dynamic Range) 형식을 선택하는 데 사용할 수 있습니다. 추가했습니다. (Ib0377)- 확장 프로그램이 사용 설정되었을 때 앱이 미리보기 및
ImageCapture
과 함께ImageAnalysis
사용 사례를 결합할 수 있는지 확인할 수 있는isImageAnalysisSupported
API를ExtensionsManager
에 추가했습니다. 추가했습니다. (I1bc63) Recorder
에서 가져온 새로운VideoCapabilities
클래스를 사용하여 기기의 동영상 녹화에 지원되는 다이내믹 레인지와 품질을 쿼리할 수 있습니다.QualitySelector
의getSupportedQualities()
및isQualitySupported()
메서드가 지원 중단됩니다. 대신VideoCapabilities
의getSupportedQualities()
및isQualitySupported()
메서드를 사용하세요. 추가했습니다. (I04014)CameraController#setVideoCaptureTargetQuality()
는setVideoCaptureQualitySelector
로 이름이 바뀌고 인수QualitySelector
를 사용합니다. 이 인수는 동영상 화질 설정을 더 유연하게 설정할 수 있게 해줍니다. 이에 따라CameraController#getVideoCaptureTargetQuality()
가getVideoCaptureQualitySelector
로 변경됩니다. 추가했습니다. (I520ed)- 동영상 기능의 실험용 주석을 삭제했습니다. 이제 동영상 기능이 안정적으로 작동합니다. 추가했습니다. (I1a113)
버그 수정
- 삼성 SM-A320 모델에서 토치를 플래시로 사용하여 어두운 곳에서 속도와 캡처된 이미지 품질을 개선합니다. 추가했습니다. (I6a022, b/286190938)
ImageProxy.toBitmap()
의ImageFormat.JPEG
형식 지원을 추가합니다. JPEG 바이트 배열을 디코딩할 수 없으면UnsupportedOperationException
이 발생합니다. 추가했습니다. (I81958, b/282057603)
버전 1.3.0-alpha07
2023년 5월 24일
androidx.camera:camera-*:1.3.0-alpha07
이 출시되었습니다. 버전 1.3.0-alpha07에 포함된 커밋을 확인하세요.
새로운 기능
- 새로운
VideoCapture.Builder# setTargetFrameRate(Range)
API를 사용하면 기기 기본값 이외의 다른 프레임 속도로 동영상 녹화를 캡처할 수 있습니다. 녹화에 사용 가능한 프레임 속도는 새CameraInfo#getSupportedFrameRates()
API를 통해 쿼리할 수 있습니다.
API 변경사항
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
상수의 이름을ALLOWED_RESOLUTIONS_NORMAL
/SLOW
로 바꾸고 빌더setHighResolutionEnabledFlag
함수 이름을setAllowedResolutionMode
로 바꿨습니다. 추가했습니다. (Iae817)- 이제
CameraInfo#getSupportedFrameRateRanges()
는 범위가 정렬되지 않았음을 더 잘 나타내기 위해List
대신Set
를 반환합니다. 추가했습니다. (I02f43) CameraEffect
에 오류 리스너를 추가하여 복구할 수 없는 오류를 처리합니다. (Ice471)- 테스트 가능성을 높이기 위해
ResolutionInfo
에 공개 생성자를 추가합니다. (If6d1c) setTargetRotationDegrees
사용을 대체하고 APIImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
,VideoCapture.setTargetRotationDegrees(int)
를 지원 중단하는 APIUseCase.snapToSurfaceRotation(int)
를 제공했습니다. 추가했습니다. (Ia9010)- 미리보기 사용 사례의 타겟 프레임 속도를 설정하고 가져올 수 있도록 새로운 API
Preview#getTargetFrameRate
및Preview.Builder#setTargetFrameRate
를 추가했습니다. (If4f22) - 가비지 컬렉션으로 인해
Recording
객체가 중지되면 이제VideoRecordEvent.Finalize
가ERROR_RECORDING_GARBAGE_COLLECTED
오류 코드와 함께 완료됩니다. 추가합니다. (Iba974)
버그 수정
StreamConfigurationMapCompat
의 캐시된 출력 크기가 null일 때 발생하는NullPointerException
을 수정했습니다. 추가했습니다. (Idf124, b/282025204)Preview.setSurfaceProvider(null)
가 확장 프로그램에서 미리보기를 일시중지하지 않는 문제를 수정했습니다. (Ia903e)VideoCapture
가 바인딩된 경우 카메라를 여는 동안ConcurrentModificationException
이 발생하는 문제를 수정했습니다. 추가했습니다. (Ic8ac4)
버전 1.3.0-alpha06
2023년 4월 19일
androidx.camera:camera-*:1.3.0-alpha06
이 출시되었습니다. 버전 1.3.0-alpha06에 포함된 커밋을 확인하세요.
새로운 기능
- 동시 카메라는 Android 11에서 도입된 새로운 기능으로, 카메라 기기의 동시 스트리밍을 지원합니다. 예를 들어 기기에서 전면 카메라와 후면 카메라를 모두 동시에 작동할 수 있습니다. CameraX는 현재 듀얼 동시 카메라만 지원하므로 2대의 카메라가 동시에 작동하며 각 카메라당 최대 2개의 {@link UseCase}를 바인딩할 수 있습니다. 최대 해상도는 720p 또는 1440p입니다. 자세한 내용은 다음 링크를 참고하세요. CameraManager#getConcurrentCameraIds()를 참고하세요.
- 다음 기능을 다루는 새로운
ResolutionSelector
API를 소개합니다. <ph type="x-smartling-placeholder">- </ph>
- 애플리케이션은 가로세로 비율과 해상도 전략을 지정하여 필요에 가장 적합한 해상도를 선택할 수 있습니다.
- 모든 크기와 가로세로 비율 매개변수는 카메라 기기 센서의 좌표로 표현됩니다.
- 애플리케이션은 맞춤 해상도 필터를 구현하여 지원되는 크기를 원하는 순서로 정렬할 수 있습니다.
- 또한 애플리케이션은 고해상도 캡처를 사용하여 더 높은 해상도의 이미지를 얻을 수도 있습니다. 단, 고해상도를 사용하면 캡처 시간이 느려질 수 있습니다.
VideoCapture
미러링 API를 추가했습니다.VideoCapture
님이 녹화한 동영상은 기본적으로 미러링되지 않습니다. 하지만 카메라 미리보기는 기본적으로 전면 카메라에 미러링됩니다.VideoCapture
mirroring API를 사용하면 전면 카메라를 사용할 때 카메라 미리보기에 정렬할 수 있습니다.MirrorMode
,OFF
,ON
,ON_FRONT_ONLY
세 개가 있습니다. 카메라 미리보기에 맞추려면ON_FRONT_ONLY
를 사용하는 것이 좋습니다. 즉, 미러링이 후면 카메라에는 사용 설정되지 않지만 전면 카메라에는 사용 설정되어 있습니다.
API 변경사항
- 새
ResolutionSelector
API를 노출했습니다. 애플리케이션은 대체 규칙 또는 맞춤 해상도 필터를 사용하여 가로세로 비율과 해상도 전략을 지정하여 원하는 결과를 얻을 수 있습니다. 애플리케이션은 플래그를 지정하여 고해상도 캡처를 사용 설정할 수 있습니다. 이렇게 하면 사진이나 동영상을 촬영할 때 CameraX가 더 높은 해상도를 선택할 수 있습니다. 단, 고해상도를 사용하면 캡처 시간이 느려질 수 있습니다. 추가했습니다. (Ibed95) - 이제 AE 알고리즘에서 지원하는 FPS 범위를
CameraInfo#getSupportedFrameRateRanges()
를 통해 쿼리할 수 있습니다. 추가했습니다. (Iaa67f) - 모든 프레임 속도 메서드의 이름을 'FrameRate'를 사용하도록 통합합니다.
VideoCapture#getTargetFrameRate()
에서 javadoc 실수를 수정했습니다. (I83304) - 기존
setTargetAspectRatio
및setTargetResolution
API를 지원 중단했습니다. 대신 새ResolutionSelector
API를 사용하세요. 추가했습니다. (I542c3) - 다음을 포함한 동시 듀얼 카메라용 공개 API를 추가했습니다.
<ph type="x-smartling-placeholder">
- </ph>
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
boolean isConcurrentCameraModeOn()
및ConcurrentCameraConfig
,SingleCameraConfig
,ConcurrentCamera
(Iab1c1)
ImageProcessor.Response#getOutputImage
을 NonNull로 만듭니다. (Ib9c60)VideoCapture.Builder.setMirrorMode(int)
및VideoCapture.getMirrorMode()
를 비롯한VideoCapture
미러링 API를 추가했습니다. 이 API는 동영상 녹화가 일반적인 카메라 미리보기 동작과 일치해야 하는 애플리케이션에 유용합니다. 즉, 후면 카메라 미리보기는 미러링되지 않지만 전면 카메라 미리보기는 미러링됩니다. 추가했습니다. (I713b6, b/194634656)VideoCapture.Builder
에setTargetFrameRate()
API를 추가하고VideoCapture
에getTargetFramerate()
API를 추가합니다. (I109d4)SurfaceOutput
를 Closable 확장으로 만들고 SurfaceOutput.Event
의 공개 생성자를 숨깁니다. 추가했습니다. (I60ea8)- 처리 중인 녹음을 동적으로 음소거하거나 음소거 해제하는
Recording.mute
를 추가했습니다. 처리 중인 녹음 파일이 명시적으로 음소거되면RecordingStats
에AudioStats.AUDIO_STATE_MUTED
가 포함됩니다. 추가했습니다. (Ie17fc) #setEffects()
매개변수를 null이 아닌 값으로 설정했습니다. 효과를 지우는#clearEffects()
API를 추가합니다. 앱은#clearEffects()
를 호출하여 효과를 삭제해야 합니다. 추가했습니다. (I4b4d9)- 복사 생성자용 빌더를 사용할
ViewfinderSurfaceRequest.Builder
의 두 번째 생성자를 추가합니다. (I621a7)
버그 수정
- 카메라를 닫을 때 Extensions API를 호출하는 앱이 비정상 종료되는 문제를 수정했습니다. (Ib27e5)
- 일부 기기에서
VideoCapture
가 전면 카메라와 호환되지 않는 문제가 해결되었습니다. 예: 삼성 Galaxy S23 및 Xiaomi 2107113SG 추가했습니다. (Ibec7e, b/270656244) - Android 10 이상에서 외부 저장소 공용 폴더의 파일을 사용하여 사진을 찍을 때 항상 실패하는 문제를 수정했습니다. Android 10에서는 외부 저장소 공용 폴더에 있는 파일을 사용하여 사진을 촬영할 때에도 애플리케이션 태그에서
requestLegacyExternalStorage
를 true로 설정해야 합니다. 추가했습니다. (I11b2c) DefaultSurfaceProcessor
에서RejectedExecutionException
비정상 종료 문제를 해결했습니다.VideoCapture
가 바인딩되고 활동이 일시중지되면 비정상 종료가 발생할 수 있습니다. 추가했습니다. (Idb46a, b/273713906)
버전 1.3.0-alpha05
2023년 3월 22일
androidx.camera:camera-*:1.3.0-alpha05
이 출시되었습니다. 버전 1.3.0-alpha05에 포함된 커밋을 확인하세요.
API 변경사항
VideoCapture.Builder.setTargetRotation(int)
,VideoCapture.setTargetRotation(int)
,VideoCapture.setTargetRotationDegrees(int)
,VideoCapture.getTargetRotation()
를 포함한VideoCapture
회전 API를 추가했습니다. API는 기기 방향을 잠그는 애플리케이션에 유용합니다.ImageCapture.setTargetRotationDegrees(int)
및ImageAnalysis.setTargetRotationDegrees(int)
도 추가됩니다. 추가했습니다. (Id3ffe, b/205242781)VIDEO_CAPTURE
및PREVIEW|VIDEO_CAPTURE
를 효과 타겟으로 허용합니다.VIDEO_CAPTURE
을(를) 타겟팅하는 효과가VideoCapture
사용 사례에 적용됩니다.PREVIEW|VIDEO_CAPTURE
을(를) 타겟팅하는 효과는 미리보기 및VideoCapture
스트림으로 복사하기 전에 공유 스트림에 적용됩니다. 추가했습니다. (Iee6f3)
버그 수정
- 카메라
1.2.2
에서: Pixel과 같은 일부 기기에서 proguard를 사용 설정하면 CameraX 확장 프로그램이 제대로 작동하지 않는 문제를 수정했습니다. (I90aa2) - 앱이 화면 방향을 자체적으로 처리하는 경우 발생하던
PreviewView
버그를 수정했습니다. 회전 시 미리보기가 왜곡될 수 있습니다. 이 문제는 특정 기기에서만 발생합니다. Pixel a4, Pixel 5, Pixel 6a에서 재현할 수 있습니다. 추가했습니다. (I14340, b/223488673)
버전 1.3.0-alpha04
2023년 2월 22일
androidx.camera:camera-*:1.3.0-alpha04
가 출시되었습니다. 버전 1.3.0-alpha04에 포함된 커밋을 확인하세요.
새로운 기능
한 스트림을 여러 UseCases에 공유하여 이전에 지원되지 않았던 Surface 조합을 지원하는 새로운 기능입니다.
- 이전에는 카메라 하드웨어 수준 FULL 이하에서 'Preview, VideoCapture, ImageAnalysis'를 결합하거나 하드웨어 수준 LEGACY에서 'Preview, VideoCapture, ImageCapture'를 결합하면 CameraX에서
IllegalArgumentException
이 발생했습니다. - 이제는 결합을 하더라도 예외가 발생하지 않습니다. 대신 CameraX는 OpenGL을 사용하여 공유 스트림을 Preview 및 VideoCapture에 모두 복사합니다.
- 버퍼 사본의 비용으로 인해 앱의 지연 시간과 전력 소비가 늘어날 수 있습니다.
API 변경사항
ImageProxy
를Bitmap
으로 변환하는 API를 추가했습니다. 지원되는ImageProxy
형식은ImageFormat.YUV_420_888
및PixelFormat.RGBA_8888
입니다. 형식이 잘못된 경우IllegalArgumentException
이 발생합니다. (Ic7110)- Kotlin에서 정지 함수를 사용하여 뷰파인더 구성을 지원하도록
CoroutineCameraViewfinder
를 추가했습니다. (I657bc) ViewfinderSurfaceRequest
의 새 공개 생성자를 추가했습니다. 이는 사용자가CameraCharacteristics
를 제공할 수 없는 경우 유연성을 제공합니다. (Ie6549)
버그 수정
- 앱을 너무 빠르게 일시중지/재개할 때 일부 삼성 기기에서 발생하는 확장 프로그램 비정상 종료 문제를 수정했습니다. (Iaca26)
버전 1.3.0-alpha03
2023년 1월 25일
androidx.camera:camera-*:1.3.0-alpha03
이 출시되었습니다. 버전 1.3.0-alpha03에 포함된 커밋을 확인하세요.
API 변경사항
- 기본 카메라를 기준으로 한 시야각 정보를 제공하도록
CameraInfo.getIntrinsicZoomRatio
를 추가했습니다. (Ib300c) CameraInfo.getLensFacing
을 추가하여 렌즈의 방향 정보를 제공합니다. 외장 카메라 선택을 위한 실험용 기능으로CameraSelector#LENS_FACING_EXTERNAL
을 추가했습니다. (Icaf3e)- 카메라 출력에 효과를 추가할 수 있도록
#setEffect()
를CameraController
에 추가합니다. (I1d21f) SurfaceRequest
에invalidate()
메서드를 추가합니다. 노출 영역 제공자는 이전에 제공된 노출 영역이 더 이상 유효하지 않다고 알릴 수 있습니다. (Idc649)ImageProcessor
API를 추가합니다. 이 인터페이스는 후처리 효과를ImageCapture
파이프라인에 삽입하기 위한 것입니다. (I575c6)QualitySelector
와 결합하여 더 많은 동영상 해상도를 지원할 수 있는Recorder.Builder.setAspectRatio()
API를 추가했습니다. (I8a082)- 타겟 동영상 인코딩
BitRate
를 설정하는Recorder.Builder#setTargetVideoEncodingBitRate
와 타겟 동영상 인코딩 비트 전송률을 가져오는Recorder#getTargetVideoEncodingBitRate
를 추가했습니다. (I5984d)
버그 수정
- 플래시 장치가 없는데 플래시 모드가 켜져 있을 때
ImageCapture
가 실패하는 문제를 해결했습니다. (I9e8b4, b/263391112) - Exif 위치 데이터를 기록할 때 일부 삼성 Android 12 기기에서 JPEG 이미지 손상이 발생하는 문제를 해결했습니다. (Ib7086, b/263747161, b/263289024)
- 카메라 초기화를 완료하기 전에 토치/확대/축소를 설정하면(예:
CameraController#enableTorch
호출) 대기 중인 작업이 캐시되고 초기화가 완료된 후에 실행됩니다. (I11e92, b/264157663)
버전 1.3.0-alpha02
2022년 12월 7일
androidx.camera:camera-*:1.3.0-alpha02
가 출시되었습니다. 버전 1.3.0-alpha02에 포함된 커밋을 확인하세요.
API 변경사항
- 미리보기 출력에 후처리 효과를 적용하는 새 API를 추가합니다. (Ic17d5)
OutputOptions.getDurationLimit
의 이름이OutputOptions.getDurationLimitMillis
로,OutputOptions.setDurationLimit
의 이름이OutputOptions.setDurationLimitMillis
로 변경되었습니다. (I91f0c)- 동영상을 녹화하는 동안 오디오 관련 설정을 처리하기 위한
AudioConfig
클래스를 추가합니다. 오디오가 필요하지 않은 경우 불필요한 권한 요청을 방지하기 위해@RequiresPermission
주석이startRecording
함수에서AudioConfig
로 이동됩니다. (I28755) - 새 동영상 캡처 API를 적용한 후 더 이상 사용되지 않는 메타데이터,
OnVideoSavedCallback
,OutputFileOptions
,OutputFileResults
클래스를 삭제합니다. (I38cd8) - 새 동영상 캡처 API를 적용합니다.
setTargetResolution
이 더 이상 지원되지 않으므로 그에 따라getVideoCaptureTargetSize
및setVideoCaptureTargetSize
메서드가getVideoCaptureTargetQuality
및setVideoCaptureTargetQuality
메서드로 대체됩니다. (I2a1d5)
버그 수정
- 지원 중단된
core.VideoCapture
API를 삭제합니다. (I531e0) - 저장소 권한 없이 사진을 찍을 때
onError
콜백이 호출되지 않는 문제를 해결했습니다. (I936db, b/244807669) - 카메라 확장 프로그램의 품질과 안정성을 개선합니다. 빛망울 효과 지원, 이미지 캡처 및 미리보기가 재개되지 않는 문제로 인해 카메라 확장 프로그램 v1.1.0 이하를 사용하는 Motorola 기기에서는 카메라 확장 프로그램이 사용 중지됩니다. (Id3ce3)
- 기존 기기에서
ViewPort
를 통한 동영상 자르기를 사용 설정할 때 발생하는 네이티브 충돌이 해결되었습니다. (I16b8a, b/251357665)
버전 1.3.0-alpha01
2022년 11월 9일
androidx.camera:camera-*:1.3.0-alpha01
이 출시되었습니다. 버전 1.3.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
Camera-viewfinder
가 공식적으로 게시되었습니다.Camera-viewfinder
는 Camera2의 카메라 피드를 표시할 수 있는 기본 뷰파인더 위젯을 제공합니다. 샘플 코드에서 예를 확인하세요.
API 변경사항
- 동영상 재생 시간 제한을 설정할 수 있도록
OutputOptions.setDurationLimit
를 추가했습니다. 지정된 재생 시간 제한을 초과하면 녹화가 자동으로 완료됩니다. (I902a0) - 동영상 녹화 오디오 오류 상태(
AudioStats.AUDIO_STATE_SOURCE_ERROR
)를 추가했습니다. 오디오 소스 설정에 실패하거나 오류가 발생하면 전송됩니다. (I37410)
버그 수정
- quirk를 추가하여 문제가 있는 기기에서 캡처 실패가 발생할 때 캡처를 다시 한번 시도할 수 있습니다. (Id4795)
ViewPager2
에서PreviewView
SurfaceView
구현 검은색 화면 문제를 수정했습니다. 수정 과정에서PreviewView
는 요청된 해상도가 변경되지 않는 경우SurfaceView
를 재사용합니다. (Ib3f27)ViewPort
또는CameraController
API 사용 시 동영상 자르기(WYSIWYG 기능)를 지원합니다. (Ifbba8, b/201085351)- Huawei P40 lite에서 전면 카메라로 캡처한 동영상이 녹화되지 않는 문제를 수정했습니다. (I87c57, b/250807400)
버전 1.2
버전 1.2.3
2023년 5월 24일
androidx.camera:camera-*:1.2.3
이 출시되었습니다. 버전 1.2.3에 포함된 커밋을 확인하세요.
버그 수정
- 일부 기기에서
VideoCapture
가 전면 카메라와 호환되지 않는 문제가 해결되었습니다. 예: 삼성 Galaxy S23 및 Xiaomi 2107113SG 추가했습니다. (Ibec7e, b/270656244)
버전 1.2.2
2023년 3월 22일
androidx.camera:camera-*:1.2.2
이 출시되었습니다. 버전 1.2.2에 포함된 커밋을 확인하세요.
버그 수정
- Pixel과 같은 일부 기기에서 proguard를 사용 설정하면 CameraX 확장 프로그램이 올바르게 작동하지 않는 문제를 수정했습니다. (I90aa2)
버전 1.2.1
2023년 1월 25일
androidx.camera:camera-*:1.2.1
이 출시되었습니다. 버전 1.2.1에 포함된 커밋을 확인하세요.
버그 수정
- Exif 위치 데이터를 기록할 때 일부 삼성 Android 12 기기에서 JPEG 이미지 손상이 발생하는 문제를 해결했습니다. (b/263289024)
버전 1.2.0
2022년 12월 7일
androidx.camera:camera-*:1.2.0
이 출시되었습니다. 버전 1.2.0에 포함된 커밋을 확인하세요.
1.1.0 이후 중요 변경사항
- 새 라이브러리 camera-mlkit-vision. CameraX는 바코드 스캔, 얼굴 인식, 텍스트 감지 등 여러 MLKit 기능과 쉽게 통합됩니다.
MLKitAnalyzer
가 새 API로 추가되었습니다. - 새로운 실험용 Zero-Shutter Lag API. 우수한 이미지 품질을 유지하면서도 지연 시간을 단축하도록 캡처 파이프라인을 최적화합니다. 캡처 모드가
CAPTURE_MODE_ZERO_SHUTTER_LAG
로 설정되면 다른 캡처 모드와 비교했을 때 촬영 버튼 클릭과 사진 촬영 사이의 지연 시간이 최소화됩니다.ZERO_SHUTTER_LAG
를 지원하지 않는 기기에서는CAPTURE_MODE_MINIMIZE_LATENCY
로 대체됩니다. android.camera.core.VideoCapture
가 지원 중단되었습니다.setStreamUseCase()
를 공개Camera2Interop
API로 추가했습니다.setOutputImageRotationEnabled
에 관한 API 수준 요구사항을 추가했습니다.ImageAnalysis.Analyzer#getTargetResolutionOverride()
에서ImageAnalysis.Analyzer#getDefaultTargetResolution()
으로 이름이 변경되었습니다.- 저장된 동영상에 위치 메타데이터를 설정하는 API를 추가했습니다.
- 16:9 가로세로 비율로
VideoCapture
및 미리보기 사용 사례를 사용할 때 발생하는 낮은 프레임 속도를 수정했습니다. - 일부 삼성 기기에서 빛망울 효과 확장 프로그램을 사용 설정하고 사용자가 카메라를 전환할 때 미리보기 화면이 검은색이 되는 문제를 수정했습니다.
- API 수준 27 기기에서 삼성 J7 Prime(SM-G610M) 및 J7(SM-J710MN)
Preview/VideoCapture
가 늘어나는 문제를 수정했습니다. - 이 문제는 해결되었으므로 삼성 Android T에서 전면 카메라의 AF 영역을 가로로 뒤집는 해결 방법을 사용 중지했습니다.
버전 1.2.0-rc01
2022년 10월 24일
androidx.camera:camera-*:1.2.0-rc01
이 출시되었습니다. 버전 1.2.0-rc01에 포함된 커밋을 확인하세요.
API 변경사항
OutputConfiguration
용setStreamUseCase
API를 추가합니다. 사용자는 스트림 세션의 스트림 사용 사례를 지정할 수 있으므로 스트림 사용 사례를 선택하도록 CameraX의 내부 로직을 재정의해 필요에 따라 최적화할 수 있습니다. (Ib1a95)
버그 수정
- API 수준 27 기기에서 삼성 J7 Prime(SM-G610M) 및 J7(SM-J710MN)
Preview/VideoCapture
가 늘어나는 문제를 수정했습니다. 1920x1080 해상도에서는Preview/VideoCapture
이미지가 늘어납니다. 이미지가 늘어나는 문제를 방지하기 위해 미리보기 또는VideoCapture
에 1920x1080 해상도를 선택하지 않는 해결 방법을 추가했습니다. (I0e04e) - 일부 화웨이 기기에서 16:9 가로세로 비율로
VideoCapture
및 미리보기 사용 사례를 사용할 때 발생하는 낮은 프레임 속도를 수정했습니다. (If8c88, b/223643510) - 미리보기의
SurfaceProvider
가 설정되지 않은 경우 카메라가 열리지 않는 문제를 해결했습니다. 수정의 일환으로 이제SurfaceProvider
가 설정되지 않은 미리보기는 카메라 캡처 세션에 구성되지 않습니다. (I99681)
버전 1.2.0-beta02
2022년 9월 21일
androidx.camera:camera-*:1.2.0-beta02
가 출시되었습니다. 버전 1.2.0-beta02에 포함된 커밋을 확인하세요.
API 변경사항
setOutputImageRotationEnabled
의 API 수준 요구사항을 추가합니다. (I26e3e, b/240993561)
버그 수정
- 이 문제는 해결되었으므로 삼성 Android T에서 전면 카메라의 AF 영역을 가로로 뒤집는 해결 방법을 사용 중지했습니다. (I05f69)
- 일부 삼성 기기에서
BOKEH
확장 프로그램을 사용 설정하고 사용자가 카메라를 전환할 때 미리보기 화면이 검은색이 되는 문제를 수정했습니다. (If6168)
버전 1.2.0-beta01
2022년 8월 24일
androidx.camera:camera-*:1.2.0-beta01
이 출시되었습니다. 버전 1.2.0-beta01에 포함된 커밋을 확인하세요.
새로운 기능
- 새 라이브러리
camera-mlkit-vision
. CameraX는 바코드 스캔, 얼굴 인식, 텍스트 감지 등 여러 MLKit 기능과 쉽게 통합됩니다. 여기에서 샘플 코드를 확인하세요. - 새로운 실험용 Zero-Shutter Lag API. 우수한 이미지 품질을 유지하면서도 지연 시간을 단축하도록 캡처 파이프라인을 최적화합니다. 캡처 모드가 CAPTURE_MODE_ZERO_SHUTTER_LAG로 설정되면 다른 캡처 모드와 비교했을 때 촬영 버튼 클릭과 사진 촬영 사이의 지연 시간이 최소화됩니다. ZERO_SHUTTER_LAG를 지원하지 않는 기기에서는 CAPTURE_MODE_MINIMIZE_LATENCY로 대체됩니다.
ImageAnalysis.Analyzer
및MLKitAnalyzer
를 공식 API로 만들었습니다.- 저장된 동영상에 위치 메타데이터를 설정하는 API를 노출했습니다.
ImageAnalysis.Analyzer#getTargetResolutionOverride()
의 이름을ImageAnalysis.Analyzer#getDefaultTargetResolution()
으로 바꿉니다.
버그 수정
- Alps k61v1_basic_ref 이미지 캡처 문제가 수정되었습니다. HAL에서 캡처한 JPEG 이미지에 잘못된 Exif 메타데이터가 있습니다. Exif 메타데이터에
ExifInterface
가 속성을 올바르게 파싱하도록 하는 0xffd9 또는 0xffda 태그가 없습니다. 이 문제를 해결하기 위해 이미지를 YUV 형식으로 캡처한 다음 JPEG 출력 이미지로 압축합니다. (I45abb)
버전 1.2.0-alpha04
2022년 7월 27일
androidx.camera:camera-*:1.2.0-alpha04
가 출시되었습니다. 버전 1.2.0-alpha04에 포함된 커밋을 확인하세요.
API 변경사항
ImageAnalysis.Analyzer#getTargetResolutionOverride()
의 이름을ImageAnalysis.Analyzer#getDefaultTargetResolution()
으로 바꿉니다. 이에 더해 이 메서드에서 반환하는 값이ImageAnalysis#setTargetResolution()
의 값으로 재정의될 수 있도록 동작이 변경되었습니다. (If1d36)- 저장된 동영상에 위치 메타데이터를 설정하는 API를 노출했습니다.
android.location.Location
객체는 새 APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location)
을 통해 설정할 수 있습니다. (I313a0, b/204197544)
버그 수정
- 바인딩 해제 미리보기로 사진을 찍을 때의 문제를 수정했습니다. (Ie70b6, b/235119898)
- 오디오 소스를 사용할 수 없을 때 녹화를 시도하면
Recorder
에서 비정상 종료되는 문제를 수정했습니다. (I9f652)
버전 1.2.0-alpha03
2022년 6월 29일
androidx.camera:camera-*:1.2.0-alpha03
이 출시되었습니다. 버전 1.2.0-alpha03에 포함된 커밋을 확인하세요.
API 변경사항
ImageAnalysis.Analyzer
및MLKitAnalyzer
의 실험용 주석이 삭제되었습니다. (I0ff22)
버그 수정
FocusMeteringAction
이 취소되지 않고 AF 부분이 기간에 수렴되지 않으면isFocusSuccessful
이 있는 AF 부분을 false로 완료하는 자동 초점 기본 시간 제한 5000ms를 추가했습니다. (Ibc2e3)- 바인딩 해제 미리보기로 사진을 찍을 때의 문제를 수정했습니다. (I1d3a2, b/235119898)
- 고급 확장 케이블 구현을 사용 설정하고 CameraX 지원 extensions-interface 버전을 1.2로 업데이트합니다. (I92256)
버전 1.2.0-alpha02
2022년 6월 1일
androidx.camera:camera-*:1.2.0-alpha02
가 출시되었습니다. 버전 1.2.0-alpha02에 포함된 커밋을 확인하세요.
새로운 기능
- CameraX Zero-Shutter Lag API를 실험용으로 노출합니다.
API 변경사항
ImageCapture
에 새 캡처 모드CAPTURE_MODE_ZERO_SHUTTER_LAG
를 추가하고CameraInfo
에isZslSupported
를 추가하여 기기 기능을 쿼리합니다.CAPTURE_MODE_ZERO_SHUTTER_LAG
모드는 인스턴트 캡처에 최소 지연 시간을 제공하는 것을 목표로 합니다. 이는 사용자가 사진을 찍으려고 버튼을 누를 때 나중에 재처리할 수 있도록 중간 캡처 결과를 캐시하는 링 버퍼를 기반으로 구현됩니다. {@link VideoCapture}가 바인딩되거나 플래시 모드가 사용 중지되어 있거나 OEM 확장 프로그램이 사용 설정되어 있으면 이 모드가 자동으로 사용 중지됩니다. (I9ae74)ImageAnalysis.getBackgroundExecutor()
메서드를 추가합니다. (Icc945)
버그 수정
- 보고된 기기에서
ImageCapture
takePicture 메서드가 토치를 사용 중지하는 문제를 수정했습니다. (Ib5eb5, b/228272227) CONTROL_ZOOM_RATIO_RANGE
특성을 가져올 때AssertionError
가 처리되지 않는 버그를 수정했습니다. (/Ia248a, b/231701345)
버전 1.2.0-alpha01
2022년 5월 18일
androidx.camera:camera-*:1.2.0-alpha01
이 출시되었습니다. 버전 1.2.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
- 새 라이브러리 camera-mlkit-vision이 출시되었습니다.
버그 수정
- 대체 전략이 사용 설정된 경우
QualitySelector
가 UHD 동영상을 녹화하지 못하는 문제가 해결되었습니다. 이 문제는VideoCapture
가 FULL 이상의 하드웨어 수준 카메라 기기에서ImageCapture
및 미리보기에 바인딩된 경우 발생합니다.QualitySelector
의 대체 전략으로 인해VideoCapture
가 FHD 해상도를 잘못 가져옵니다. 실제로 이 사용 사례 조합에서는 UHD 해상도가 지원되므로 이를 채택해야 합니다. (I0e788, b/230651237) ImageCapture.takePicture()
의NullPointerException
이 수정되었습니다. (I92366, b/230454568, b/229766155)androidx.camera.video.Recorder
의 비동기 일시중지 동작이 수정되었습니다. (Ia8ce8)
Camera-Camera2, Camera-Core, Camera-Lifecycle, Camera-Video 버전 1.1.0
버전 1.1.0
2022년 6월 29일
androidx.camera:camera-*:1.1.0
이 출시되었습니다. 버전 1.1.0에 포함된 커밋을 확인하세요.
1.0.0 이후 중요 변경사항
- 뷰 라이브러리, 확장 프로그램 라이브러리, 동영상 캡처 라이브러리가 첫 RC 버전으로 지정되었습니다. 1.1.0-beta01부터 모든 CameraX 라이브러리가 동일한 버전 번호를 정렬합니다. 이를 통해 개발자가 버전을 훨씬 더 쉽게 추적하고 대규모 버전 호환성 매트릭스의 복잡성을 줄일 수 있습니다.
- 다음을 포함한 새로운 공개 API 및 기능이 도입되었습니다.
- 동영상 캡처 사용 사례를 지원하기 위해 공식 카메라-동영상 라이브러리를 추가했습니다.
- YUV에서 RGB로의 변환 기능 및 회전 기능(
ImageAnalysis.Builder.setOutputImageRotationEnabled
및setOutputImageFormat
) - 다른 앱에 의해 카메라가 중단된 후 포커스가 다시 지정되면 카메라를 다시 사용하도록 CameraX 애플리케이션에 허용함으로써 멀티 윈도우 모드를 지원합니다.
- 일부 미리보기 문제를 해결하여 폴더블 기기에서 CameraX가 제대로 작동하도록 합니다.
- CameraInfo를 통해 노출될
CameraState
API를 추가했습니다. - 사용 가능한 카메라에 관한 정보를 직접 검색하는 API
ProcessCameraProvider.getAvailableCameraInfos()
를 추가했습니다. - 확장 프로그램이 사용 설정되면
ImageCapture#OnImageCapturedCallback
의 JPEG 형식을 출력합니다. - 애플리케이션이 현재 카메라에서 주어진
FocusMeteringAction
에 대한 지원 여부를 확인할 수 있는 APIisFocusMeteringSupported
를CameraInfo
에 추가했습니다. - 미리보기,
ImageCapture
,ImageAnalysis
의 해상도 정보를 제공하려고getResolutionInfo
API를 노출했습니다. - 사진을 찍을 때 출력 JPEG 이미지 압축 품질을 변경할 수 있도록 새로운 API인
ImageCapture.Builder#setJpegQuality
를 추가했습니다. CameraSelector
를 기준으로CameraInfos
목록을 필터링하도록CameraSelector#filter
를 공개 API에 추가했습니다.- 기존 캡처 요청 옵션을 지우기 위해
Camera2CameraControl.clearCaptureRequestOptions
를 추가했습니다. - 외부 이미지 처리 라이브러리(예: MLKit)와 함께
CameraController
를 사용하기 위한 실험용 API를 추가했습니다. - 카메라에 고유한
CameraSelector
를 반환하는 실험용 APICameraInfo#getCameraSelector()
를 추가했습니다. - 몇몇 실험용 API를 공식적인 공개 API로 승격했습니다.
- 실험용 API의 주석
@Experimental
을@RequiresOptIn
으로 바꿨습니다. 실험용 API를 호출하려면 지원 중단된 androidx.annotation.experimental.UseExperimental 대신 androidx.annotation.OptIn을 사용하세요. - 다음 실험용 API를 공식 API로 승격했습니다.
CameraXConfig.Builder#setAvailableCamerasLimiter()
,CameraXConfig.Builder#setMinimumLoggingLevel()
,CameraXconfig.Builder#setSchedulerHandler()
,CameraXConfig#getAvailableCamerasLimiter()
,CameraXConfig#getMinimumLoggingLevel()
,CameraXConfig#getCameraExecutor()
,CameraXConfig#getSchedulerHandler()
@ExperimentalCameraFilter
API- 실험용 노출 보정 API입니다.
- camera-core, camera-lifecycle, camera-video의 실험용
UseCaseGroup
를 승격했습니다. 표시 영역을 맞춤설정하는ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
,ViewPort.Builder#setScaleType
을 추가했습니다. ExperimentalUseCaseGroupLifecycle
을 공식적인 공개 API로 승격했습니다.- 기존 API의 변경사항
MediaStoreOutputOptions.getCollectionUri
에서Renamed MediaStoreOutputOptions.getCollection
로.- 상세 출력을 줄이기 위해
ActiveRecording
의 이름을 'Recording'으로 바꾸었습니다. QualitySelector
크리에이터 API를 목록 기반 API로 변경했습니다.
버그 수정
- 확장 프로그램 모드를 사용 설정하고
ImageCapture#CAPTURE_MODE_MAX_QUALITY
모드를 설정한 경우 발생하는YuvToJpegProcessor
EOFException
문제가 해결되었습니다. - 동영상 녹화가 종료되어 코덱 구성이 실패하는 문제가 해결되었습니다.
- FHD로 녹화할 때 확장되는 미리보기/동영상 가로세로 비율을 수정했습니다.
- 일부 기기에서 일시중지한 다음 다시 시작하면 오디오/동영상 싱크가 맞지 않는 문제가 해결되었습니다.
- 플래시 모드가 auto이거나 저조도 환경에서 always_on일 때 tap-to-focus(
startFocusAndMetering
) 중에 플래시가 트리거되는 문제를 수정했습니다.
버전 1.1.0-rc02
2022년 6월 1일
androidx.camera:camera-*:1.1.0-rc02
가 출시되었습니다. 버전 1.1.0-rc02에 포함된 커밋을 확인하세요.
버그 수정
ImageCapture.takePicture()
의NullPointerException
이 수정되었습니다. (I92366, b/230454568, b/229766155)CONTROL_ZOOM_RATIO_RANGE
특성을 가져올 때AssertionError
가 처리되지 않는 버그를 수정했습니다. (Ia248a, b/231701345)
버전 1.1.0-rc01
2022년 5월 11일
androidx.camera:camera-*:1.1.0-rc01
이 출시되었습니다. 버전 1.1.0-rc01에 포함된 커밋을 확인하세요.
새로운 기능
- camera-video, camera-view, camera-extension의 첫 번째 RC 버전이 출시되었습니다.
버그 수정
- API 21~22를 사용하는 기기에서
VideoCapture<Recorder>
가 바인딩되지 않을 때 동영상 코덱이 해제되지 않아 녹화 시VideoCapture<Recorder>
의 후속 사용이 실패하고MediaCodec.CodecException
이 발생하는 문제를 해결했습니다. (Ie7f68) CameraExtensionsActivity
의 캡처된 이미지가ImageCaptureTest
에서 삭제되지 않는 문제를 해결했습니다.
버전 1.1.0-beta03
2022년 4월 6일
androidx.camera:camera-*:1.1.0-beta03
이 출시되었습니다. 버전 1.1.0-beta03에 포함된 커밋을 확인하세요.
API 변경사항
CaptureRequestOptions
생성자를 제한했습니다. (I261b6)- 외부 이미지 처리 라이브러리(예: MLKit)와 함께
CameraController
를 사용하기 위한 실험용 API를 추가했습니다. (I4ea71)
버그 수정
- 멀티 윈도우에서 기기를 회전한 후 활동이 다시 시작되지 않으면
PreviewView
에서 미리보기가 가로로 바뀌는 문제가 수정되었습니다. (I1ea36, b/223488673) - (1) 우선순위가 높은 다른 앱이 다른 카메라를 열거나 (2) 기기가 삼성 Android 12 기기인 경우 포커스가 앱으로 다시 변경될 때 카메라를 다시 시작하지 못하는 멀티 윈도우 문제가 수정되었습니다. (I7e9f2)
- 플래시 사용 가능 여부를 확인할 때 비정상 종료되는 기기에 대한 해결 방법이 포함되었습니다. 이러한 기기에서는 손전등을 사용할 수 없습니다. (If26a3, b/216667482)
- 앱에서 확장 프로그램을 사용하고 proguard를 사용 설정할 때 발생하는
AbstractMethodError
문제가 수정되었습니다. (I7cbaf, b/222726805) - 검은색 미리보기 화면 문제가 발생하므로 Motorola razr 5G 기기에서 빛망울 효과 확장 모드를 강제로 사용 중지합니다. (I35d49)
- 일부 삼성 기기의 경우 API 29 이전 버전에서 일시중지한 다음 다시 시작하면 오디오/동영상 싱크가 맞지 않는 문제가 해결되었습니다. (I64622, b/202798609, b/202798572)
- Sony G3125에서 일시중지한 다음 다시 시작하면 오디오/동영상 싱크가 맞지 않는 문제가 해결되었습니다. (I2a1a5, b/202799148)
- 녹음기에
InvalidConfigException
이 있으면 비정상 종료가 발생하는 문제가 해결되었습니다. 하지만 앱이 비정상 종료되는 것만 방지되며InvalidConfigException
의 원인은 해결되지 않습니다.Recorder
를 아직 구성할 수 없으면 애플리케이션에서 녹화를 시작할 때 오류 콜백이 수신됩니다. (I89c29, b/213617227)
외부 기여
- test-coroutines-lib 이전으로 인해 :compose:ui:ui-test api(updateApi)가 업데이트되었습니다. (I3366d)
버전 1.1.0-beta02
2022년 2월 23일
androidx.camera:camera-*:1.1.0-beta02
가 출시되었습니다. 버전 1.1.0-beta02에 포함된 커밋을 확인하세요.
API 변경사항
- Camera2Interop를 통해 실제 카메라 ID를 지정하는 기능을 추가합니다. (I5aed8)
버그 수정
- Oppo Find N에서 발생하는 확장된 미리보기 문제를 수정했습니다. (I7d004)
- Galaxy J7 Prime에서 미리보기가 왜곡되는 문제를 수정했습니다. (I4c500)
- 호환 가능한 비트 전송률을 사용하여 동영상 인코더를 찾습니다. (d969052)
버전 1.1.0-beta01
2022년 1월 26일
androidx.camera:camera-*:1.1.0-beta01
이 출시되었습니다. 버전 1.1.0-beta01에 포함된 커밋을 확인하세요.
새로운 기능
- 1.1.0-beta01부터 모든 CameraX 라이브러리가 동일한 버전 번호를 정렬합니다. 이를 통해 개발자가 버전을 훨씬 더 쉽게 추적하고 대규모 버전 호환성 매트릭스의 복잡성을 줄일 수 있습니다.
API 변경사항
- 기존 캡처 요청 옵션을 지우기 위해
Camera2CameraControl.clearCaptureRequestOptions
를 추가했습니다. (Ifa07d)
버그 수정
- 일부 Android O(API 26) 이전 기기에서 동영상을 녹화할 때 발생하는 비정상 종료 문제를 수정했습니다. (I88fdf, b/212328261)
- 삼성 기기의 전면 렌즈 카메라에서
cameraControl#startFocusAndMetering()
을 사용할 때 발생하는 잘못된 AF 영역 문제를 수정했습니다. (Ifbf59, b/210548792) - Pixel 3a/Pixel 3a XL에서 토치를 플래시로 사용하여 어두운 환경에서 속도와 캡처된 이미지 품질을 개선합니다. (Ib12b6, b/211474332)
- 카메라가 멀티 윈도우 모드에서 우선순위가 더 높은 다른 애플리케이션으로 인해 중단되고 포커스가 애플리케이션으로 다시 변경될 때 애플리케이션이 카메라를 다시 시작하도록 사용 설정했습니다. 일부 프레임워크 문제로 인해 포커스가 변경된 후 카메라가 다시 실행될 때까지 약간의 지연 시간(1초~10초 이상)이 발생할 수 있습니다. (I4d092)
버전 1.1.0-alpha12
2021년 12월 15일
androidx.camera:camera-*:1.1.0-alpha12
가 출시되었습니다. 버전 1.1.0-alpha12에 포함된 커밋을 확인하세요.
API 변경사항
- 내부 클래스/인터페이스에서 불필요한
@RequiresApi(21)
주석을 삭제했습니다. (I8e286, b/204917951) QualitySelector
의 품질 상수 및 대체 전략 상수를 클래스 객체로 표현하도록 변경했습니다. 예를 들어QualitySelector.QUALITY_HD
는Quality.HD
로,QualitySelector.FALLBACK_STRATEGY_LOWER
는FallbackStrategy.lowerQualityOrHigherThan(Quality)
가 반환한 인스턴스로 변경됩니다.QualitySelector
를 만드는 데 사용하는 API를 목록 기반 API로 변경했습니다. 새 APIQualitySelector.fromOrderedList(List<Quality>)
는QualitySelector.Procedure
가 만든 순서 대신 입력 품질 목록의 순서를 참조합니다.QualitySelector.Procedure
클래스는 삭제되었습니다. (I43343)PendingRecording.withEventListener()
가 삭제되고 이제PendingRecording.start()
에 이벤트 리스너를 전달해야 합니다. 이 이벤트 리스너 요구사항은VideoRecordEvent.Finalize
이벤트에 보고되는 비동기 오류를 처리하기 위한 것입니다. (I1e71d)- 상세 출력을 줄이기 위해
ActiveRecording
의 이름을Recording
으로 바꾸었습니다. (I77ceb)
버그 수정
- Pixel 3a와 Pixel 3a XL의 경우,
FLASH_AUTO
모드에서 캡처된 사진이 어두운 조건에서 과소 노출되는 문제가 해결되었습니다. (I13f19, b/205373142) - 미리보기
Resolution
을 확인하려면 항상 최신 화면 크기를 사용하세요. (I4a694) REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
이 없는 카메라를 필터링했습니다.REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
을 사용하는 카메라는 모든 카메라 기기에서 지원하는 최소한의 기능 집합을 포함합니다.REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
이 없는 카메라는 특수 기능을 지원하는 카메라일 수 있으며 표준 색상 출력을 지원하지 않습니다.CameraX
는 이러한 카메라의Preview
,ImageCapture
,ImageAnalysis
또는VideoCapture
사용 사례를 지원할 수 없습니다. 따라서 이러한 카메라는 잘못된 사용을 방지하기 위해 필터링되어야 합니다. (Ib8cda)- 결과 집합이 비어 있으면 더 이상
CameraSelector#filter
에서IllegalArgumentException
이 발생하지 않습니다. (I27804) - 이제 OEM 지정 프로파일에 따라 인코더 설정을 선택하는 데 더 스마트한 휴리스틱이 사용됩니다. (Iaeef0)
- 고정된 미리보기는 Pixel 1에서 UHD 동영상 녹화를 시작한 후 색상 선을 인터레이스합니다. (I833c6, b/205340278)
버전 1.1.0-alpha11
2021년 11월 17일
androidx.camera:camera-*:1.1.0-alpha11
이 출시되었습니다. 버전 1.1.0-alpha11에 포함된 커밋을 확인하세요.
API 변경사항
- CameraSelector를 기준으로 CameraInfos 목록을 필터링하도록 CameraSelector#filter를 공개 API에 추가했습니다. (I105d0)
ImageAnalysis 구성을 위해 setOutputImageRotationEnabled API를 추가했습니다. 사용자가 YUV/RGB 이미지 버퍼의 회전을 사용 설정할 수 있습니다. 회전 각도는 이미지를 왜곡 없이 유지하도록 센서 회전과 타겟 회전을 기준으로 계산된 상대적 회전입니다.
ImageAnalysis 구성을 위해 setOutputImageRotationEnabled API를 추가했습니다. 사용자가 YUV/RGB 이미지 버퍼의 회전을 사용 설정할 수 있습니다. 회전 각도는 이미지를 왜곡 없이 유지하도록 센서 회전과 타겟 회전을 기준으로 계산된 상대적 회전입니다.
ImageInfo에
getSensorToBufferTransformMatrix
API를 추가합니다. 반환된 행렬은 센서 좌표에서 버퍼 좌표로의 매핑, 즉CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE
값에서(0, 0, image.getWidth, image.getHeight)
까지의 매핑입니다. 이 행렬은 하나의 {UseCase}에서 다른 {UseCase}로 좌표를 매핑하는 데 사용될 수 있습니다. 예를 들어 ImageAnalysis로 감지된 얼굴의 좌표를 미리보기에 매핑합니다. (I9ff1e)사진을 찍을 때 출력 JPEG 이미지 압축 품질을 변경할 수 있도록 새로운 API인 ImageCapture.Builder#setJpegQuality를 추가했습니다. (I8dcf4)
MediaStoreOutputOptions.getCollection의 이름을 MediaStoreOutputOptions.getCollectionUri로 바꾸었습니다. (I16639)
버그 수정
- 플래시 모드가 auto이거나 저조도 환경에서 always_on일 때 tap-to-focus(startFocusAndMetering) 중에 플래시가 트리거되는 문제를 수정했습니다. (Id4c11)
- 지연 시간을 줄이기 위해 MINIMIZE_LATENCY 모드에서 Pixel 2 XL/Pixel 3 XL의 HDR+를 사용 중지했습니다. (Ib6270, b/203505523)
외부 기여
버전 1.1.0-alpha10
2021년 10월 13일
androidx.camera:camera-*:1.1.0-alpha10
이 출시되었습니다. 버전 1.1.0-alpha10에 포함된 커밋을 확인하세요.
새로운 기능
androidx.camera:camera-video:1.1.0-alpha10
이 Video의 첫 번째 알파 버전으로 공식 출시되었습니다. 향후 릴리스에서 몇 가지 알려진 문제가 해결될 예정입니다.
API 변경사항
- 모든 CameraX 클래스에
@RequiresApi(21)
주석을 추가하고 AndroidManifest.xml에서 minSdkVersion을 삭제했습니다. 이를 통해 minSdkVersion이 21 미만이지만 API 21 이상을 사용하는 코드 경로를 조건부로 사용하려는 애플리케이션에 camera-core를 쉽게 통합할 수 있습니다. minSdkVersion 21 이상을 사용하는 애플리케이션에서는 이 변경으로 인한 별도의 작업이 필요하지 않습니다. (Ie7f2e, b/200599470)
버그 수정
- InitializationException을 발생시켜 앱이 CameraCharacteristics를 만들 때 발생하는 AssertionError를 적절하게 처리할 수 있게 합니다. (Ibec79)
버전 1.1.0-alpha09
2021년 9월 29일
androidx.camera:camera-camera2:1.1.0-alpha09
, androidx.camera:camera-core:1.1.0-alpha09
및 androidx.camera:camera-lifecycle:1.1.0-alpha09
가 출시되었습니다. 버전 1.1.0-alpha09에 포함된 커밋을 확인하세요.
API 변경사항
- 더 이상 실험용 API가 아니므로 ExperimentalUseCaseGroup 주석이 삭제되었습니다. (I01ef5)
버그 수정
MAXIMIZE_QUALITY
모드에서 캡처된 사진이 블러 처리되는 문제를 해결했습니다. (I173a9, b/193823892)- 어두운 환경에서 플래시 사용/자동 상태로 사진을 찍은 후 카메라가 멈추는 삼성 Galaxy J5 문제를 해결했습니다. (I3aab9)
- ImageCapture에 자르기가 필요한 경우 설정된 캡처 모드에 따라 지정된 JPEG 품질 수준으로 잘린 이미지 출력물을 압축하세요. 캡처 모드가
CAPTURE_MODE_MINIMIZE_LATENCY
이면 JPEG 압축 품질이 95가 됩니다. 캡처 모드가CAPTURE_MODE_MAXIMIZE_QUALITY
이면 JPEG 압축 품질이 100이 됩니다. (Ieb37c, b/142856426)
버전 1.1.0-alpha08
2021년 8월 18일
androidx.camera:camera-camera2:1.1.0-alpha08
, androidx.camera:camera-core:1.1.0-alpha08
및 androidx.camera:camera-lifecycle:1.1.0-alpha08
이 출시되었습니다. 버전 1.0.0-alpha08에 포함된 커밋을 확인하세요.
새로운 기능
- 이미지 분석 구성을 위한 setOutputImageFormat API를 추가합니다. 사용자는 ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 또는 ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888을 선택할 수 있습니다. 기본적으로 ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888이 선택됩니다. (I7902d)
API 변경사항
- 더 이상 실험용 API가 아니므로 ExperimentalUseCaseGroupLifecycle 주석이 삭제되었습니다. (I17b85)
버그 수정
- Huawei P20 Lite에서 미리보기 화면이 너무 밝은 문제를 해결했습니다. 이 문제는 특수한 미리보기 해상도가 큰 확대 값과 함께 사용되는 경우에만 발생합니다. (Idefce, b/192129158)
- 플래시 모드를 FLASH_MODE_ON으로 설정한 후 바로 사진을 찍을 경우 일부 기기에서 플래시가 작동하지 않는 문제를 해결했습니다. (Ieb49b)
- VideoCapture, ImageCapture, Preview가 바인딩된 경우 사진을 찍을 때 미리보기가 잠시 중단되는 문제를 해결했습니다. (I56197, b/193864120)
- ImageAnalysis에서 1080p보다 큰 해상도를 선택할 수 있습니다. 제한된 수준 이상의 기기가 Preview 및 ImageCapture와 함께 바인딩된 경우 ImageAnalysis의 녹화 크기 해상도를 지원할 수 있습니다. 단, ImageCapture에 선택한 해상도도 녹화 크기 해상도여야 합니다. ImageAnalysis의 녹화 크기 해상도를 선택하려면 녹화 크기 타겟 해상도를 ImageCapture와 ImageAnalysis에 모두 설정해야 합니다. 이는 애플리케이션이 균형을 명확하게 인식하고, 최대 해상도를 갖는 ImageCapture보다 큰 해상도를 갖는 ImageAnalysis를 선호한다는 의미입니다. 녹화 정의, 최대 크기 등 자세한 내용은 https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture를 참고하세요. 녹화 크기는 CamcorderProfile에 의해 결정되며 카메라 기기에서 지원되는 최대 녹화 해상도입니다. 최대 크기는 카메라 기기의 관련 형식에서 지원되는 최대 출력 해상도 또는 StreamConfigurationMap.getOutputSizes(int)의 타겟을 나타냅니다. (I1ee97, b/192911449)
- 캡처된 이미지에 EXIF (데이터) 정보를 추가합니다. (I01ff0, b/193342619)
- 저장 위치가 파일인 경우 ImageCapture에서 저장된 이미지의 URI를 반환합니다. (Ib5b49, b/149241379)
- 여러 기기에서 플래시를 켠 상태로 캡처한 이미지가 어둡게 표시되는 문제를 해결했습니다. (I4e510)
버전 1.1.0-alpha07
2021년 7월 21일
androidx.camera:camera-camera2:1.1.0-alpha07
, androidx.camera:camera-core:1.1.0-alpha07
, androidx.camera:camera-lifecycle:1.1.0-alpha07
이 출시되었습니다. 버전 1.1.0-alpha07에 포함된 커밋을 확인하세요.
버그 수정
- 어두운 환경에서 플래시를 사용 설정/자동 설정하여 사진을 찍은 후 카메라가 멈추는 삼성 Galaxy Note 5의 문제가 해결되었습니다. (If6871)
- 확장 프로그램 모드를 사용 설정하고
ImageCapture#CAPTURE_MODE_MAX_QUALITY
모드를 설정한 경우 발생하는YuvToJpegProcessor
EOFException 문제가 해결되었습니다. (I538bd, b/192017012)
버전 1.1.0-alpha06
2021년 6월 30일
androidx.camera:camera-camera2:1.1.0-alpha06
, androidx.camera:camera-core:1.1.0-alpha06
및 androidx.camera:camera-lifecycle:1.1.0-alpha06
이 출시되었습니다. 버전 1.1.0-alpha06에 포함된 커밋을 확인하세요.
API 변경사항
- camera-core용 실험용 노출 보정 API를 승격합니다. (I08ee8)
- 애플리케이션이 현재 카메라에서 주어진 FocusMeteringAction의 지원 여부를 확인할 수 있는 API isFocusMeteringSupported를 CameraInfo에 추가했습니다. (Ib45ae, b/188606490)
- 미리보기, ImageCapture, ImageAnalysis의 해상도 정보를 제공하려고 getResolutionInfo API를 노출했습니다. (I2b613, b/188600718)
- 다음 실험용 API를 공식 API로 승격했습니다. CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler() (I2ade2)
- 일련의 카메라에 액세스할 수 있도록 CameraProvider 인터페이스를 노출했습니다. (I1a7b1)
- camera-core, camera-lifecycle, camera-video의 실험용 UseCaseGroup API를 승격합니다. 표시 영역을 맞춤설정하는
ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
,ViewPort.Builder#setScaleType
을 추가했습니다. (I7cee8)
버전 1.1.0-alpha05
2021년 6월 2일
androidx.camera:camera-camera2:1.1.0-alpha05
, androidx.camera:camera-core:1.1.0-alpha05
및 androidx.camera:camera-lifecycle:1.1.0-alpha05
가 출시되었습니다. 버전 1.1.0-alpha05에 포함된 커밋을 확인하세요.
API 변경사항
Camera2CameraFilter
클래스를 삭제했습니다. CameraFilter로 카메라를 선택하고 필요하다면 Camera2CameraInfo를 통해 CameraCharacteristics 또는 기타 Camera2 관련 정보를 검색하도록 제안합니다. (Ib887c)ExperimentalCameraFilter
API가 이제 실험 단계를 벗어나 공식 API가 됩니다. 주석이 달린 OptIn 없이 사용할 수 있습니다. (I4bc94)CameraInfo#getCameraState()
를 통해 노출되는 카메라 상태 API를 추가했습니다. (Ia86b4)- 카메라에 고유한 CameraSelector를 반환하는 실험용 API
CameraInfo#getCameraSelector()
를 추가했습니다. (I77f9f)
버그 수정
- setZoomRatio와 setLinearZoom에 반환된 ListenableFuture가 일부 Android 11 기기에서 완료되지 않는 문제를 수정했습니다. (I716d7)
- 카메라 스위치 속도를 높이고 카메라 기기의 오류 발생률을 줄입니다. (I34c99)
- ExperimentalUseCaseGroupLifecycle을 ExperimentalUseCaseGroup으로 대체했습니다. (I3b2ef, b/159033688)
버전 1.1.0-alpha04
2021년 4월 21일
androidx.camera:camera-camera2:1.1.0-alpha04
, androidx.camera:camera-core:1.1.0-alpha04
및 androidx.camera:camera-lifecycle:1.1.0-alpha04
가 출시되었습니다. 버전 1.1.0-alpha04에 포함된 커밋을 확인하세요.
버그 수정
- 동일한 컬렉션에 동시에 액세스하는 여러 스레드로 인한 메모리 누수 문제를 해결했습니다. 메모리 누수가 발생할 경우 미리보기 인스턴스에서 활동 또는 프래그먼트가 남아 있을 수 있습니다. (I7b4b8)
- 실험용 API의 주석
@Experimental
을@RequiresOptIn
으로 바꿨습니다. 실험용 API를 호출하려면 지원 중단된androidx.annotation.experimental.UseExperimental
대신androidx.annotation.OptIn
을 사용하세요. (Iff226) - 삼성 Galaxy S7에서 플래시 켜짐/자동 상태일 때 빛 바랜 이미지가 촬영되는 ImageCapture의 문제를 해결했습니다. (I30001)
- CameraInfo를 통해 노출될 CameraState API를 추가했습니다. (I75392)
버전 1.1.0-alpha03
2021년 3월 24일
androidx.camera:camera-camera2:1.1.0-alpha03
, androidx.camera:camera-core:1.1.0-alpha03
및 androidx.camera:camera-lifecycle:1.1.0-alpha03
이 출시되었습니다. 버전 1.1.0-alpha03에 포함된 커밋을 확인하세요.
버그 수정
- 확장 프로그램 모드가 사용 설정되면
ImageCapture#OnImageCapturedCallback
의 JPEG 형식을 출력합니다. (I0d7b1) - UMIDIGI BISON 기기의 초기화 실패 문제를 해결했습니다. (I57d9e, b/180818665)
- PreviewView에서 삼성 A3의 미리보기가 늘어나는 문제를 해결했습니다. (Iacb30, b/180121821)
버전 1.1.0-alpha02
2021년 2월 24일
androidx.camera:camera-camera2:1.1.0-alpha02
, androidx.camera:camera-core:1.1.0-alpha02
및 androidx.camera:camera-lifecycle:1.1.0-alpha02
이 출시되었습니다. 버전 1.1.0-alpha02에 포함된 커밋을 확인하세요.
API 변경사항
- 기기의 모든 카메라 또는
CameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector)
에 제공되는CameraSelector
에서 선택한 카메라 등, 사용 가능한 카메라에 관한 정보를 직접 검색하는 APIProcessCameraProvider.getAvailableCameraInfos()
를 추가했습니다. (Ieac08)
버그 수정
- 이제 CameraX가 최초 시도에서 카메라를 강제로 열려고 시도합니다. 이에 따라, 앱의 우선순위가 높은 경우 CameraX에서 다른 카메라 클라이언트로부터 카메라를 가로챌 수도 있습니다. (Iab069, b/175820568)
- CameraXConfig에서 setAvailableCamerasLimiter를 사용할 때 Robolectric 테스트에 실패하는 문제를 해결했습니다. (Ice307)
- 이 변경으로 인해, ImageAnalysis에서 이미지 큐가 최대 한도에 도달하면 예외가 포착됩니다. 따라서 비정상 종료가 발생하는 대신, 미리보기 등의 다른 사용 사례가 정지되거나 느려질 수 있습니다. (Ic12da, b/175851631)
- 미리보기 또는 ImageCapture가 바인딩된 경우에만 오류를 보고하도록 ExtensionsErrorListener를 수정했습니다. (I5ae39)
- 사진을 찍기 전에 이미지 저장 위치의 유효성 검사를 없애 ImageCapture 성능 저하 문제를 해결했습니다. 이렇게 변경한 후에는 저장 위치가 잘못된 경우 실패 응답을 가져오는 데 시간이 더 오래 걸립니다. 사진을 찍은 후 이미지를 저장하려고 시도하기 때문입니다. (I1fd4e, b/177061560)
- 'File' 유형의 OutputFileOptions로 ImageCapture 성능 저하를 해결했습니다. (I5164a, b/177061560)
- 라이브러리 코드에서
ProcessCameraProvider.configureInstance(...)
를 사용하지 않도록 권장하는 내용으로 문서를 업데이트했습니다. (Ib8a9f)
버전 1.1.0-alpha01
2021년 1월 27일
androidx.camera:camera-camera2:1.1.0-alpha01
, androidx.camera:camera-core:1.1.0-alpha01
및 androidx.camera:camera-lifecycle:1.1.0-alpha01
이 출시되었습니다. 버전 1.1.0-alpha01에 포함된 커밋을 확인하세요.
버그 수정
- SM-G930T 후면 카메라의 JPEG 이미지 데이터가 간헐적으로 손상되는 문제에 관한 해결 방법을 포함했습니다. (I52001, b/159831206)
- 모든 미리보기 지원 크기가 640x480보다 작고 디스플레이 크기가 640x480보다 클 때 발생하는
IllegalArgumentException
문제를 수정했습니다. (I2a63c, b/150506192) - 이제 public.xml 등을 통해 명시적으로 선언된 공개 리소스가 없는 라이브러리의 리소스는 기본적으로 비공개입니다. (Ia1dcc, b/170882230)
Camera-Camera2, Camera-Core, Camera-Lifecycle 버전 1.0.2
버전 1.0.2
2021년 9월 29일
androidx.camera:camera-camera2:1.0.2
, androidx.camera:camera-core:1.0.2
및 androidx.camera:camera-lifecycle:1.0.2
가 출시되었습니다. 버전 1.0.2에 포함된 커밋을 확인하세요.
버그 수정
MAXIMIZE_QUALITY
모드에서 캡처된 사진이 블러 처리되는 문제를 해결했습니다. (I173a9, b/193823892)- 여러 기기에서 플래시를 사용하여 캡처한 이미지가 어둡게 표시되는 문제를 해결했습니다. (I4e510)
Camera-Camera2, Camera-Core, Camera-Lifecycle 버전 1.0.1
버전 1.0.1
2021년 7월 21일
androidx.camera:camera-camera2:1.0.1
, androidx.camera:camera-core:1.0.1
및 androidx.camera:camera-lifecycle:1.0.1
이 출시되었습니다. 버전 1.0.1에 포함된 커밋을 확인하세요.
버그 수정
setZoomRatio
및setLinearZoom
에서 반환된ListenableFuture
가 일부 Android 11 기기에서 완료되지 않는 문제가 해결되었습니다. (I716d7)일부 기기에서 카메라가 카메라 닫기 상태에서 멈추고 미리보기가 검게 나타나는 문제가 해결되었습니다. (I34c99)
Camera-Camera2, Camera-Core, Camera-Lifecycle 버전 1.0.0
버전 1.0.0
2021년 5월 5일
androidx.camera:camera-camera2:1.0.0
, androidx.camera:camera-core:1.0.0
및 androidx.camera:camera-lifecycle:1.0.0
이 출시되었습니다. 버전 1.0.0에 포함된 커밋을 확인하세요.
1.0.0의 주요 기능
- CameraX가 Preview, ImageCapture, Analysis를 지원합니다.
- CameraX가 사용하기 쉬운 API 내에서 카메라 수명 주기를 관리합니다.
- CameraX의 목표는 Android 카메라 생태계의 여러 문제를 해결하는 호환성 레이어를 제공하는 것입니다.
알려진 문제
- 알려진 문제 목록을 참고하세요.
버전 1.0.0-rc05
2021년 4월 21일
androidx.camera:camera-camera2:1.0.0-rc05
, androidx.camera:camera-core:1.0.0-rc05
및 androidx.camera:camera-lifecycle:1.0.0-rc05
가 출시되었습니다. 버전 1.0.0-rc05에 포함된 커밋을 확인하세요.
버그 수정
- 삼성 Galaxy S7에서 플래시 켜짐/자동 상태일 때 빛 바랜 이미지가 촬영되는 ImageCapture의 문제를 해결했습니다. (I30001)
버전 1.0.0-rc04
2021년 3월 24일
androidx.camera:camera-camera2:1.0.0-rc04
, androidx.camera:camera-core:1.0.0-rc04
및 androidx.camera:camera-lifecycle:1.0.0-rc04
가 출시되었습니다. 버전 1.0.0-rc04에 포함된 커밋을 확인하세요.
버그 수정
- UMIDIGI BISON 기기의 초기화 실패 문제를 해결했습니다. (I57d9e, b/180818665)
버전 1.0.0-rc03
2021년 2월 24일
androidx.camera:camera-camera2:1.0.0-rc03
, androidx.camera:camera-core:1.0.0-rc03
및 androidx.camera:camera-lifecycle:1.0.0-rc03
이 출시되었습니다. 버전 1.0.0-rc03에 포함된 커밋을 확인하세요.
버그 수정
ProcessCameraProvider#getInstance
의 문서에서 형식 오류를 수정했습니다.- CameraXConfig에서 setAvailableCamerasLimiter를 사용할 때 Robolectric 테스트에 실패하는 문제를 해결했습니다.
- 사진을 찍기 전에 이미지 저장 위치의 유효성 검사를 없애 ImageCapture 성능 저하 문제를 해결했습니다. 이렇게 변경한 후에는 저장 위치가 잘못된 경우 실패 응답을 가져오는 데 시간이 더 오래 걸립니다. 사진을 찍은 후 이미지를 저장하려고 하기 때문입니다.
- 이 변경으로 인해, ImageAnalysis에서 이미지 큐가 최대 한도에 도달하면 예외가 포착됩니다. 따라서 비정상 종료가 발생하는 대신, 미리보기 등의 다른 사용 사례가 정지되거나 느려질 수 있습니다.
- SM-G930T 후면 카메라의 JPEG 이미지 데이터가 간헐적으로 손상되는 문제에 관한 해결 방법을 포함했습니다. (I52001, b/159831206)
- 이 변경으로 인해, ImageAnalysis에서 이미지 큐가 최대 한도에 도달하면 예외가 포착됩니다. 따라서 비정상 종료가 발생하는 대신, 미리보기 등의 다른 사용 사례가 정지되거나 느려질 수 있습니다. (Ic12da, b/175851631)
- CameraXConfig에서 setAvailableCamerasLimiter를 사용할 때 Robolectric 테스트에 실패하는 문제를 해결했습니다. (Ice307)
- 사진을 찍기 전에 이미지 저장 위치의 유효성 검사를 없애 ImageCapture 성능 저하 문제를 해결했습니다. 이렇게 변경한 후에는 저장 위치가 잘못된 경우 실패 응답을 가져오는 데 시간이 더 오래 걸립니다. 사진을 찍은 후 이미지를 저장하려고 시도하기 때문입니다. (I1fd4e, b/177061560)
- 'File' 유형의 OutputFileOptions로 ImageCapture 성능 저하를 해결했습니다. (I5164a, b/177061560)
버전 1.0.0-rc02
2021년 1월 27일
androidx.camera:camera-camera2:1.0.0-rc02
, androidx.camera:camera-core:1.0.0-rc02
및 androidx.camera:camera-lifecycle:1.0.0-rc02
가 출시되었습니다. 버전 1.0.0-rc02에 포함된 커밋을 확인하세요.
버그 수정
- 모든 미리보기 지원 크기가 640x480보다 작고 디스플레이 크기가 640x480보다 클 때 발생하는 IllegalArgumentException 문제를 수정했습니다. (b/150506192)
카메라 다시 열기 시도 횟수를 제한합니다. 카메라를 열 때 특정 문제에서 복구를 시도하는 동안 CameraX에서는 카메라를 다시 열기 위한 시도를 더 이상 무한정 반복하지 않고 10초 동안 다시 시도한 후 중지합니다. (I435d2)
모든 미리보기 지원 크기가 640x480보다 작고 디스플레이 크기가 640x480보다 클 때 발생하는
IllegalArgumentException
문제를 수정했습니다. (I2a63c, b/150506192)
버전 1.0.0-rc01
2020년 12월 16일
androidx.camera:camera-camera2:1.0.0-rc01
, androidx.camera:camera-core:1.0.0-rc01
및 androidx.camera:camera-lifecycle:1.0.0-rc01
이 출시되었습니다. 버전 1.0.0-rc01에 포함된 커밋을 확인하세요.
API 변경사항
- CameraInfo를 사용하도록 CameraFilter와 Camera2Filter를 변경했습니다. (I6883d)
- 실험용 클래스 Camera2CameraControl을 추가하여 Camera2 API와 동적으로 상호 운용할 수 있습니다. (I45cf3)
- Camera2CameraInfo#fromCameraInfo를 #from으로 이름을 바꿨습니다. (Ia2bd6)
- 사용되지 않는 카메라의 초기화를 방지하여 앱이 초기화 지연 시간을 최적화할 수 있도록 실험용 setAvailableCamerasLimiter API를 CameraXConfig에 추가했습니다. (I6cf88)
- CameraX 로그의 최소 로깅 수준을 설정할 수 있도록 실험용 메서드
CameraXConfig.Builder#setMinimumLoggingLevel()
을 추가했습니다. 설정하지 않으면 기본값은Log#DEBUG
입니다. (Ic3245)
버그 수정
- SM-G930V 후면 카메라의 JPEG 이미지 데이터가 간헐적으로 손상되는 문제에 관한 해결 방법을 포함했습니다. (I5aca5, b/159831206)
- Samsung SM-A716 기기에서 플래시가 항상 켜져 있고 환경이 어두울 때 사진을 찍으면 결과가 수신되지 않는 문제를 수정했습니다. (If98b2, b/172036589)
Preview.setSurfaceProvider(null)
를 호출하여 미리보기를 중지할 수 없는 문제를 수정했습니다. (I3ac18)- 일부 기기에서 4:3 이미지를 캡처할 때 발생하는 방향 문제를 수정했습니다. (I0e3fb, b/171492111)
Camera Camera2, Core, Lifecycle 버전 1.0.0-beta12
2020년 11월 11일
androidx.camera:camera-camera2:1.0.0-beta12
, androidx.camera:camera-core:1.0.0-beta12
및 androidx.camera:camera-lifecycle:1.0.0-beta12
가 출시되었습니다. 버전 1.0.0-beta012에 포함된 커밋을 확인하세요.
버그 수정
- Samsung A3 기기에서 자동 플래시 AE 모드로 사진을 찍을 때 발생하는 비정상 종료 문제를 수정하기 위해 Samsung A3 기기의 자동 플래시를 사용 중지했습니다. (Ia5fe3, b/157535165)
- Android L(API 수준 21 및 22)을 실행하는 Nexus 4 기기에서 미리보기가 확장되던 문제를 수정했습니다. (I4d407, b/158749159)
OnImageCapturedCallback#onCaptureSuccess
기본 클래스 구현이 더 이상 이미지를 닫지 않습니다. 개발자에게 예기치 않은 동작이 발생하지 않도록 하기 위함입니다. 개발자는 super.onCaptureSuccess에 의존하여 이미지를 닫지 않아야 합니다. (Ifbf9c)- 실험용 주석의 androidx 변형이 Kotlin과의 패리티를 제공하기 위해 지원 중단되었습니다. RequiresOptIn 주석으로 대체했으며 새 Kotlin 주석과 새 androidx 변형을 모두 지원하도록 자바 관련 린터를 업데이트했습니다. (I52495, b/151331381)
Camera-Camera2 버전 1.0.0-beta11
2020년 10월 14일
androidx.camera:camera-camera2:1.0.0-beta11
이 출시되었습니다. 버전 1.0.0-beta11에 포함된 커밋을 확인하세요.
새로운 기능
- 유효한
CONTROL_ZOOM_RATIO_RANGE
가 포함된 Android 11 이상 기기에서 확대/축소하도록 Android 11CONTROL_ZOOM_RATIO
API를 지원합니다. (I62cc6)
버그 수정
- 카메라 ID가 정수가 아닌 카메라 ID일 때 발생한 NumberFormatException 문제를 수정했습니다. (Ib2228)
- CameraX 초기화 및 bindToLifecycle의 지연 시간을 개선했습니다. (I61dc5)
- UseCases 생성을 위해 CameraX 초기화를 완료하지 않아도 됩니다. 공개 API의 경우
ProcessCameraProvider.bindToLifecycle()
인 카메라 인스턴스에 연결되면 모든 구현 관련 구성이 UseCase에 설정됩니다. (Ia5411) - targetRotation이 Builder 또는 UseCase에 설정되지 않은 경우
<UseCase>.getTargetRotation()
이 카메라 인스턴스에 연결되기 전에 호출되면Surface.ROTATION_0
을 반환합니다. (I80fcd)
Camera-Core 버전 1.0.0-beta11
2020년 10월 14일
androidx.camera:camera-core:1.0.0-beta11
이 출시되었습니다. 버전 1.0.0-beta11에 포함된 커밋을 확인하세요.
새로운 기능 - 유효한 CONTROL_ZOOM_RATIO_RANGE
가 포함된 Android 11 이상 기기에서 확대/축소하도록 Android 11 CONTROL_ZOOM_RATIO
API를 지원합니다. (I62cc6)
버그 수정
- 카메라 ID가 정수가 아닌 카메라 ID일 때 발생한 NumberFormatException 문제를 수정했습니다. (Ib2228)
- UseCases 생성을 위해 CameraX 초기화를 완료하지 않아도 됩니다. 공개 API의 경우
ProcessCameraProvider.bindToLifecycle()
인 카메라 인스턴스에 연결되면 모든 구현 관련 구성이 UseCase에 설정됩니다. (Ia5411) - targetRotation이 Builder 또는 UseCase에 설정되지 않은 경우
<UseCase>.getTargetRotation()
이 카메라 인스턴스에 연결되기 전에 호출되면Surface.ROTATION_0
을 반환합니다. (I80fcd)
Camera-Core 버전 1.0.0-beta10
2020년 9월 23일
androidx.camera:camera-core:1.0.0-beta10
이 출시되었습니다. 버전 1.0.0-beta10에 포함된 커밋을 확인하세요.
버그 수정
- 이미지 캡처 파일의 저장 위치 확인과 관련된 버그를 수정했습니다. (I8c565, b/167697553)
Camera-Camera2 버전 1.0.0-beta10
2020년 9월 23일
androidx.camera:camera-camera2:1.0.0-beta10
이 출시되었습니다. 버전 1.0.0-beta10에 포함된 커밋을 확인하세요.
버그 수정
- Camera-Core 1.0.0-beta10을 지원하는 버전
Camera-Camera2 버전 1.0.0-beta09
2020년 9월 16일
androidx.camera:camera-camera2:1.0.0-beta09
가 출시되었습니다. 버전 1.0.0-beta09에 포함된 커밋을 확인하세요.
API 변경사항
- 정적 메서드를 제공하는 대신 Camera2CameraInfo는 Camera2 관련 정보를 검색하기 위해 생성 시 CameraInfo 인스턴스를 가져옵니다. (I5b844)
버그 수정
- 태블릿 기기에서 타겟의 가로세로 비율 문제를 수정했습니다. 타겟의 가로세로 비율이
AspectRatio.RATIO_16_9
로 설정되어 있으면 16:9 크기를 선택해야 합니다. (Ib7fcf, b/151969438) InitializationException
을 발생시켜 앱이 CameraCharacteristics를 만들 때 발생하는 AssertionError를 적절하게 처리할 수 있게 합니다. (I89c8c, b/160524721)- ExposerCompensation을 위한 실험용 인터페이스를 추가했습니다. (If96c7)
Camera-Core 버전 1.0.0-beta09
2020년 9월 16일
androidx.camera:camera-core:1.0.0-beta09
가 출시되었습니다. 버전 1.0.0-beta09에 포함된 커밋을 확인하세요.
API 변경사항
- UseCaseGroup에서 표시 영역이 null이 아닌 것으로 표시되는 버그를 수정했습니다. 개발자는 표시 영역을 설정하지 않고도 표시 영역을 만들 수 있어야 합니다. (Ie3d2e)
ExposureCompensation
을 위한 실험용 인터페이스를 추가했습니다. (If96c7)- 미리보기에서 임의의 타겟 회전을 허용합니다. 변환 정보가 계산되고 새
TranformationInfoListener
콜백을 통해 사용자에게 즉시 반환됩니다. (I21470)
버그 수정
- 일부 기기에서 플래시가 꺼지지 않는 문제를 수정했습니다. 사진을 찍기 위해 플래시 모드를
FLASH_MODE_ON
으로 설정하고 플래시가 실행된 후FLASH_MODE_OFF
로 변경하면 발생합니다. 사용 설정된 토치 모드의 증상과 비슷합니다. (Ib4451, b/162568128) - 확장 프로그램 효과가 사용 설정되고 공급업체 라이브러리 구현이 출력 표면에서 특수 프로세스를 실행해야 하는 경우 PreviewView에서 TextureView를 사용하도록 강제했습니다. (I0c3cc)
- 활동/프래그먼트 컨텍스트가
ProcessCameraProvider.getInstance(Context)
로 전달될 때 활동/프래그먼트 누수 문제를 수정했습니다.
알려진 문제
- ViewPort가 설정된 경우 HAL에서 이미지 버퍼를 회전하는 기기에서 ImageCapture의 자르기 rect가 정확하지 않을 수 있습니다. 이 문제는 다음 버전에서 수정될 예정입니다.
Camera-Camera2 버전 1.0.0-beta08
2020년 8월 19일
androidx.camera:camera-camera2:1.0.0-beta08
이 출시되었습니다. 버전 1.0.0-beta08에 포함된 커밋을 확인하세요.
버그 수정
- 기본 스레드에서 빠르게 실행되도록 bindToLifecycle이 최적화되었습니다. (I1d57e)
- DisplayOrientedMeteringPointFactory는 CameraSelector 대신 CameraInfo 인스턴스를 가져오므로 팩토리에서 포인트를 생성할 카메라의 직접 매핑이 있습니다. DisplayOrientedMeteringPointFactory를 사용하는 모든 클래스도 CameraSelector 대신 CameraInfo 인스턴스를 가져옵니다. (I400c1)
- 타겟 해상도 설정이 2016x1080이고 다른 1920x1080 16:9 크기가 지원되는 경우 16:9 mod16 크기(864x480)가 선택되는 자동 해상도 가로세로 비율 크기 그룹화 문제가 수정되었습니다. (I53167, b/159363774)
- 경합 상태로 작업할 수 없는 CameraControl 문제가 수정되었습니다. (I2279f, b/152333890, b/160714166)
Camera-Core 버전 1.0.0-beta08
2020년 8월 19일
androidx.camera:camera-core:1.0.0-beta08
이 출시되었습니다. 버전 1.0.0-beta08에 포함된 커밋을 확인하세요.
API 변경사항
DisplayOrientedMeteringPointFactory
는CameraSelector
대신CameraInfo
인스턴스를 가져오므로 팩토리에서 포인트를 생성할 카메라의 직접 매핑이 있습니다.DisplayOrientedMeteringPointFactory
를 사용하는 모든 클래스도CameraSelector
대신CameraInfo
인스턴스를 가져옵니다. (I400c1)
버그 수정
- 이미지 캡처의 경우 카메라 방향에 기반하여 메타데이터에서 수평 뒤집기 플래그를 덮어씁니다. (I28499)
Context.getApplicationContext()
에서 애플리케이션 객체를 반환하지 않는 컨텍스트를 사용할 때 초기화가 더 이상 비정상 종료되지 않습니다. (I3d3c9, b/160817073)
Camera-Camera2 버전 1.0.0-beta07
2020년 7월 22일
androidx.camera:camera-camera2:1.0.0-beta07
이 출시되었습니다. 버전 1.0.0-beta07에 포함된 커밋을 확인하세요.
버그 수정
- Android 5.0 레거시 기기에서 미리보기가 확장되는 문제가 해결되었습니다. (I0c03a)
- 일부 기기에서 WYSIWYG 문제를 야기하는 JPEG 지원 크기를 제외했습니다. (Ib5128)
Camera-Core 버전 1.0.0-beta07
2020년 7월 22일
androidx.camera:camera-core:1.0.0-beta07
이 출시되었습니다. 버전 1.0.0-beta07에 포함된 커밋을 확인하세요.
API 변경사항
FIT_CENTER
,FIT_START
,FIT_END
fit 스타일이FIT
와 병합됩니다.FIT
는 반환된 자르기 rect가 가능한 최대 센서 rect임을 의미합니다. (Ia73c3)- 미리보기의 자르기 rect는 표시 영역을 통해 구성됩니다. 자르기 rect에 포함된 영역만 최종 사용자에게 표시됩니다. (I142a4)
버그 수정
- Android 5.0 레거시 기기에서 미리보기가 확장되는 문제가 해결되었습니다. (I0c03a)
- 사용 사례의 연결을 해제할 때 발생하는
ConcurrentModificationException
예외 문제가 해결되었습니다. (I371c0)
Camera-Camera2 버전 1.0.0-beta06
2020년 6월 24일
androidx.camera:camera-camera2:1.0.0-beta06
이 출시되었습니다. 버전 1.0.0-beta06에 포함된 커밋을 확인하세요.
API 변경사항
- 카메라 ID와 CameraCharacteristics로 카메라를 필터링하기 위한 실험용 인터페이스가 추가되었습니다. (I28f61)
버그 수정
- startFocusAndMetering이 Samsung Galaxy S7에 성공적으로 초점을 맞추지 못하는 문제가 수정되었습니다. (If3be7, b/159039233)
- 앱을 종료한 후 카메라를 닫을 수 없는 문제가 수정되었습니다. (I7a7b3)
- PreviewView의 SurfaceView 구현을 사용할 때 반복되는 카메라 전환으로 인해 미리보기가 중단되는 문제를 수정했습니다. (I920ce)
- 지정된 MeteringPoint에서 유효한 측정 직사각형을 생성할 수 없으면
CameraControl#startFocusAndMetering
이 실패합니다. (Id53ce)
Camera-Core 버전 1.0.0-beta06
2020년 6월 24일
androidx.camera:camera-core:1.0.0-beta06
이 출시되었습니다. 버전 1.0.0-beta06에 포함된 커밋을 확인하세요.
API 변경사항
- 카메라 ID와 CameraCharacteristics로 카메라를 필터링하기 위한 실험용 인터페이스가 추가되었습니다. (I28f61)
버그 수정
- 이제
ProcessCameraProvider#getInstance()
를 호출하기 전에ProcessCameraProvider#configureInstance()
로 CameraX를 구성할 수 있습니다. 이렇게 하면 앱의 애플리케이션 클래스에서CameraXConfig.Provider
를 구현하지 않고도CameraXConfig
를 맞춤설정할 수 있습니다. (Ia1a8d) - 지정된 MeteringPoint에서 유효한 측정 직사각형을 생성할 수 없으면
CameraControl#startFocusAndMetering
이 실패합니다. (Id53ce)
Camera-Camera2 버전 1.0.0-beta05
2020년 6월 10일
androidx.camera:camera-camera2:1.0.0-beta05
가 출시되었습니다. 버전 1.0.0-beta05에 포함된 커밋을 확인하세요.
버그 수정
- 스마트폰이 방해 금지 모드일 때 CameraX를 초기화하면 앱 시작 시 비정상적으로 종료되는 문제를 해결했습니다. 애플리케이션이 다운되는 대신
CameraUnavailableException
이 포함된InitializationException
이ListenableFuture
라는 초기화 결과로 설정됩니다. (I9909a, b/149413835) CONTROL_AF_STATE
가 null인 기기에서startFocusAndMetering
을 호출할 때 발생하는 비정상 종료 문제를 해결했습니다. (Ife55e, b/157084254)
Camera-Core 버전 1.0.0-beta05
2020년 6월 10일
androidx.camera:camera-core:1.0.0-beta05
가 출시되었습니다. 버전 1.0.0-beta05에 포함된 커밋을 확인하세요.
API 변경사항
- 스마트폰이 방해 금지 모드일 때 CameraX를 초기화하면 앱 시작 시 비정상적으로 종료되는 문제를 해결했습니다. 애플리케이션이 다운되는 대신
CameraUnavailableException
이 포함된InitializationException
이ListenableFuture
라는 초기화 결과로 설정됩니다. (I9909a, b/149413835)
버그 수정
setTargetResolution
및setTargetRotation
의 javadocs가 업데이트되었습니다. (Iai16f)
Camera-Camera2 버전 1.0.0-beta04
2020년 5월 27일
androidx.camera:camera-camera2:1.0.0-beta04
가 출시되었습니다. 버전 1.0.0-beta04에 포함된 커밋을 확인하세요.
버그 수정
- 애플리케이션에서 비정상 종료를 야기하지 않고
Camera2Interop
을 통해 camera2 캡처 요청 매개변수를 설정할 수 있습니다. 매개변수 재정의의 결과로 발생하는 문제가 있는지 유의하세요. Camera2Interop를 사용하여 매개변수를 재정의하는 경우 안정성과 동작이 보장되지 않습니다. (Ibe5a1, b/149103700) - pseudo-locale을 사용하는 기기에서 앱을 사용할 때 발생하는 자동 초기화가 해결되었습니다. (I3bef3, b/154767663)
- Camera2CameraImpl에서 분리된 사용 사례와 관련된 오류 로그가 디버그 로그로 변환되었습니다. (I1a565, b/154422490)
- 플래시가 작동하더라도 이미지가 종종 너무 어둡게 촬영되는 문제가 해결되었습니다. (I5d9fa, b/149729613)
ImageCapture
에서ImageProxy
의 버퍼를 다시 리와인드하지 못하던 버그를 수정했습니다. (I0c455, b/153249512)- ImageCapture만 결합하면 (1) MAX_QUALITY로 사진을 찍지 못하고 (2) 자동 노출이 작동하지 않아 이미지 품질이 좋지 못한 문제가 해결되었습니다. (I17782, b/145326998)
- 카메라를 가로채는 다른 프로세스나 코드 경로로 인해 CameraX가 연결 해제된 경우 카메라를 다시 열 때의 안정성이 향상되었습니다. (I1fbc3, b/153714651)
Camera-Core 버전 1.0.0-beta04
2020년 5월 27일
androidx.camera:camera-core:1.0.0-beta04
가 출시되었습니다. 버전 1.0.0-beta04에 포함된 커밋을 확인하세요.
API 변경사항
- CameraX 카메라 스택에 내부적으로 사용되는 핸들러를 설정하기 위한 실험용 API
CameraXConfig.Builder#setSchedulerHandler()
를 추가했습니다.CameraXConfig.Builder#setCameraExecutor()
와 마찬가지로 이 새 API는 CameraX 카메라 스택에서 사용하는 스레드를 완전히 제어할 수 있어야 합니다. (I7bf32, b/121160431)
버그 수정
ImageReaderProxy
가 닫힌 후ImageProxy
로의 액세스가 진행되는ImageAnalysis
에서 비정상 종료가 발생하는 문제를 해결했습니다. 이로 인해ImageReaderProxy
를 닫기 전에Analyzer
에서 수신한 모든ImageProxy
를 닫아야 합니다. (I4b299, b/145956416, b/154155377, b/156357269)PreviewView#createSurfaceProvider()
에서CameraInfo
매개변수가 삭제되었습니다. 이제PreviewView
는 내부적으로SurfaceRequest
에서 가져옵니다. (If18f0, b/154652477)- pseudo-locale을 사용하는 기기에서 앱을 사용할 때 발생하는 자동 초기화가 해결되었습니다. (I3bef3, b/154767663)
- 플래시가 작동하더라도 이미지가 종종 너무 어둡게 촬영되는 문제가 해결되었습니다. (I5d9fa, b/149729613)
- setAnalyzer/clearAnalyzer를 여러 번 호출하면 분석 도구가 분석할 이미지를 수신하지 못하는
ImageAnalysis
의 문제가 해결되었습니다. (I6169f, b/151605317, b/153514544) ImageCapture
에서ImageProxy
의 버퍼를 다시 리와인드하지 못하던 버그를 수정했습니다. (I0c455, b/153249512)CameraManager
에서 지원되는 목록의 첫 번째 카메라가 항상 사용되도록 선택되지는 않는 문제가 해결되었습니다. (I4c624, b/153418028)Preview.SurfaceProvider
설정이 이전에 요청한 표면을 해제하지 않아 발생하는 간헐적 비정상 종료 문제가 해결되었습니다.“java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”
(I8e4e7, b/155936225)
Camera-Camera2 버전 1.0.0-beta03
2020년 4월 15일
androidx.camera:camera-camera2:1.0.0-beta03
이 출시되었습니다. 버전 1.0.0-beta03에 포함된 커밋을 확인하세요.
버그 수정
camera-core
출시를 지원하도록 수정했습니다.
Camera-Core 버전 1.0.0-beta03
2020년 4월 15일
androidx.camera:camera-core:1.0.0-beta03
이 출시되었습니다. 버전 1.0.0-beta03에 포함된 커밋을 확인하세요.
버그 수정
UseCase
없이bindToLifecycle()
을 호출하면 예외가 발생하는 beta03에서 회귀를 수정했습니다. 이에 따라UseCase
를 결합하지 않고Camera
를 가져올 수 없습니다.
Camera-Camera2 버전 1.0.0-beta02
2020년 4월 1일
androidx.camera:camera-camera2:1.0.0-beta02
가 출시되었습니다. 버전 1.0.0-beta02에 포함된 커밋을 확인하세요.
버그 수정
ImageCapture
에서 생성되는ImageProxy
의ImageInfo.getRotationDegrees()
를 EXIF 방향 회전 값과 일치하도록 수정했습니다. (Id4281, b/150802561)- 기본 CameraX/Camera2 구현을 사용하기 위해 더 이상
build.gradle
내의 CameraX 종속 항목을 명시적으로 정렬할 필요가 없습니다. 종속 항목을 엄격히 선언해야 하는 경우 이제 모든 CameraX 종속 항목을 빌드 파일에 포함할 수 있습니다. (I46e88) - 디스플레이 크기가 640x480보다 작은 기기에서 발생하는
IllegalArgumentException
문제를 수정했습니다. (Ife3f2, b/150506192) - 성공적으로 결합되는 경우 UseCase만 수정하도록
bindToLifecycle
을 수정했습니다. 이전에는 해상도를 계산하기 위해bindToLifecycle
을 호출하면 UseCase가 업데이트되었습니다. 이제는 계산하기 위해 UseCase를 업데이트할 필요가 없습니다. (I78d9e)
Camera-Core 버전 1.0.0-beta02
2020년 4월 1일
androidx.camera:camera-core:1.0.0-beta02
가 출시되었습니다. 버전 1.0.0-beta02에 포함된 커밋을 확인하세요.
버그 수정
ImageCapture
에서 생성되는ImageProxy
의ImageInfo.getRotationDegrees()
를 EXIF 방향 회전 값과 일치하도록 수정했습니다. (Id4281, b/150802561)- 성공적으로 결합되는 경우 UseCase만 수정하도록
bindToLifecycle
을 수정했습니다. 이전에는 해상도를 계산하기 위해bindToLifecycle
을 호출하면 UseCase가 업데이트되었습니다. 이제는 계산하기 위해 UseCase를 업데이트할 필요가 없습니다. (I78d9e) Preview.setSurfaceProvider()
를 두 번 이상 호출한 후 미리보기 표시 영역이 변경되면Preview
사용 사례의 캡처 세션이 업데이트되지 않는 문제를 해결했습니다.
Camera-Camera2 버전 1.0.0-beta01
2020년 2월 26일
androidx.camera:camera-camera2:1.0.0-beta01
이 출시되었습니다. 버전 1.0.0-beta01에 포함된 커밋을 확인하세요.
버그 수정
SurfaceRequest.setSurface(Surface)
의 이름이SurfaceRequest.provideSurface(Surface)
로,SurfaceRequest.setWillNotComplete()
의 이름이SurfaceRequest.willNotProvideSurface()
로 변경되었습니다. (I224fe)ImageCapture.setTargetRotation()
을 사용하여 타겟 회전 값을 변경하면 저장된 이미지의 가로세로 비율이 올바르지 않은 문제를 수정했습니다. (I474ea, b/148763432)- 기본
CameraXConfig
제공자를 설정하는 플래그를 유지함으로써 ProGuard가 사용 설정된 앱 변형의 초기화를 수정했습니다. (I2d6c1)
Camera-Core 버전 1.0.0-beta01
2020년 2월 26일
androidx.camera:camera-core:1.0.0-beta01
이 출시되었습니다. 버전 1.0.0-beta01에 포함된 커밋을 확인하세요.
API 변경사항
SurfaceRequest.provideSurface()
의ListenableFuture
를Executor
및Callback
으로 대체했습니다. 이렇게 하면 더 이상provideSurface()
에서 예외를 처리할 필요가 없으므로 API가 간소화되고provideSurface()
콜백을 취소할 수 없게 됩니다. 이전 기기에서 표시 영역을 너무 일찍 해제하여 비정상 종료가 발생하는 것을 방지하기 위한 것입니다. 이제 제공된Surface
가SurfaceRequest
에서 사용되는 방법을 추적하는 데SurfaceRequest.Result
객체를 사용합니다. (I7854b)SurfaceRequest.setSurface(Surface)
의 이름이SurfaceRequest.provideSurface(Surface)
로,SurfaceRequest.setWillNotComplete()
의 이름이SurfaceRequest.willNotProvideSurface()
로 변경되었습니다. (I224fe)
버그 수정
ImageCapture.setTargetRotation()
을 사용하여 타겟 회전 값을 변경하면 저장된 이미지의 가로세로 비율이 올바르지 않은 문제를 수정했습니다. (I474ea, b/148763432)- 기본
CameraXConfig
제공자를 설정하는 플래그를 유지함으로써 ProGuard가 사용 설정된 앱 변형의 초기화를 수정했습니다. (I2d6c1) - 가능한 값을 포함하도록 플래시 모드 API 관련 문서를 업데이트했습니다. (I4a3ec)
Camera-Camera2 버전 1.0.0-alpha10
2020년 2월 10일
androidx.camera:camera-camera2:1.0.0-alpha10
이 출시되었습니다. 버전 1.0.0-alpha10에 포함된 커밋을 확인하세요.
버그 수정
Surface
를 Camera2에서 사용하는 동안에만 유지하여INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
기기에서 안정성을 개선했습니다. (I9dac2)CONTROL_AE_TARGET_FPS_RANGE
를 올바르게 조정하여 기존 기기에서 과소 노출되는 미리보기 문제를 수정했습니다. (1224638)
Camera-Core 버전 1.0.0-alpha10
2020년 2월 10일
androidx.camera:camera-core:1.0.0-alpha10
이 출시되었습니다. 버전 1.0.0-alpha10에 포함된 커밋을 확인하세요.
API 변경사항
- 이미지를
Uri
및OutputStream
에 저장할 수 있도록ImageCapture
를 업데이트했습니다. 오버로드된takePicture
메서드를 하나로 결합했습니다. 표준 예제로Uri
를 사용하도록 테스트 앱을 업데이트했습니다. (Ia3bec) Preview.PreviewSurfaceProvider
의 이름이Preview.SurfaceProvider
로 변경되었습니다.SurfaceProvider
를 사용할 때 개발자는 더 이상 자체ListenableFuture
를 만들 필요가 없으며, 이제 새SurfaceRequest
객체를 통해Surface
가 제공됩니다.Preview
를PreviewView
와 같은 다른 클래스와 페어링할 때 오용될 가능성이 있는Preview.getPreviewSurfaceProvider()
메서드를 삭제했습니다. (I20105)getTargetRotation()
및getTargetName()
을Preview
에 추가했습니다. (Iceee7)ImageAnalysis
에getTargetRotation()
,getBackpressureStrategy()
,getImageQueueDepth()
를 추가했습니다. (I9d6d9)ImageCapture()
에getTargetRotation()
및getCaptureMode()
를 추가했습니다. (I5bc17)- 이전에
ImageCapture.OnImageSavedCallback.onError()
및ImageCapture.OnImageCapturedCallback.onError()
에 전달된 인수를 단일 인수ImageCaptureException
으로 대체했습니다. 이 인수에는 여전히 이전에 전달된 모든 정보가 포함되어 있습니다. - 이전에
ImageCapture.OnImageSavedCallback.onImageSaved()
에 전달된 파일 인수를 삭제했습니다. (I750d2) - 이제
Preview
및ImageCapture
클래스가 최종으로 표시됩니다. (I2500b) ZoomState
인스턴스를 반환하는getZoomState()
에CameraInfo
의getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
,getLinearZoom()
메서드를 병합하여 API를 업데이트했습니다. (Ib19fe)- API 필드
OPTION_TARGET_CLASS
및OPTION_TARGET_NAME
을CameraXConfig
에서 삭제했습니다. 내부 라이브러리 전용이기 때문입니다.CameraXConfig.Builder
의 생성자를 삭제했습니다. (I96912) - CameraX를 초기화하려면 앱이
Application
을 확장해야 한다는 요구사항을 삭제했습니다. 이제 애플리케이션의build.gradle
에camera-camera2
아티팩트가 포함되어 있는 한 CameraX는 기본 Camera2 구성으로 초기화됩니다. (I58ff5) (b/146923574)
Camera-Camera2 버전 1.0.0-alpha09
2020년 1월 22일
androidx.camera:camera-camera2:1.0.0-alpha09
가 출시되었습니다. 버전 1.0.0-alpha09에 포함된 커밋을 확인하세요.
API 변경사항
Camera2 카메라 ID를 추출하기 위한 camera2 interop 경로를 추가했습니다.
Camera2CameraInfo.extractCameraId()
를 사용하여CameraInfo
에서 카메라 ID를 추출할 수 있습니다. 다음 코드 샘플은 이를 사용하는 방법을 보여줍니다.Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
Camera2CameraInfo
클래스에는ExperimentalCamera2Interop
markerClass가 필요합니다.
Camera-Core 버전 1.0.0-alpha09
2020년 1월 22일
androidx.camera:camera-core:1.0.0-alpha09
가 출시되었습니다. 버전 1.0.0-alpha09에 포함된 커밋을 확인하세요.
API 변경사항
SurfaceOrientedMeteringPointFactory
매개변수useCaseForSurface
의 이름이useCaseForAspectRatio
로 변경되었으며 참조 문서를 확장했습니다.FocusMeteringAction.Builder.from()
메서드가 생성자FocusMeteringAction.Builder()
로 대체되었습니다.DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)
이 삭제되었습니다. 애플리케이션은Display
매개변수를 취하는 생성자를 사용하고 현재 화면에 전달해야 합니다.MeteringMode
및 3A 플래그와 관련된 포커스 및 측정 API와Display
매개변수 사용을 위해 Javadoc이 개선되었습니다.setZoomRatio
및setLinearZoom
의 참조 문서를 확장했습니다.
버그 수정
- 카메라를 닫고 열 때 '전제 조건' 검사에 오류가 발생하는 문제를 해결했습니다.
- 토치 또는 확대/축소 API를 사용할 때 발생할 수 있는
ConcurrentModificationException
을 해결했습니다. - mod16 크기를 사용할 수 있을 때 요청된 해상도에 더 근접한 해상도를 선택할 수 없는 문제를 이제 해결했습니다.
- 이제
startFocusMetering
및cancelFocusMetering
API가 문서에 명시된 대로 작동하고 타이밍이 정확하며 오류가 발생할 경우 오류를 반환합니다. - 특정 타겟 해상도가 상응하는 크기를 지원하지 않는 기기에서 자르기 가로세로 비율과 함께 요청될 때 발생하는 문제를 해결했습니다. 이제는 원래 요청을 한정하기에 충분한 해상도(사용 가능한 경우)의 잘림 없는 크기가 선택됩니다.
Camera-Camera2 버전 1.0.0-alpha08
2019년 12월 18일
androidx.camera:camera-camera2:1.0.0-alpha08
이 출시되었습니다. 버전 1.0.0-alpha08에 포함된 커밋을 확인하세요.
알려진 문제
- Camera2 interop 사용 시 모든 Camera2 캡처 요청 옵션이 작동하는 것은 아닙니다. 요청된 옵션이 지원되지 않으면 세션이 시작하지 않고
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
과 같은 오류가 발생할 수 있습니다.
버그 수정
- API 수준 21 및 22에서 카메라를 회전하거나 전환하면 검은색 미리보기 화면이 표시되는 문제를 해결했습니다.
API 변경사항
- 실험용: Camera ID 추출을 위한 camera2 interop 경로가 추가되었습니다.
Camera-Core 버전 1.0.0-alpha08
2019년 12월 18일
androidx.camera:camera-core:1.0.0-alpha08
이 출시되었습니다. 버전 1.0.0-alpha08에 포함된 커밋을 확인하세요.
알려진 문제
PreviewView
또는CameraView
를 사용하는 앱에서 가로세로 비율 미리보기가 정확하지 않을 수 있습니다. 이 현상은 Pixel2와 같은 일부 FULL 기기에서 일시중지하거나 다시 시작한 후에 발생합니다.
버그 수정
FocusMeteringAction
및CameraControl
의 문서가 업데이트되었습니다.enableTorch()
및getTorchState()
에TorchControl
이 구현되었습니다.
API 변경사항
- IntDef를 숨기고 IntDef 상수를 IntDef 정의 외부로 옮겼습니다.
rotationDegrees
를 클래스OnImageCaptureCallback
에서ImageInfo
로 옮겼습니다.rotationDegrees
를 클래스Analyzer
에서ImageInfo
로 옮겼습니다.
Camera-Camera2 버전 1.0.0-alpha07
2019년 12월 4일
androidx.camera:camera-camera2:1.0.0-alpha07
이 출시되었습니다. camera-camera2의 버전 1.0.0-alpha07에 포함된 커밋을 확인하세요.
- 이제 CameraX용 Camera2 기반 구현을 초기화하고 구성할 때
Camera2Config
를 사용할 수 있습니다. 초기화에 이 커밋을 사용하는 방법의 세부 정보는 출시 노트의 camera-core 섹션을 참고하세요. - 이제 camera2 interop가 기능 측면에서 실험용으로 표시되고 별도의 패키지
androidx.camera.camera2.interop.
로 이동되었습니다.
Camera-Core 버전 1.0.0-alpha07
2019년 12월 4일
androidx.camera:camera-core:1.0.0-alpha07
이 출시되었습니다. camera-core의 버전 1.0.0-alpha07에 포함된 커밋을 확인하세요.
베타를 준비하고 있기 때문에 이 알파 버전에 상당한 변화가 있습니다. 변경사항을 검토하고 CameraX Google 그룹스에 의견을 공유해 주세요. Play 스토어에 있는 앱에서 CameraX를 사용하는 개발자는 애플리케이션 내에서 라이브러리를 업그레이드하기 전에 공식 베타 버전을 기다리는 것이 좋습니다.
API 변경사항
중요: CameraX 초기화가 변경되었습니다. 애플리케이션은
CameraXConfig.Provider
를 구현하고androidx.camera.camera2
에서 제공되는 기본값Camera2Config
를 사용해야 합니다. 일반적인 사용법은 다음과 같습니다.import androidx.camera.camera2.Camera2Config import androidx.camera.core.CameraXConfig public class MyCameraXApplication : Application(), CameraXConfig.Provider { override fun getCameraXConfig(): CameraXConfig { return Camera2Config.defaultConfig(this) } }
CameraX 클래스를 삭제했습니다. 이전에 CameraX 클래스 호출에서 제공된
bindToLifecycle()
,unbind()
,unbindAll()
,isBound()
및hasCamera()
는 이제ProcessCameraProvider
를 통해 사용 가능합니다.ProcessCameraProvider
의 프로세스별 인스턴스는 정적 메서드ProcessCameraProvider.getInstance()
를 사용하여 비동기식으로 가져오게 됩니다. 이 인스턴스는 완료 시ProcessCameraProvider
를 제공하는 Listenable Future를 반환합니다. 다음은onCreate()
에 일반적으로 사용된 경우입니다. 나중에 활동의 수명 주기에서getInstance()
를 호출하여 초기화 지연 시간을 이후 시간(예를 들어, 사용자 작업에 의해 카메라 UI가 열리는 시점)으로 지연시킬 수 있습니다.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); }
getInstance()
에 의해 반환된ListenableFuture
에 리스너를 추가할 수 있습니다. 이렇게 하면Future.get()
을 차단하지 않고Future
에서 카메라 제공업체를 검색할 수 있습니다.cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))
이제 카메라는 사용 사례별로 선택되지 않고 카메라 선택기로 선택됩니다.
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
CameraProvider.bindToLifecycle
에는 수명 주기 소유자, 카메라 선택기 및 사용 사례가 지정됩니다. 그런 다음 이러한 항목은 지정된 수명 주기 소유자에 연결되고 선택된 카메라에 맞게 실행됩니다.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)
사용 사례 'Config' 클래스가 삭제되었습니다. 대신 사용 사례를 직접 빌드하고 각 사용 사례 빌더에서 옵션을 설정하세요. 예:
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
Android 권장사항을 적용하기 위해 애플리케이션에서 만들고 관리하는 영역을 허용하도록 미리보기 사용 사례가 업데이트되었습니다. camera-view 패키지에 제공된
PreviewView
뷰 클래스를 사용하는 것이 좋습니다.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
앱 관리 영역을 연결하는 방법에 관한 문서를 참고하세요. 이러한 경우 앱이 영역의 수명 주기를 관리합니다.
중요:
ImageAnalysis
분석기 메서드 구현에서는 수신된 이미지를 사용하고 나서 그 이미지에서image.close()
를 호출해야 합니다. 그러지 않으면 백 프레셔에 따라 새 이미지가 수신되지 않거나 카메라가 멈출 수 있습니다. 세부정보는 참조 문서를 참고하세요.ImageAnalysis ImageReaderMode
가 이제 백 프레셔 전략intdef
로 변경되었습니다.ImageProxy.getImage()
는 실험용으로 표시됩니다. 애플리케이션은@androidx.camera.core.ExperimentalGetImage
등을 통해 용도를 주석 처리해야 합니다.Analyzer
의UIThread
주석 필수사항이 삭제되었습니다.분석기 삭제 용도로
ImageAnalysis.clearAnalyzer()
함수가 추가되었습니다.메서드가 2개 이상 있는 리스너는 이름이 Callback으로 변경되었습니다.
ImageCapture.OnImageCapturedListener
는 이제ImageCapture.OnImageCapturedCallback
입니다.ImageCapture.OnImageSavedListener
는 이제ImageCapture.OnImageSavedCallback
입니다.VideoCapture.OnVideoSavedListener
는 이제VideoCapture.OnVideoSavedCallback
입니다.
Enum이 IntDef로 변경되었습니다.
확대/축소 컨트롤이 추가되었습니다.
CameraControl.setLinearZoom()
CameraControl.setZoomRatio()
CameraInfo.getLinearZoom()
CameraInfo.getMaxZoomRatio()
CameraInfo.getZoomRatio()
플래시/토치 하드웨어가 있는지 확인하기 위해
CameraInfo.hasFlashUnit()
가 추가되었습니다.CameraInfo.isFlashAvailable()
를 삭제했습니다. 토치는 플래시 기능보다 우선 적용됩니다. 세부정보는 참조 문서에서 확인할 수 있습니다.ImageCapture.Metadata
필드가 get/set/is 접근자로 대체되었습니다.이제
startFocusMetering
및cancelFocusMetering
은 호출의 비동기 작업을 나타내는ListenableFutures
를 반환합니다.이제
MeteringPoints
는 측정 작업의 핸들로 기능하고 팩토리에서 생성됩니다. 앱은 맞춤 팩토리가 아닌 기존 팩토리를 사용해야 합니다.
해결된 문제
- 앞서 일시중지하여 사진 찍기를 보류한 후 다시 사진을 찍을 때 발생하는 문제가 해결되었습니다.
- 알려진 문제: 플래시 장치가 없어도
CameraControl.enableTorch()
가 작동하지만 반환된ListenableFuture<Void>
가 항상 바로complete(success)
future가 됩니다. 향후 버전에서 이를 최종 동작으로 수정할 것입니다. 즉, 플래시 장치가 없는 경우에는enableTorch(true)
에 즉시 실패하고(요청을CaptureSession
에 전송하지 않음)TorchState
가 꺼진 상태로 유지됩니다. - 알려진 문제:
startFocusAndMetering
및cancelFocusAndMetering
이 포커스 측정을 시작하고 취소하지만completed (success)
future를 즉시 반환합니다. 이는 문서에 기록된 동작이 아닙니다.ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()
의FocusMeteringResult
는 가짜 결과(isFocusSuccessful()
)이고 항상 'false'입니다. 이는 문서에 기록된 의도된 동작과 다릅니다. - 알려진 문제:
PreviewView
터치 이벤트에 사용할 Metering Point Factory를 현재 개발 중입니다. 이제 맞춤 관리되는 영역을 연결하는 앱에서 기존의 Metering Point Factory를 사용할 수 있으며, 그러지 않은 경우에는PreviewView
에 터치 포커스 기능을 사용할 수 없습니다.
Camera-Camera2 및 Camera-Core 버전 1.0.0-alpha06
2019년 10월 9일
androidx.camera:camera-camera2:1.0.0-alpha06
및 androidx.camera:camera-core:1.0.0-alpha06
이 출시되었습니다. camera-camera2:1.0.0-alpha06
에 포함된 커밋과 camera-core:1.0.0-alpha06
에 포함된 커밋을 확인하세요.
새로운 기능
가로세로 비율 설정 변경사항:
setTargetAspectRatioMode()
가 추가되었으며 enum 인수가 허용됩니다. 이에 따라 임의의 가로세로 비율 대신RATIO_4_3
또는RATIO_16_9
옵션을 사용하여 가로세로 비율 모드가 설정됩니다. 카메라에서 임의의 가로세로 비율이 아닌 특정 가로세로 비율만 제공된다는 사실을 반영했습니다.- 현재 사용 가능한 비율은 16:9 및 4:3입니다. 1:1의 경우 카메라에서 사용할 수 있는 기기가 한정되어 있고 해상도도 제한됩니다. 1:1 인터페이스 또는 처리를 설계하는 애플리케이션은 더 유연한 16:9 또는 4:3 옵션을 사용하고 디스플레이를 자르거나 하위 영역을 처리해야 합니다.
- 이 가로세로 비율은 최대 센서 영역을 사용하도록 지정됩니다.
- 사용 사례 출력에서 타겟팅하는 가로세로 비율을 반환하도록 사용 사례 구성 API에
getTargetAspectRatio()
를 추가했습니다. - ImageCapture의 메서드
setTargetAspectRatio(Rational aspectRatio)
가setTargetAspectRatioCustom(Rational aspectRatio)
으로 변경되었습니다. 설정되면 그에 따라 ImageCapture 출력이 잘립니다.
Executor API
- 다음 함수는 실행자 매개변수를 허용하며, 이 매개변수에 따라 앱은 함수가 실행되는 실행자를 제어할 수 있습니다.
Preview.setOnPreviewOutputUpdateListener()
API입니다. 실행자가 함수에 없으면 기본 스레드에서 실행됩니다.Preview.setOnPreviewOutputUpdateListener
FocusMeteringAction.Builder.setAutoFocusCallback
ImageAnalysis.setAnalyzer
ImageCapture.takePicture
CameraView.takePicture
CameraView.startRecording
VideoCapture.startRecording
Flash Available API 및 Sensor Rotation API 확인에 CameraInfo 추가
CameraInfo
및getCameraInfo
메서드가 추가되어 앱에서 렌즈 방향 CameraInfo가 있는지, 카메라에 플래시를 사용할 수 있는지 여부를 확인할 수 있습니다. 예: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); }
CameraInfo.getSensorRotationDegrees()
가 추가되었습니다. 기기의 자연스러운 방향을 기준으로 또는 편의상 표면 회전에서 설명하는 방향(자연스러운 방향과 비교한 방향 설명)을 기준으로 카메라 센서 방향을 제공합니다.
API 변경사항 및 버그 수정
- 가로세로 비율: 각 사용 사례에서 애플리케이션은
setTargetResolution()
또는setTargetAspectRatio()
중 하나면 호출해야 합니다. 동일한 빌더에서 두 메서드를 호출하면 오류가 반환됩니다.- 일반적으로 애플리케이션의 UI 디자인에 따라
setTargetAspectRatio()
를 사용하는 것이 좋습니다. 특정 해상도는 사용 사례를 기반으로 합니다. 예를 들어 미리보기는 화면 해상도에 근접하고 이미지 캡처는 고해상도 이미지를 제공합니다. 자세한 내용은 자동 해상도 표를 참고하세요. - 최소 해상도(계산 저장을 위해) 또는 최대 해상도(세부정보 처리를 위해)가 필요한 경우와 같은 더 구체적인 사례에는
setTargetResolution()
을 사용합니다.
- 일반적으로 애플리케이션의 UI 디자인에 따라
- Executor API: 사용 사례 구성 API에서
setCallbackHandler()
호출을 삭제했습니다. 대신 애플리케이션은 콜백을 설정하는 다양한 다른 API에서 실행자를 매개변수로 설정할 수 있습니다. - 다양한 함수의 null 주석을 업데이트했습니다.
- 카메라를 열 때
java.lang.IllegalStateException at Camera$StateCallback.onError
를 일으키는 문제를 해결했습니다. - 앱에서 더 큰 해상도나 기본 해상도를 요청했을 때 너무 낮은(640x480 미만) 해상도가 선택되어 고르지 않거나 흐릿한 미리보기 이미지가 표시되는 문제를 해결했습니다. 구체적으로 더 낮은 해상도가 필요한 애플리케이션은 해상도를 명시적으로 요청할 수 있습니다.
- 다른 카메라 애플리케이션을 실행한 인텐트에서 돌아온 후 카메라가 검은색 화면을 표시하는(카메라를 시작하지 못함) 문제를 해결했습니다.
- 앱을 반복해서 시작하거나 중지할 때 다음 오류를 일으키는 버그를 수정했습니다.
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
- ImageAnalysis를 사용 중지할 때 발생하는 다음 오류를 해결했습니다.
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
- 카메라 연결 해제 흐름에 관한 테스트를 추가했습니다.
- 카메라 테스트를 연달아 실행할 때 테스트 시스템의 안정성이 개선되었습니다.
Camera-Camera2 및 Camera-Core 버전 1.0.0-alpha05
2019년 9월 5일
androidx.camera:camera-camera2:1.0.0-alpha05
및 androidx.camera:camera-core:1.0.0-alpha05
가 출시되었습니다. camera-camera2:1.0.0-alpha05에 포함된 커밋과 camera-core:1.0.0-alpha05에 포함된 커밋을 확인하세요.
API 변경사항: 사용 사례 오류 변수 이름 변경:
ImageCapture.UseCaseError
에서ImageCapture.ImageCaptureError
로 이름 변경VideoCapture.UseCaseError
에서VideoCapture.VideoCaptureError
로 이름 변경
CameraControl
API 및 Tap-to-Focus API를 추가했습니다.CameraX에서 렌즈 방향으로 선택된 카메라의
CameraControl
을 가져오는 API를 추가했습니다.CameraX.getCameraControl(LensFacing lensFacing)
탭하여 초점 맞추기를 실행하기 위해
MeteringPointFactory
,MeteringPoint
,MeteringMode
,FocusMeteringAction
을 추가했습니다.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();
초점 측정을 시작하고 취소하는
CameraControl
API를 추가했습니다.getCameraControl(lensFacing).startFocusAndMetering(action);
getCameraControl(lensFacing).cancelFocusAndMetering();
뷰 클래스를 기준으로 탭 좌표를 센서 좌표로 변환하도록 지원하는 Metering Point Factory용 API를 추가했습니다.
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);
MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
기본 (UI) 스레드에서 다음 메서드를 강제 호출하며 그러지 않는 경우
IllegalStateException
이 발생합니다. 향후 버전에서는 다른 스레드에 사용하도록 허용하고 직렬화를 보장합니다.CameraX.bindToLifecycle()
CameraX.unbind()
CameraX.unbindAll()
ImageAnalysis.setAnalyzer()
ImageAnalysis.getAnalyzer()
ImageAnalysis.removeAnalyzer()
Preview.removePreviewOutputListener()
Preview.getOnPreviewOutputUpdateListener()
Preview.setOnPreviewOutputUpdateListener()
이제 다양한 구성 설정에서 null 매개변수를 사용할 수 있으며 상응하는 getter는 null을 반환할 수 있습니다.
AF/AE/AWB 설정을 지원하지 않는 에뮬레이터에서 테스트할 때 문제를 해결했습니다.
회전 시 이미지를 분석하는 동안 비정상 종료되는 버그를 수정했습니다.
회전하거나 전면 카메라와 후면 카메라 사이를 전환한 후 시작할 때 미리보기가 검은색으로 나타나는(카메라 데이터가 없음) 버그를 수정했습니다.
여러 개의 동시 이미지 분석 사용 사례에 관한 테스트를 삭제했습니다. 호환성을 위해 애플리케이션은 단일 이미지 분석 사용 사례만 추가해야 합니다.
카메라 테스트 도구 모음에 가짜 카메라에 관한 초기 robolectric 테스트를 추가했습니다(작업 진행 중).
적용 범위가 불명확하거나 오해의 소지가 있어 Camera2Inititalizer 테스트를 삭제했습니다.
Camera-Camera2 및 Camera-Core 버전 1.0.0-alpha04
2019년 8월 7일
androidx.camera:camera-camera2:1.0.0-alpha04
및 androidx.camera:camera-core:1.0.0-alpha04
가 출시되었습니다. 버전 1.0.0-alpha04에 포함된 커밋을 확인하세요.
새로운 기능
가로세로 비율과 해상도 선택 변경
CameraX의 목표는 카메라 세션을 성공적으로 초기화하는 것입니다. 즉, CameraX는 첫 목표로 캡처 세션을 시작하기 위해 기기 기능에 따라 해상도/가로세로 비율을 절충하므로 정확한 요청이 처리되지 않을 수 있습니다. 원인은 다음과 같을 수 있습니다.
- 기기에서 요청된 해상도를 지원하지 않습니다.
- 올바르게 작동하기 위해 특정 해상도를 사용해야 하는 LEGACY 기기 등에서 호환성 문제가 발생합니다.
- 일부 기기에서 특정 형식이 특정 가로세로 비율에서만 사용될 수 있습니다.
- JPEG 또는 동영상 인코딩의 경우 'nearest mod16'이 선호됩니다.
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
을 참고하세요.
CameraX는 세션을 만들고 관리하지만 항상 코드의 사용 사례 출력에서 반환된 이미지 크기를 확인하고 그에 따라 조정해야 합니다.
API를 더 명확하게 하기 위해 해상도와 가로세로 비율을 설정하는 데 일부 변경사항이 있습니다.
- 아무것도 설정되지 않으면 이제 미리보기 사용 사례에서 기본 4:3 가로세로 비율인 것으로 간주합니다.
- CameraX가 기기 기능에 기반해 요청된 해상도 및 가로세로 비율의 변경사항을 내부적으로 고려할 때 우선
setTargetAspectRatio
또는setTargetResolution
호출에서 결정된 대로 동일한 가로세로 비율을 유지하려고 합니다. - 해상도의 'Nearest mod16' 버전은 동일한 가로세로 비율로 간주됩니다.
ImageAnalysis 비차단 모드
- 이제
ImageReaderMode.ACQUIRE_LATEST_IMAGE
의 동작이 비차단입니다. 이것은 대기열의 최신 이미지를 획득하지만 사용하지 않는 이미지를 계속 삭제하여 카메라 파이프라인이 차단되지 않도록 합니다. - 분석기는 파이프라인을 멈추지 않고 단일 이미지를 무기한으로 보유할 수 있습니다.
- 애플리케이션이 차단된 executor를 제공하면 ImageAnalysis 사용 사례가 차단됩니다.
- 기본 executor 세트는 내부적으로 비차단 executor로 작동합니다.
버그 수정
- 자동 포커스, 자동 노출, 자동 화이트밸런스가 없는 기기에서 이미지를 캡처할 때 3A 컨버전스를 기다리는 시간 제한 문제를 해결했습니다.
- ImageCapture로 빠르게 사진을 찍을 때 발생하는 문제를 해결했습니다. 다음 오류를 수정했습니다.
java.lang.IllegalStateException: maxImages (2) has already been acquired
- 사용 사례에 관해
setLensFacing
이 호출되지 않아java.lang.IllegalArgumentException: Unable to get camera ID for use case
가 발생하는 문제를 해결했습니다. - LEGACY 기기에 최대 JPEG 해상도로 특정 가로세로 비율이 필요한 문제를 해결했습니다.
- 카메라가 열려있는 동안 앱을 백그라운드로 전환할 때 발생하는 문제를 해결했습니다.
- API < 25에서 발생하는 문제를 해결해
checkAndUpdateEglState: invalid current EGLDisplay
오류를 없앴습니다. - 확장 프로그램을 사용 설정하고 시작한 후 미리보기를 바인딩 해제할 때 발생하는 문제를 해결했습니다.
- 이제 카메라 뷰 및 카메라 확장 프로그램 빌드 아티팩트가 알파 버전으로 게시됩니다.
Camera-Camera2 및 Camera-Core 버전 1.0.0-alpha03
2019년 7월 2일
androidx.camera:camera-core:1.0.0-alpha03
및 androidx.camera:camera-camera2:1.0.0-alpha03
이 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.
API 변경사항
- setTarget 구성 호출에서 'target'에 관한 javadoc 설명을 추가했습니다.
Camera-Core
- 빠른 열기/닫기 또는 바인딩/바인딩 해제 시 구성되지 않은 입력/출력 표면 비정상 종료를 수정했습니다.
- 새로운 선물 구현으로 이동합니다.
- 테스트 수정으로 테스트가 더 강력해집니다.
- 이제 핵심 통합 테스트가 사진의 캡처 시간을 보여줍니다.
- Executor를 위한 내부 compat 클래스를 개발했습니다.
- 타이밍 테스트 앱 캡처 이미지는 이전이 완료되고 안정성이 개선되기를 기다립니다.
확장 프로그램
- 버전 관리 확인을 추가합니다.
- 확장 프로그램 이벤트 콜백을 테스트 적용 범위에 추가합니다.
- 내부적으로 상응하는 이미지 및 메타 데이터를 개선합니다.
- 테스트 앱에서 모드 전환으로 수정합니다.
Camera-Camera2 및 Camera-Core 버전 1.0.0-alpha02
2019년 6월 5일
androidx.camera:camera-core:1.0.0-alpha02
및 androidx.camera:camera-camera2:1.0.0-alpha02
가 출시되었습니다. 버전 1.0.0-alpha02에 포함된 커밋을 확인하세요.
버그 수정
- 에뮬레이터를 사용할 때 발생하는 div by zero 문제를 해결했습니다.
- 사용 사례를 빠르게 바인딩 해제 및 리바인딩하는 동안 사진을 빠르게 찍을 때 일부 기기에서 발생하는 NullPointerException/Surface Abandoned 오류를 수정했습니다.
- 캡처 요청 업데이트가 모든 표면에 일관되게 영향을 미치도록 내부 문제를 해결했습니다.
- 새로운 앱 인스턴스에서 사용 사례를 다시 시작할 때 안정성을 개선합니다.
- API에서 실행 프로그램 지원을 준비하기 위해 내부 아키텍처를 변경합니다.
- CameraX 클래스 및 수명 주기 관리에서 Javadoc 설명을 추가합니다.
- Antelope 성능 테스트 앱에 계측 테스트를 추가했습니다.
- 앱 Proguard 구성에서 '-keepattributes Signature'를 사용할 필요가 없습니다.
Camera-Camera2 및 Camera-Core 1.0.0-alpha01
2019년 5월 7일
androidx.camera:camera-core:1.0.0-alpha01
및 androidx.camera:camera-camera2:1.0.0-alpha01
이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.
Camera-Lifecycle 버전 1.0.0-beta11
2020년 10월 14일
androidx.camera:camera-lifecycle:1.0.0-beta11
이 출시되었습니다. 버전 1.0.0-beta11에 포함된 커밋을 확인하세요.
버그 수정
- targetRotation이 Builder 또는 UseCase에 설정되지 않은 경우
<UseCase>.getTargetRotation()
이 카메라 인스턴스에 연결되기 전에 호출되면Surface.ROTATION_0
을 반환합니다. (I80fcd)
Camera-Lifecycle 버전 1.0.0-beta10
2020년 9월 23일
androidx.camera:camera-lifecycle:1.0.0-beta10
이 출시되었습니다. 버전 1.0.0-beta10에 포함된 커밋을 확인하세요.
버그 수정
- Camera-Core 1.0.0-beta10을 지원하는 버전
Camera-Lifecycle 버전 1.0.0-beta09
2020년 9월 16일
androidx.camera:camera-lifecycle:1.0.0-beta09
가 출시되었습니다. 버전 1.0.0-beta09에 포함된 커밋을 확인하세요.
Camera-Lifecycle 버전 1.0.0-beta08
2020년 8월 19일
androidx.camera:camera-lifecycle:1.0.0-beta08
이 출시되었습니다. 버전 1.0.0-beta08에 포함된 커밋을 확인하세요.
버그 수정
Context.getApplicationContext()
에서 애플리케이션 객체를 반환하지 않는 컨텍스트를 사용할 때 초기화가 더 이상 비정상 종료되지 않습니다. (I3d3c9, b/160817073)
Camera-Lifecycle 버전 1.0.0-beta07
2020년 7월 22일
androidx.camera:camera-lifecycle:1.0.0-beta07
이 출시되었습니다. 버전 1.0.0-beta07에 포함된 커밋을 확인하세요.
Camera-Lifecycle 버전 1.0.0-beta06
2020년 6월 24일
androidx.camera:camera-lifecycle:1.0.0-beta06
이 출시되었습니다. 버전 1.0.0-beta06에 포함된 커밋을 확인하세요.
API 변경사항
- 이제 ProcessCameraProvider#getInstance()를 호출하기 전에 ProcessCameraProvider#configureInstance()로 CameraX를 구성할 수 있습니다. 이렇게 하면 앱의 애플리케이션 클래스에서 CameraXConfig.Provider를 구현하지 않고도 CameraXConfig를 맞춤설정할 수 있습니다. (Ia1a8d)
Camera-Lifecycle 버전 1.0.0-beta05
2020년 6월 10일
androidx.camera:camera-lifecycle:1.0.0-beta05
가 출시되었습니다. 버전 1.0.0-beta05에 포함된 커밋을 확인하세요.
버그 수정
- 스마트폰이 방해 금지 모드일 때 CameraX를 초기화하면 앱 시작 시 비정상적으로 종료되는 문제를 해결했습니다. 애플리케이션이 다운되는 대신
CameraUnavailableException
이 포함된InitializationException
이ListenableFuture
라는 초기화 결과로 설정됩니다. (I9909a, b/149413835)
Camera-Lifecycle 버전 1.0.0-beta04
2020년 5월 27일
androidx.camera:camera-lifecycle:1.0.0-beta04
가 출시되었습니다. 버전 1.0.0-beta04에 포함된 커밋을 확인하세요.
Camera-Lifecycle 버전 1.0.0-beta03
2020년 4월 15일
androidx.camera:camera-lifecycle:1.0.0-beta03
이 출시되었습니다. 버전 1.0.0-beta03에 포함된 커밋을 확인하세요.
버그 수정
UseCase
없이bindToLifecycle()
을 호출하면 예외가 발생하는 beta03에서 회귀를 수정했습니다. 이에 따라UseCase
를 결합하지 않고Camera
를 가져올 수 없습니다.camera-core
출시를 지원하도록 수정했습니다.
Camera-Lifecycle 버전 1.0.0-beta01
2020년 2월 26일
androidx.camera:camera-lifecycle:1.0.0-beta01
이 출시되었습니다. 버전 1.0.0-beta01에 포함된 커밋을 확인하세요.
버그 수정
- 초기화 중에
ProcessCameraProvider
를 가져올 때 기본 구성이 사용되며Application
확장은 선택사항임을 나타내도록 문서를 수정했습니다. (I5e395)
Camera-Lifecycle 버전 1.0.0-beta02
2020년 4월 1일
androidx.camera:camera-lifecycle:1.0.0-beta02
가 출시되었습니다. 버전 1.0.0-beta02에 포함된 커밋을 확인하세요.
버그 수정
camera-camera2:1.0.0-beta02
및camera-core:1.0.0-beta02
아티팩트에서 버그 수정을 지원하도록 업데이트했습니다.
Camera-Lifecycle 버전 1.0.0-alpha10
2020년 2월 10일
androidx.camera:camera-lifecycle:1.0.0-alpha10
이 출시되었습니다. 버전 1.0.0-alpha10에 포함된 커밋을 확인하세요.
API 변경사항
- BindToLifecycle, unbind 및 unbindAll 메서드에
@MainThread
주석을 추가했습니다. (I990d2)
Camera-Lifecycle 버전 1.0.0-alpha03
2020년 1월 22일
androidx.camera:camera-lifecycle:1.0.0-alpha03
이 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.
업데이트
- Camera Core 및 Camera2 변경사항을 지원하기 위한 다양한 수정 및 업데이트가 이루어졌습니다.
Camera-Lifecycle 버전 1.0.0-alpha02
2019년 12월 18일
androidx.camera:camera-lifecycle:1.0.0-alpha02
가 출시되었습니다. 버전 1.0.0-alpha02에 포함된 커밋을 확인하세요.
종속 항목 변경사항
androidx.camera:camera-core:1.0.0-alpha08
을 사용하도록 업데이트되었습니다.
Camera-Lifecycle 버전 1.0.0-alpha01
2019년 12월 4일
androidx.camera:camera-lifecycle:1.0.0-alpha01
이 출시되었습니다. camera-lifecycle의 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.
API 참고
- camera-lifecycle 아티팩트가 추가되었습니다. 이 아티팩트는
LifeCycleCameraProvider
인터페이스를 제공하고 이전 CameraX 클래스의 대다수 기능을 핵심으로 제공하는ProcessCameraProvider
라는 구현을 제공합니다. 이 아티팩트는getInstance()
메서드를 통해 얻게 됩니다. - CameraX를 사용하려면 앱에 camera-lifecycle 라이브러리가 있어야 합니다.
ProcessCameraProvider
를 사용하여 CameraX 초기화를 실행하는 방법은 camera-core 섹션의 참고사항을 확인하세요.
Camera-Extensions 및 Camera-View 버전 1.0.0
버전 1.0.0-alpha32
2021년 12월 15일
androidx.camera:camera-extensions:1.0.0-alpha32
및 androidx.camera:camera-view:1.0.0-alpha32
가 출시되었습니다. 버전 1.0.0-alpha32에 포함된 커밋을 확인하세요.
API 변경사항
- 내부 클래스/인터페이스에서 불필요한
@RequiresApi(21)
주석을 삭제했습니다. (I8e286, b/204917951) - camera-extensions 아티팩트용 API 파일을 업데이트합니다. (If683a, b/161377155)
버그 수정
VideoCapture
를 바인딩할 때 앱이 확장 프로그램 모드를 사용 설정하도록 허용하지 않습니다. CameraX 확장 프로그램은ImageCapture
와Preview
만 지원합니다.VideoCapture
는 아직 지원되지 않습니다. 앱이VideoCapture
를 바인딩하고 확장 모드를 사용 설정하면IllegalArgumentException
이 발생합니다. (I0d87b)- 결과 집합이 비어 있으면 더 이상
CameraSelector#filter
에서IllegalArgumentException
이 발생하지 않습니다. (I27804) ExtensionsManager#getInstance
API가ListenableFuture
를 반환하므로 이름을getInstanceAsync
로 바꾸었습니다. 함수 이름의 비동기 접미사로 비동기 함수임을 명확히 나타낼 수 있습니다. (I279d2)- 사용자가
ImageCapture
사용 사례에서 지원되는 크기를 알 수 없고 반환된 지연 시간 정보가 최대 캡처 출력 크기인지 또는 입력 해상도 매개변수인지 구별할 수 없으므로ExtensionsManager#getEstimatedCaptureLatencyRange
API에서 해상도 매개변수를 삭제합니다. (I74bb2) ExtensionsManager
함수의CameraProvider
매개변수를getInstance()
API로 이동합니다. 따라서 사용자가ExtensionsManager
함수를 호출할 때마다CameraProvider
매개변수를 입력하지 않아도 됩니다. (Ic7e48)
버전 1.0.0-alpha31
2021년 11월 17일
androidx.camera:camera-extensions:1.0.0-alpha31
및 androidx.camera:camera-view:1.0.0-alpha31
이 출시되었습니다. 버전 1.0.0-alpha31에 포함된 커밋을 확인하세요.
API 변경사항
- CameraSelector를 기준으로 CameraInfos 목록을 필터링하도록 CameraSelector#filter를 공개 API에 추가했습니다. (I105d0)
버그 수정
- 특정 기기에서 확장 모드를 빠르게 전환할 때 발생하는 비정상 종료 문제를 수정했습니다. (Iebbef)
버전 1.0.0-alpha30
2021년 10월 13일
androidx.camera:camera-extensions:1.0.0-alpha30
및 androidx.camera:camera-view:1.0.0-alpha30
이 출시되었습니다. 버전 1.0.0-alpha30에 포함된 커밋을 확인하세요.
API 변경사항
- 모든 CameraX 클래스에 @RequiresApi(21) 주석을 추가하고 AndroidManifest.xml에서 minSdkVersion을 삭제했습니다. 이를 통해 minSdkVersion이 21 미만이지만 API 21 이상을 사용하는 코드 경로를 조건부로 사용하려는 애플리케이션에 camera-core를 쉽게 통합할 수 있습니다. minSdkVersion 21 이상을 사용하는 애플리케이션에서는 이 변경으로 인한 별도의 작업이 필요하지 않습니다. (Ie7f2e, b/200599470)
버그 수정
- proguard가 사용 설정된 경우 발생하는 AbstractMethodError 문제를 해결했습니다. (Iae468, b/201177844)
버전 1.0.0-alpha29
2021년 9월 29일
androidx.camera:camera-extensions:1.0.0-alpha29
및 androidx.camera:camera-view:1.0.0-alpha29
가 출시되었습니다. 버전 1.0.0-alpha29에 포함된 커밋을 확인하세요.
API 변경사항
- 더 이상 실험용 API가 아니므로 ExperimentalUseCaseGroup 주석이 삭제되었습니다. (I01ef5)
RotationProvider#removeAllListeners()
를 삭제합니다. 대신RotationProvider#removeListener(...)
를 사용하세요. (Id9d4a)- RotationReceiver 클래스가 업데이트되었습니다. Listener의 set/clear가 add/remove/removeAll로 변경되었으며, 기본적으로 기본 스레드를 사용하는 setListener 변형을 삭제하고 메서드 주석을 추가했습니다. (Ib1669)
버그 수정
- 확장 모드에서 하는 일을 올바르게 표현하기 위해 ExtensionMode#BEAUTY를 FACE_RETOUCH로 이름을 바꾸었습니다. (I61f54, b/198515274)
- 하나의 활동에서 여러 CameraController 및 PreviewView를 사용할 때 예기치 않게 카메라가 닫히는 문제를 해결했습니다. (Ibfd18, b/197539358)
버전 1.0.0-alpha28
2021년 8월 18일
androidx.camera:camera-extensions:1.0.0-alpha28
및 androidx.camera:camera-view:1.0.0-alpha28
이 출시되었습니다. 버전 1.0.0-alpha28에 포함된 커밋을 확인하세요.
API 변경사항
- 더 이상 실험용 API가 아니므로 ExperimentalUseCaseGroupLifecycle 주석이 삭제되었습니다. (I17b85)
- RotationListener를 리팩터링하고 RotationProvider로 이름을 바꾸었습니다. 계속해서 동일한 기능을 제공하고 API가 조금 달라졌습니다. (Idffc5)
- TAP_TO_FOCUS_UNSUCCESSFUL을 TAP_TO_FOCUS_NOT_FOCUSED로, TAP_TO_FOCUS_SUCCESSFUL을 TAP_TO_FOCUS_FOCUSED로 이름을 바꾸었습니다. OutputSize가 완료되었습니다. (I099fa)
버그 수정
- 지원 중단된
<EffectName><UseCase>Extender
클래스, ExtensionsErrorListener 및 관련 ExtensionsManager API를 삭제했습니다. (I3b8c3)
버전 1.0.0-alpha27
2021년 7월 21일
androidx.camera:camera-extensions:1.0.0-alpha27
및 androidx.camera:camera-view:1.0.0-alpha27
이 출시되었습니다. 버전 1.0.0-alpha27에 포함된 커밋을 확인하세요.
API 변경사항
- 표시 영역 API가 시험용에서 벗어나 승격되었습니다. API의 실험용 주석을 삭제합니다. (I717ea)
CoordinateTransform#getTransform
의 이름을CoordinateTransform#transform
으로 변경하고 JavaDoc을 업데이트했습니다. (I864ae)
버그 수정
- Compose UI와 함께 사용할 때 발생하는
PreviewView PERFORMANCE
모드 확대 문제가 해결되었습니다. (Ie1137, b/183864890)
버전 1.0.0-alpha26
2021년 6월 30일
androidx.camera:camera-extensions:1.0.0-alpha26
및 androidx.camera:camera-view:1.0.0-alpha26
이 출시되었습니다. 버전 1.0.0-alpha26에 포함된 커밋을 확인하세요.
API 변경사항
- 최신 탭하여 초점 맞추기 결과를 노출하는 새 메서드
CameraController#getTapToFocusState()
를 추가합니다. (Iaccb0) - CameraController에 camera-core 기능을 더 추가했습니다. 추가된 기능은 타겟 가로세로 비율과 타겟 해상도, 캡처 모드, CameraControl, 맞춤 실행기 관련 getter/setter입니다. (Iea8f2)
- 표면 회전 변경사항을 수신하는 RotationReceiver 클래스를 추가합니다. 기기가 고정된 세로 또는 가로 모드일 때 타겟 회전을 설정하는 데 사용할 수 있습니다. (Ib278f)
- 새 getEstimatedCaptureLatencyRange 공개 API를 ExtensionsManager 클래스에서 노출했습니다. (I6a8ec)
- ExtensionsErrorListener 지원을 중단했습니다. 현재 이 인터페이스는 확장 모드를 사용 설정할 때 미리보기나 ImageCapture가 없는지 모니터링하는 데만 사용됩니다. CameraX가 자동으로 추가 미리보기나 ImageCapture를 추가하여 확장 함수가 잘 작동하도록 합니다. 그 후에는 이 인터페이스를 통해 오류가 보고되지 않습니다. (I47d9e)
- 새 ExtensionsManager getInstance, isExtensionAvailable, getExtensionEnabledCameraSelector 공개 API를 노출하고 이전
<EffectName><UseCase>Extender
클래스와 관련 API의 지원을 중단했습니다. (I329e6)
버전 1.0.0-alpha25
2021년 6월 2일
androidx.camera:camera-extensions:1.0.0-alpha25
및 androidx.camera:camera-view:1.0.0-alpha25
가 출시되었습니다. 버전 1.0.0-alpha25에 포함된 커밋을 확인하세요.
API 변경사항
- ExperimentalCameraFilter API가 이제 실험 단계를 벗어나 공식 API가 됩니다. 주석이 달린 OptIn 없이 사용할 수 있습니다. (I4bc94)
- 사용 사례 간 좌표를 변환하는 유틸리티를 추가합니다. 사용 예: ImageAnalysis 사용 사례에서 감지된 좌표를 변환하고 미리보기에서 감지된 객체를 강조표시합니다. (I63ab1, b/137515129)
CameraView
를 삭제했습니다.CameraView
를CameraController
로 대체했습니다. 이전 방법은 이전 가이드를 참고하세요. (Id5005)
버그 수정
ExperimentalUseCaseGroupLifecycle
을ExperimentalUseCaseGroup
으로 대체했습니다. (I3b2ef, b/159033688)
버전 1.0.0-alpha24
2021년 4월 21일
androidx.camera:camera-extensions:1.0.0-alpha24
및 androidx.camera:camera-view:1.0.0-alpha24
가 출시되었습니다. 버전 1.0.0-alpha24에 포함된 커밋을 확인하세요.
버그 수정
- 실험용 API의 주석
@Experimental
을@RequiresOptIn
으로 바꿨습니다. 실험용 API를 호출하려면 지원 중단된androidx.annotation.experimental.UseExperimental
대신androidx.annotation.OptIn
을 사용하세요. (Iff226) - 삼성 J5 Prime에서 PreviewView가 확장되는 문제를 해결했습니다. (Ib10b6)
Camera Extensions 및 View 버전 1.0.0-alpha23
2021년 3월 24일
androidx.camera:camera-extensions:1.0.0-alpha23
및 androidx.camera:camera-view:1.0.0-alpha23
이 출시되었습니다. 버전 1.0.0-alpha23에 포함된 커밋을 확인하세요.
API 변경사항
- CameraView가 지원 중단됩니다. 대신
LifecycleCameraController
를 사용하세요. 이전 가이드를 참고하세요. (Idac2c) - setLinearZoom()에 FloatRange 주석을 추가했습니다. (I69971)
버그 수정
- 1.0.0 아티팩트에 의존하도록 camera-view 종속 항목을 고정했습니다. camera-view에 종속되더라도 더 이상 Gradle의 종속 항목 해결 방법이 camera-core, camera-camera2, camera-lifecycle을 최신 1.1.0 아티팩트로 자동 업그레이드하지 않습니다. 하지만 camera-view가 1.1.0을 사용하도록 명시적으로 설정되는 경우 이러한 아티팩트와 계속 호환됩니다. (Ic8fa1, b/181599852)
- PreviewView에서 삼성 A3의 미리보기가 늘어나는 문제를 해결했습니다. (Iacb30, b/180121821)
- 카메라를 초기화하기 전에 카메라 선택기를 설정할 수 없는 문제를 해결했습니다. (Ic8bd0)
Camera Extensions 및 View 버전 1.0.0-alpha22
2021년 2월 24일
androidx.camera:camera-extensions:1.0.0-alpha22
및 androidx.camera:camera-view:1.0.0-alpha22
이 출시되었습니다. 버전 1.0.0-alpha22에 포함된 커밋을 확인하세요.
API 변경사항
- CameraController에 CameraInfo getter를 추가합니다. (Ib8138, b/178251727)
버그 수정
- 미리보기 또는 ImageCapture가 바인딩된 경우에만 오류를 보고하도록 ExtensionsErrorListener를 수정했습니다. (I5ae39)
Camera Extensions 및 View 버전 1.0.0-alpha21
2021년 1월 27일
androidx.camera:camera-extensions:1.0.0-alpha21
및 androidx.camera:camera-view:1.0.0-alpha21
이 출시되었습니다. 버전 1.0.0-alpha21에 포함된 커밋을 확인하세요.
다른 카메라 라이브러리 아티팩트를 지원하도록 출시되었습니다.
Camera Extensions 및 View 버전 1.0.0-alpha20
2020년 12월 16일
androidx.camera:camera-extensions:1.0.0-alpha20
및 androidx.camera:camera-view:1.0.0-alpha20
이 출시되었습니다. 버전 1.0.0-alpha20에 포함된 커밋을 확인하세요.
다른 카메라 라이브러리 아티팩트를 지원하도록 출시되었습니다.
Camera-Extensions 및 Camera-View 버전 1.0.0-alpha19
2020년 11월 11일
androidx.camera:camera-extensions:1.0.0-alpha19
및 androidx.camera:camera-view:1.0.0-alpha19
가 출시되었습니다. 버전 1.0.0-alpha19에 포함된 커밋을 확인하세요.
버그 수정
@ExperimentalVideo
주석을 camera-view에 도입했습니다. 이 주석은 기능이 완전히 개발될 때 변경될 수 있는 실험용 동영상 기능을 노출하는 API를 표시합니다. 이러한 API를 사용하는 메서드는ExperimentalVideo
와 함께@UseExperimental
주석을markerClass
로 사용해야 합니다. (I6d729)
Camera-Extensions 버전 1.0.0-alpha18
2020년 10월 14일
androidx.camera:camera-extensions:1.0.0-alpha18
이 출시되었습니다. 버전 1.0.0-alpha18에 포함된 커밋을 확인하세요.
버그 수정
- CameraX 초기화 및 bindToLifecycle의 지연 시간을 개선했습니다. (I61dc5)
- targetRotation이 Builder 또는 UseCase에 설정되지 않은 경우
<UseCase>.getTargetRotation()
이 카메라 인스턴스에 연결되기 전에 호출되면Surface.ROTATION_0
을 반환합니다. (I80fcd)
Camera-View 버전 1.0.0-alpha18
2020년 10월 14일
androidx.camera:camera-view:1.0.0-alpha18
이 출시되었습니다. 버전 1.0.0-alpha18에 포함된 커밋을 확인하세요.
다른 카메라 라이브러리 아티팩트를 지원하도록 출시되었습니다.
Camera-Extensions 버전 1.0.0-alpha17
2020년 9월 23일
androidx.camera:camera-extensions:1.0.0-alpha17
이 출시되었습니다. 버전 1.0.0-alpha17에 포함된 커밋을 확인하세요.
버그 수정
- Camera-Core 1.0.0-beta10을 지원하는 버전
Camera-View 버전 1.0.0-alpha17
2020년 9월 23일
androidx.camera:camera-view:1.0.0-alpha17
이 출시되었습니다. 버전 1.0.0-alpha17에 포함된 커밋을 확인하세요.
버그 수정
- Camera-Core 1.0.0-beta10을 지원하는 버전
Camera-Extensions 버전 1.0.0-alpha16
2020년 9월 16일
androidx.camera:camera-extensions:1.0.0-alpha16
이 출시되었습니다. 버전 1.0.0-alpha16에 포함된 커밋을 확인하세요.
버그 수정
- 카메라 인스턴스에서 확장 프로그램을 사용 설정하고 쿼리하는 데 사용되는
Extensions
객체를 가져오도록ExtensionsManager
에 메서드를 추가했습니다. (I4fb7e)
Camera-View 버전 1.0.0-alpha16
2020년 9월 16일
androidx.camera:camera-view:1.0.0-alpha16
이 출시되었습니다. 버전 1.0.0-alpha16에 포함된 커밋을 확인하세요.
API 변경사항
PreviewView#setDeviceRotationForRemoteDisplayMode()
및PreviewView#getDeviceRotationForRemoteDisplayMode()
가 삭제되었습니다. 두 메서드는 원하는 회전이 디스플레이 회전(예: 원격 디스플레이)이 아닌 경우 미리보기 회전을 맞춤설정하기 위한 것입니다. 이제 디스플레이가 아닌 미리보기 회전을 처리하려면Preview#setTargetRotation()
및 새로 추가된PreviewView#getViewPort(targetRotation)
을 사용하여 원하는 회전을 설정합니다. (Ib62cc)createSurfaceProvider()
의 이름을getSurfaceProvider()
로 변경했습니다. 이 메서드는 항상 Preview.SurfaceProvider의 동일한 인스턴스를 반환합니다. (Iff83c)
버그 수정
- 확장 프로그램 효과가 사용 설정되고 공급업체 라이브러리 구현이 출력 표면에서 특수 프로세스를 실행해야 하는 경우 PreviewView에서 TextureView를 사용하도록 강제했습니다. (I0c3cc)
- 미리보기에서 임의의 타겟 회전을 허용합니다. 변환 정보가 계산되고 새
TranformationInfoListener
콜백을 통해 사용자에게 즉시 반환됩니다. (I21470)
알려진 문제
- PreviewView에서 최종 사용자가 PreviewView를 클릭할 때
OnClickListener#onClick()
이 호출되지 않습니다. 터치 이벤트가 PreviewView#onTouchEvent()에서 잘못 소비됩니다. 이 문제는 다음 버전에서 수정될 예정입니다. PreviewView#getMeteringPointFactory()
에서 가져온 MeteringPoint는 ViewPort가 PreviewView와 함께 사용되면 잘못될 수 있습니다.
Camera-Extensions 버전 1.0.0-alpha15
2020년 8월 19일
androidx.camera:camera-extensions:1.0.0-alpha15
가 출시되었습니다. 버전 1.0.0-alpha15에 포함된 커밋을 확인하세요.
버그 수정
- 이제
ExtensionsManager.init()
메서드는 0 인수 대신 매개변수로 컨텍스트를 가져옵니다. (Ife754) Context.getApplicationContext()
에서 애플리케이션 객체를 반환하지 않는 컨텍스트를 사용할 때 초기화가 더 이상 비정상 종료되지 않습니다. (I3d3c9, b/160817073)Camera-View 버전 1.0.0-alpha15
2020년 8월 19일
androidx.camera:camera-view:1.0.0-alpha15
가 출시되었습니다. 버전 1.0.0-alpha15에 포함된 커밋을 확인하세요.
버그 수정
DisplayOrientedMeteringPointFactory
는CameraSelector
대신CameraInfo
인스턴스를 가져오므로 팩토리에서 포인트를 생성할 카메라의 직접 매핑이 있습니다.DisplayOrientedMeteringPointFactory
를 사용하는 모든 클래스도CameraSelector
대신CameraInfo
인스턴스를 가져옵니다. (I400c1)TextureViewMeteringPointFactory
를 삭제했습니다.PreviewView
는TextureView
또는SurfaceView
사용 여부와 상관없이 측정 포인트 팩토리를 만드는 공개 API(createMeteringPointFactory()
)를 제공합니다. (Ide693)- PreviewView의
SURFACE_VIEW
/TEXTURE_VIEW
구현 모드 이름을PERFORMANCE
/COMPATIBLE
로 변경합니다.PERFORMANCE
가 이전SURFACE_VIEW
모드이며COMPATIBLE
이 이전TEXTURE_VIEW
모드입니다. (I0edc2) - 이미지 캡처의 경우 카메라 방향에 기반하여 메타데이터에서 수평 뒤집기 플래그를 덮어씁니다. (I28499)
Camera-Extensions 버전 1.0.0-alpha14
2020년 7월 22일
androidx.camera:camera-extensions:1.0.0-alpha14
가 출시되었습니다. 버전 1.0.0-alpha14에 포함된 커밋을 확인하세요.
Camera-View 버전 1.0.0-alpha14
2020년 7월 22일
androidx.camera:camera-view:1.0.0-alpha14
가 출시되었습니다. 버전 1.0.0-alpha14에 포함된 커밋을 확인하세요.
Camera-Extensions 버전 1.0.0-alpha13
2020년 6월 24일
androidx.camera:camera-extensions:1.0.0-alpha13
이 출시되었습니다. 버전 1.0.0-alpha013에 포함된 커밋을 확인하세요.
버그 수정
- 카메라 ID와 CameraCharacteristics로 카메라를 필터링하기 위한 실험용 인터페이스가 추가되었습니다. (I28f61)
Camera-View 버전 1.0.0-alpha13
2020년 6월 24일
androidx.camera:camera-view:1.0.0-alpha13
이 출시되었습니다. 버전 1.0.0-alpha013에 포함된 커밋을 확인하세요.
버그 수정
- 바인딩된 직후 수명 주기가 소멸 상태로 전환되는 LifecycleOwner에 바인딩할 때 CameraView가 IllegalArgumentException으로 더 이상 비정상 종료되지 않습니다. 소멸 상태의 바인딩 수명 주기는 카메라를 열려고 하지 않습니다. (I7c2b8)
- 이제 PreviewView StreamState는 CameraView.getPreviewStreamState()를 통해 사용할 수 있습니다. (I21a2b)
Camera-Extensions 버전 1.0.0-alpha12
2020년 6월 10일
androidx.camera:camera-extensions:1.0.0-alpha12
가 출시되었습니다. 버전 1.0.0-alpha12에 포함된 커밋을 확인하세요.
버그 수정
- 스마트폰이 방해 금지 모드일 때 CameraX를 초기화하면 앱 시작 시 비정상적으로 종료되는 문제를 해결했습니다. 애플리케이션이 다운되는 대신
CameraUnavailableException
이 포함된InitializationException
이ListenableFuture
라는 초기화 결과로 설정됩니다. (I9909a, b/149413835)
Camera-View 버전 1.0.0-alpha12
2020년 6월 10일
androidx.camera:camera-view:1.0.0-alpha12
가 출시되었습니다. 버전 1.0.0-alpha12에 포함된 커밋을 확인하세요.
버그 수정
- 미리보기 표시 영역에 표시된 콘텐츠의 비트맵 표현을 반환하는
PreviewView#getBitmap()
API를 추가했습니다. (I9b500, b/157659818)
Camera-Extensions 버전 1.0.0-alpha11
2020년 5월 27일
androidx.camera:camera-extensions:1.0.0-alpha11
이 출시되었습니다. 버전 1.0.0-alpha11에 포함된 커밋을 확인하세요.
Camera-View 버전 1.0.0-alpha12
2020년 6월 10일
androidx.camera:camera-view:1.0.0-alpha12
가 출시되었습니다. 버전 1.0.0-alpha12에 포함된 커밋을 확인하세요.
새로운 기능
API 변경사항
버그 수정
- 미리보기 표시 영역에 표시된 콘텐츠의 비트맵 표현을 반환하는
PreviewView#getBitmap()
API를 추가했습니다. (I9b500, b/157659818)
Camera-View 버전 1.0.0-alpha11
2020년 5월 27일
androidx.camera:camera-view:1.0.0-alpha11
이 출시되었습니다. 버전 1.0.0-alpha11에 포함된 커밋을 확인하세요.
API 변경사항
- 미리보기가 스트리밍 중인지 앱에서 확인할 수 있는
PreviewView#getPreviewStreamState
API를 추가했습니다. PreviewView가 TEXTURE_VIEW 모드일 경우 STREAMING 상태에서도 미리보기 이미지가 표시됩니다. (Ic0906, b/154652477) - 애플리케이션이 원격 표시 모드에서 실행 중일 때 변환 계산을 위해 기기 회전 기능을 제공하는
PreviewView#setDeviceRotationForRemoteDisplayMode()
API가 추가되었습니다. (I59b95, b/153514525)
버그 수정
- Android 7.0 이하를 실행하는
FULL/LIMITED/LEVEL_3
카메라의 미리보기 왜곡 문제가 해결되었습니다. Android 버전 7.0 이하인 경우 강제로ImplementationMode#TEXTURE_VIEW
모드를 사용하도록 했습니다. (I83e30, b/155085307) PreviewView#createSurfaceProvider()
에서CameraInfo
매개변수가 삭제되었습니다. 이제PreviewView
는 내부적으로SurfaceRequest
에서 가져옵니다. (If18f0, b/154652477)- CameraView에서 VideoCapture의 기본 가로세로 비율이 16:9로 수정되었습니다. (Ie6a7b, b/153237864)
Preview
프래그먼트를 스와이프 아웃한 다음 ViewPager2에서 스와이프 백하면PreviewView
검은색 화면이 나타나는 문제가 해결되었습니다. 또한removeView(previewview)
와addView(previewView)
일 때 발생하는 문제도 해결되었습니다. (Iab555, b/149877652, b/147354615)- 이미지를
Uri
및OutputStream
에 저장할 수 있도록CameraView#takePicture()
API를 업데이트했습니다. 표준 예제로Uri
를 사용하도록 테스트 앱을 업데이트했습니다. (Ia2459, b/153607583) ScaleType
속성을 설정하여 XML 레이아웃에서 PreviewView의 확장 유형을 설정할 수 있습니다. (I08565, b/153015659)CameraView.ScaleType
을 삭제했습니다. 대신 CameraView에서PreviewView.ScaleType
을 사용하여 확장 유형을 설정하거나 가져올 수 있습니다. (Ia8974, b/153014831)- 아직 배경색이 없으면 기본적으로
PreviewView
배경색이 지정됩니다. 그러면 미리보기 스트림이 시작되기 전까지는 배경 뒤에 있는 콘텐츠가 표시되지 않습니다. (I09fad)
Camera-Extensions 버전 1.0.0-alpha10
2020년 4월 15일
androidx.camera:camera-extensions:1.0.0-alpha10
이 출시되었습니다. 버전 1.0.0-alpha10에 포함된 커밋을 확인하세요.
버그 수정
- Camera-Core 출시를 지원하도록 수정했습니다.
Camera-View 버전 1.0.0-alpha10
2020년 4월 15일
androidx.camera:camera-view:1.0.0-alpha010
이 출시되었습니다. 버전 1.0.0-alpha010에 포함된 커밋을 확인하세요.
버그 수정
- 이전에
PreviewView
의 surfaceView 구현이 특정 기기에서 제대로 작동하지 않아 미리보기 재개 후에 앱이 다운되던 알려진 문제를 수정했습니다. (I5ed6b)
Camera-Extensions 버전 1.0.0-alpha09
2020년 4월 1일
androidx.camera:camera-extensions:1.0.0-alpha09
가 출시되었습니다. 버전 1.0.0-alpha09에 포함된 커밋을 확인하세요.
버그 수정
camera-camera2:1.0.0-beta02
,camera-core:1.0.0-beta02
,camera-lifecycle:1.0.0-beta02
아티팩트의 버그 수정을 지원하도록 업데이트했습니다.
Camera-View 버전 1.0.0-alpha09
2020년 4월 1일 androidx.camera:camera-view:1.0.0-alpha09
가 출시되었습니다. 버전 1.0.0-alpha09에 포함된 커밋을 확인하세요.
알려진 문제
PreviewView
와 함께ImplementationMode.SURFACE_VIEW
를 사용하면 특정 기기에서 제대로 작동하지 않을 수도 있습니다. 미리보기에 사용되는SurfaceView
는 포함하는 창의 수명 주기가 중지되면 표시 영역을 무효화하기 때문입니다. 창이 다시 시작되면 카메라가 다시 열리고SurfaceView
의 표시 영역이 다시 유효해지기 전에 미리보기를 재개하려고 시도할 수도 있습니다. 지금은ImplementationMode.TEXTURE_VIEW
를 사용해야 합니다.
API 변경사항
PreviewView.setImplementationMode()
의 이름이PreviewView.setPreferredImplementationMode()
로 변경되었습니다.PreviewView.getImplementationMode()
의 이름이PreviewView.getPreferredImplementationMode()
로 변경되었습니다.PreviewView.getSurfaceProvider()
를PreviewView.createSurfaceProvider(CameraInfo)
로 대체했습니다. 가능하다면ImplementationMode.SURFACE_VIEW
를 사용하여 미리보기를 최적화하는 데 사용되는 null 허용CameraInfo
인스턴스를 취합니다. null 인스턴스가 전달되거나 기본 구현 모드를ImplementationMode.TEXTURE_VIEW
로 설정하는 경우ImplementationMode.TEXTURE_VIEW
가 내부적으로 사용됩니다.다음 코드 샘플은 이전에 PreviewView에서 사용된 미리보기 사용 사례를 보여줍니다.
preview.setSurfaceProvider(previewView.previewSurfaceProvider) cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
지금은 다음을 작성할 수 있습니다.
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview) previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
@UiThread
주석을PreviewView.getSurfaceProvider()
에 추가했습니다. 즉, 기본 스레드에서 호출해야 함을 의미합니다. (I192f3)미리보기의 확장 유형을 설정할 수 있는
PreviewView.setScaleType()
을 추가했습니다.PreviewView.ScaleType
의 값 중 하나를 허용하며, 기본값은PreviewView.ScaleType.FILL_CENTER
입니다.PreviewView.getScaleType()
을 추가했습니다.implementationMode
속성을 사용하여 XML 레이아웃에서PreviewView
의 구현 모드를 설정할 수 있는 지원을 삭제했습니다.createMeteringPointFactory()
API를 PreviewView에 추가하여PreviewView
의 (x, y)를MeteringPoint
로 변환하도록 지원합니다. (Ib36d7)
버그 수정
PreviewView
의 크기가 변경된 후 잘못된 미리보기가 표시되는 문제를 수정했습니다. (I71101)
Camera-Extensions 버전 1.0.0-alpha08
2020년 2월 26일
androidx.camera:camera-extensions:1.0.0-alpha08
이 출시되었습니다. 버전 1.0.0-alpha08에 포함된 커밋을 확인하세요.
Camera-View 버전 1.0.0-alpha08
2020년 2월 26일
androidx.camera:camera-view:1.0.0-alpha08
이 출시되었습니다. 버전 1.0.0-alpha08에 포함된 커밋을 확인하세요.
버그 수정
SurfaceRequest.provideSurface()
의ListenableFuture
를Executor
및Callback
으로 대체했습니다. 이렇게 하면 더 이상provideSurface()
에서 예외를 처리할 필요가 없으므로 API가 간소화되고provideSurface()
콜백을 취소할 수 없게 됩니다. 이전 기기에서 표시 영역을 너무 일찍 해제하여 비정상 종료가 발생하는 것을 방지하기 위한 것입니다. 이제 제공된Surface
가SurfaceRequest
에서 사용되는 방법을 추적하는 데SurfaceRequest.Result
객체를 사용합니다. (I7854b)SurfaceRequest.setSurface(Surface)
의 이름이SurfaceRequest.provideSurface(Surface)
로,SurfaceRequest.setWillNotComplete()
의 이름이SurfaceRequest.willNotProvideSurface()
로 변경되었습니다. (I224fe)- 기본
CameraXConfig
제공자를 설정하는 플래그를 유지함으로써 ProGuard가 사용 설정된 앱 변형의 초기화를 수정했습니다. (I2d6c1)
Camera-Extensions 버전 1.0.0-alpha07
2020년 2월 10일
androidx.camera:camera-extensions:1.0.0-alpha07
이 출시되었습니다. 버전 1.0.0-alpha07에 포함된 커밋을 확인하세요.
버그 수정
- 이전에
ImageCapture.OnImageSavedCallback.onError()
및ImageCapture.OnImageCapturedCallback.onError()
에 전달된 인수를 단일 인수ImageCaptureException
으로 대체했습니다. 이 인수에는 여전히 이전에 전달된 모든 정보가 포함되어 있습니다. - 이전에
ImageCapture.OnImageSavedCallback.onImageSaved()
에 전달된 파일 인수를 삭제했습니다. (I750d2)
Camera-View 버전 1.0.0-alpha07
2020년 2월 10일
androidx.camera:camera-view:1.0.0-alpha07
이 출시되었습니다. 버전 1.0.0-alpha07에 포함된 커밋을 확인하세요.
API 변경사항
PreviewView
의TextureView
구현은 이제TextureView
의 크기를 카메라 센서 출력 크기로 설정한 후 상위PreviewView
를 채우도록 확장합니다. 카메라 미리보기가 UI 전체 부분(예: 전체 화면)을 채우도록 하려면PreviewView
의 크기를 고정 값으로 설정해서는 안 됩니다. 또는 뷰가 콘텐츠를 래핑하도록 만들면(예: 'wrap_content
' 속성 사용) 카메라 미리보기가PreviewView
의 일부만 채울 수도 있습니다(카메라 센서 출력 크기가 더 작은 경우). 대신PreviewView
를 상위 요소와 같은 크기로 설정해야 합니다(예: 'match_parent
' 속성 사용). (1204869)
버그 수정
- 이미지를
Uri
및OutputStream
에 저장할 수 있도록ImageCapture
를 업데이트했습니다. 오버로드된takePicture
메서드를 하나로 결합했습니다. 표준 예제로Uri
를 사용하도록 테스트 앱을 업데이트했습니다. (Ia3bec) Preview.PreviewSurfaceProvider
의 이름이Preview.SurfaceProvider
로 변경되었습니다.SurfaceProvider
를 사용할 때 개발자는 더 이상 자체ListenableFuture
를 만들 필요가 없으며, 이제 새SurfaceRequest
객체를 통해Surface
가 제공됩니다.Preview
를PreviewView
와 같은 다른 클래스와 페어링할 때 오용될 가능성이 있는Preview.getPreviewSurfaceProvider()
메서드를 삭제했습니다. (I20105)- 이전에
ImageCapture.OnImageSavedCallback.onError()
및ImageCapture.OnImageCapturedCallback.onError()
에 전달된 인수를 단일 인수ImageCaptureException
으로 대체했습니다. 이 인수에는 여전히 이전에 전달된 모든 정보가 포함되어 있습니다. - 이전에
ImageCapture.OnImageSavedCallback.onImageSaved()
에 전달된 파일 인수를 삭제했습니다. (I750d2) ZoomState
인스턴스를 반환하는getZoomState()
에CameraInfo
의getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
,getLinearZoom()
메서드를 병합하여 API를 업데이트했습니다. (Ib19fe)
Camera-Extensions 버전 1.0.0-alpha06
2020년 1월 22일
androidx.camera:camera-extensions:1.0.0-alpha06
이 출시되었습니다. 버전 1.0.0-alpha06에 포함된 커밋을 확인하세요.
업데이트
- Camera Core 및 Camera2 변경사항을 지원하기 위한 다양한 수정 및 업데이트가 이루어졌습니다.
Camera-View 버전 1.0.0-alpha06
2020년 1월 22일
androidx.camera:camera-view:1.0.0-alpha06
이 출시되었습니다. 버전 1.0.0-alpha06에 포함된 커밋을 확인하세요.
업데이트
- Camera Core 및 Camera2 변경사항을 지원하기 위한 다양한 수정 및 업데이트가 이루어졌습니다.
Camera-Extensions 버전 1.0.0-alpha05
2019년 12월 18일
androidx.camera:camera-extensions:1.0.0-alpha05
가 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.
버그 수정
- 내부 Camera Core API와 일치하도록 업데이트되었습니다.
Camera-View 버전 1.0.0-alpha05
2019년 12월 18일
androidx.camera:camera-view:1.0.0-alpha05
가 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.
알려진 문제
- PreviewView를 사용할 때 가로세로 비율이 잘못될 수 있습니다. (b/146215202)
새로운 기능
- SurfaceTexture의 수명 주기를 카메라에 사용되는 TextureView 영역과 동기화하는
PreviewView.TextureViewImplementation
이라는 새 클래스를 구현했습니다.
Camera-Extensions 버전 1.0.0-alpha04
2019년 12월 4일
androidx.camera:camera-extensions:1.0.0-alpha04
가 출시되었습니다. camera-extensions의 버전 1.0.0-alpha04에 포함된 커밋을 확인하세요.
API 변경사항
이제 확장 프로그램의 가용성을 확인하고 사용 설정을 할 때
CameraSelector
를 입력 매개변수로 사용합니다. 사용 사례를 바인딩하는 데 사용된 동일한CameraSelector
여야 합니다.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)
확장 프로그램 라이브러리를 사용하려면 먼저 확장 프로그램을 초기화해야 합니다.
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 버전 1.0.0-alpha04
2019년 12월 4일
androidx.camera:camera-view:1.0.0-alpha04
가 출시되었습니다. camera-view의 버전 1.0.0-alpha04에 포함된 커밋을 확인하세요.
API 변경사항
- 애플리케이션에서 미리보기 사용 사례의 출력을 쉽게 표시하기 위해
PreviewView
클래스가 제공됩니다. PreviewView
를 레이아웃에 포함할 수 있습니다.<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />
PreviewView
는 미리보기 사용 사례에 쉽게 연결할 수 있도록PreviewSurfaceProvider
를 제공합니다.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
이제 API 이름 지정에서 '
ZoomLevel
'이 'ZoomRatio
'로 변경되었습니다.몇몇 메서드 매개변수가 null 허용 여부를 변경했습니다.
Camera-Extensions 및 Camera-View 버전 1.0.0-alpha03
2019년 10월 9일
androidx.camera:camera-extensions:1.0.0-alpha03
및 androidx.camera:camera-view:1.0.0-alpha03
이 출시되었습니다. camera-extensions:1.0.0-alpha03
에 포함된 커밋과 camera-view:1.0.0-alpha03
에 포함된 커밋을 확인하세요.
새로운 기능
- 확장 프로그램용 컨텍스트 이니셜라이저를 추가했습니다. 확장 프로그램 버전을 1.1.0으로 높였습니다.
Camera-Extensions 및 Camera-View 버전 1.0.0-alpha02
2019년 9월 5일
androidx.camera:camera-extensions:1.0.0-alpha02
및 androidx.camera:camera-view:1.0.0-alpha02
가 출시되었습니다. camera-extensions:1.0.0-alpha01에 포함된 커밋과 camera-view:1.0.0-alpha01에 포함된 커밋을 확인하세요.
PreviewImageProcessorImpl
이 타임스탬프를 올바르게 구현했는지 확인하는 테스트를 추가했습니다.- Nexus 5(API 수준 21)의
ExtensionTest
테스트 실패를 해결하고 미리보기를 사용할 수 있는지 확인합니다.
Camera-Extensions 및 Camera-View 버전 1.0.0-alpha01
2019년 8월 7일
androidx.camera:camera-extensions:1.0.0-alpha01
및 androidx.camera:camera-view:1.0.0-alpha01
이 출시되었습니다.
camera-extensions:1.0.0-alpha01에 포함된 커밋과 camera-view:1.0.0-alpha01에 포함된 커밋을 확인하세요.
- 향후 Camera Extensions의 새로운 라이브러리로 지원되는 기기의 효과에 액세스합니다. 이 라이브러리는 진행 중인 작업입니다.
- 새로운 카메라 뷰 클래스. 이 라이브러리는 진행 중인 작업입니다.