Android의 CameraX Jetpack 라이브러리가 이제 베타 버전입니다!

CameraX가 이제 베타 버전으로 제공된다는 사실을 모든 사람과 공유하게되어 매우 기쁩니다! 이를 가능하게 한 전체 개발자 커뮤니티에 감사드립니다. 이 릴리스에서는 변경되지 않은 상태로 유지되고 버그 및 장치 호환성 수정을 통해 시간이 지남에 따라 개선 될 카메라 API 기반을 찾을 수 있습니다.

확장 된 테스트 외에도 프로덕션에서 CameraX를 사용하는 많은 앱이 있으므로 개발자가 Play 스토어에서 프로덕션 환경에서 CameraX를 실험하고 (적절한 경우) 출시하도록 권장 할 수 있습니다. 우리는 몇 가지 버그가있을 것으로 예상하며 귀하의 앱이 최상의 카메라 경험을 제공 할 수 있도록 최선을 다하고 있습니다. 당신이 중 하나를 통해 지원을 위해 우리에게 문의하시기 바랍니다 도움이 필요합니까 토론 메일 링리스트 또는 문제를 열기 .

이 블로그 게시물에서는 CameraX Jetpack 라이브러리에 대한 간략한 개요를 제공하고 베타의 새로운 기능을 공유합니다. 베타 상태에 도달하면 Jetpack 라이브러리가 프로덕션 사용 준비가 된 것으로 간주되지만 여전히 중요하지 않은 버그가 포함되어있을 수 있습니다.

최신 리소스를 보려면 설명서를 확인 하고 공식 샘플을 검토 한 다음 온라인 개발자 커뮤니티에 가입하세요 .

CameraX 로고

CameraX 요약

먼저 CameraX가 무엇인지에 대해 매우 빠르게 검토해 보겠습니다. CameraX에 이미 익숙하다면이 섹션을 건너 뛸 수 있습니다. 이 Android Developer Summit 세션 또는 해당 블로그 게시물 과 같은 다른 리소스를 살펴볼 수도 있습니다 .

장치 호환성

Jetpack 라이브러리 인 CameraX는 API 레벨 21 이상을 실행하는 Android 기기뿐만 아니라 폼 팩터, 카메라 구성 또는 기기 구현 세부 정보에 관계없이 다양한 하드웨어 기기와도 호환됩니다.

수명주기 인식

CameraX의 핵심 속성은 수명주기 인식 입니다. 카메라를 수동으로 열고 닫을 필요없이 카메라 사용 사례를 수명주기 소유자에게 연결하기 만하면됩니다. 연결된 수명주기 소유자 (활동, 조각 등)가 시작되거나 중지되면 카메라도 중지됩니다.

CameraX 사용 사례

베타 릴리스의 일부인 CameraX에서 제공하는 주요 사용 사례는 다음과 같습니다.

  • 미리보기 : 카메라가 가리키는 뷰 파인더를 표시하는 데 사용됩니다.
  • ImageAnalysis : 카메라 스트림에서 정보를 구문 분석하는 데 사용됩니다.
  • ImageCapture : 고품질 사진을 캡처하는 데 사용됩니다.
세로 모드

CameraX에 대해 마지막으로 이야기 한 이후로 몇 가지 사항이 변경되었으며 문서 , 공식 샘플 또는 온라인 개발자 커뮤니티 에서 캡처 되었습니다 .

초기화

CameraX는 개발자가 ProcessCameraProvider 를 통해 명시 적으로 초기화해야합니다. 다음과 같이 표시됩니다.

val cameraProviderFuture: ListenableFuture<ProcessCameraProvider> =
    ProcessCameraProvider.getInstance(context)
// The listener will be triggered once the future’s value is ready
cameraProviderFuture.addListener(Runnable {
// Camera provider is now guaranteed to be available
    val cameraProvider = cameraProviderFuture.get()
    …
}, executor)

사용 사례에 사용할 카메라 선택은 CameraSelector 를 통해 수행됩니다 . 이것은 CameraSelector일련의 선택적 제약 조건이 있는 개체를 만드는 방식으로 작동하며 CameraX는 이러한 요구 사항에 맞는 가장 적합한 카메라를 선택합니다.

val cameraSelector = CameraSelector.Builder()
    .requireLensFacing(CameraSelector.LENS_FACING_BACK)
    .build()

카메라 미리보기

기술적으로 베타 릴리스의 일부는 아니지만보기 모듈은 이제 alpha08에 있으며 PreviewView 는 카메라 미리보기를 구현하는 데 권장되는 방법입니다. 먼저 XML 레이아웃에 추가합니다.

<androidx.camera.view.PreviewView
    android:layout_width=”match_parent”
    android:layout_height=”match_parent”/>

val preview: Preview = …
val viewFinder: PreviewView = … // for example findViewById()
preview.setSurfaceProvider(viewFinder.previewSurfaceProvider)

카메라 컨트롤

CameraProcessProvider.bindToLifecycle ()에서 반환 한 카메라 객체를 사용하여 초점, 확대 / 축소 및 플래시와 같은 카메라의 특정 측면을 쿼리하고 수정할 수 있습니다 . 예를 들어, 다음 과 같은 객체 LiveData를 통해 최신 카메라 상태 의 객체를 가져올 수 있습니다 CameraInfo.

val camera = cameraProvider.bindToLifecycle(…)
val zoomState: LiveData<ZoomState> = camera.cameraInfo.zoomState
val torchState: LiveData<Int> = camera.cameraInfo.torchState

val camera = cameraProvider.bindToLifecycle(…)
camera.cameraControl.enableTorch(true)
camera.cameraControl.setLinearZoom(0.5f)
camera.cameraControl.startFocusAndMetering(…)

우리는 카메라 개발이 어렵고 (a) CameraX 테스트 제품군에 대한 지속적인 투자 (b) 자동화 된 테스트 팜에 새 장치를 추가하고 (c) 내부 및 외부 버그 보고서를 해결함으로써 CameraX를보다 쉽게 ​​사용할 수 있도록 최선을 다하고 있습니다. CameraX 베타 사용을 시작하고 모든 사용자를 위해 Android에서 카메라를 개선하는 데 참여하는 것이 좋습니다.

CameraX에 대해 자세히 알아 보려면 설명서공식 샘플 을 확인하거나 온라인 개발자 커뮤니티에 가입하세요 . 향후 블로그 게시물과 업데이트를 기대 해주세요!

Related posts

Kotlin을 사용하여 Android RecyclerView 항목을 다시 정렬하려면 드래그하세요.

Android 앱에서 멋진 맞춤형 목록 작성

Kotlin을 사용하여 Android RecyclerView 항목을 다시 정렬하려면 드래그하세요.

이 기사에서는 항목을 다시 정렬 할 수있는 기능을 제공하는 RecyclerView를 구현하는 방법에 대해 알아 봅니다. 타사 라이브러리를 사용하지 않고이 작업을 수행 할 것입니다.

Google Play 인앱 리뷰

Google Play 인앱 리뷰

Google Play Core 라이브러리는 인앱 리뷰에 대한 지원을 추가하여 사용자가 앱이나 게임을 떠나지 않고도 평점과 리뷰를 제출할 수 있도록합니다. 이 문서는 메모장 앱 연구 사례를 통해 Android에서이 기능을 구현하는 방법과 Google Play 스토어에서 사용자의 가시성에 미치는 영향을 보여줍니다.

Android에서 나만의 AR 애플리케이션 만들기

Android에서 나만의 AR 애플리케이션 만들기

이 기사에서는 카메라에서 얼굴에 효과를주는 Android 애플리케이션을 실시간으로 작성하는 방법을 설명합니다. 여기서는 카메라 작업, 얼굴 찾기, 얼굴의 포인트 찾기 및 결과 그리기 등 모든 핵심 사항을 살펴 보겠습니다.

Gradle 종속성 : 메시 🤯

Gradle 종속성을 현명하게 관리하세요 !!

Gradle 종속성 : 메시 🤯

종속성이 증가 할 때마다 Gradle 파일을 관리하기가 어려워집니다. 이 블로그에서는 종속성을 다른 파일로 이동하고 유사한 종속성을 그룹화하여 관리하려고합니다.