How to Camera2 (Android Development Patterns S2 Ep 8)

고양이 팬케이크

팬케이크를 먹는 고양이 만약 어플에 좋은 카메라가 지원되지 않는다면 어떻게 이런 컨텐츠들을 포착할까요? 제 이름은 데이비드 이스트고, Camera2 API는 가장 뛰어난 카메라 어플을 만드는데 필요합니다 잠시 물러서서 안드로이드 카메라API 옵션의 역사를 살펴보겠습니다 사진이나 영상을 찍는 가장 단순한 옵션은 항상 카메라 인텐트였습니다 기본적으로, 귀하가 인텐트를 시작하면 사용자들은 사진을 찍기 위해 자신이 원하는 카메라 어플을 사용하죠

이 것은 이용하기 쉽지만, 사실 실력이 있는 카메라 어플에게는 그렇지 않습니다 카메라 인텐트는 주로 카메라가 주요 기능이 아니라 부가적인 어플에 사용됩니다 카메라 인텐트로는 북실북실한 고양이가 팬케이크 먹는 모습을 못찍죠 그래서 더 나은 API가 필요했습니다 카메라 API는 카메라 인텐트보다 더 많은 것을 조정할 수 있었습니다

카메라 API가 있다면, 원하는데로 카메라 뷰를 설정할 수 있었습니다, 정말 좋았죠 하지만 사진이 발전하면서 부족한 부분들이 발견됐죠, 예를 들어 압축되지 않은 이미지를 포착할 때, 혹은 프리뷰 속도가 초당 1에서 3 프레임인 새로운 하드웨어에서의 실행 등등에 있어서 문제가 있었습니다 고양이를 찍으려면 더 나은 API가 필요하죠 그래서 Camera2를 소개합니다 Camera2 API는 가장 최근에 나온 카메라API로, 가장 크고 가장 뛰어납니다

Camera2 API는 해당 디바이스 카메라의 모든 권한을 귀하에게 부여합니다 그리고 전 API의 모든 문제들도 해결됐죠 더 빠른 간격으로 사진을 찍을 수 있고, 다수의 카메라에서 프리뷰를 볼 수 있으며, 필터효과도 바로 적용할 수 있습니다 하지만, 새롭게 만든 카메라 어플에 적용하기 전에 알아야 할 것들이 있습니다 Camera2 API는 좋은 기능들을 가지고 있지만, 어플 사용자의 디바이스가 지원하지 못 할 수 있습니다

그렇기 때문에, 귀하는 어떤 디바이스가 지원 가능한지 아셔야 합니다 이 정보는 디바이스의 카메라 스펙을 살펴보면 알 수 있습니다 이 스펙은 렌즈의 방향같은 간단한 특징일 수도 있고, 얼굴 인식 모드의 여부처럼 복잡한 것일 수도 있습니다 만약 귀하의 어플이 특정 스펙 없이는 지원이 안된다면, 사용자가 어플을 다운받으려면 해당 스펙이 필요함을 명시하면 됩니다 매니페스트 파일에 사용자의 기능을 설정해놓으면 되죠

한 가지 더 중요한 것은, Camera 2API는 안드로이드 L에서 내놨기 때문에, 모든 어플을 지원하기 위해서는 다시 카메라API를 사용해야 합니다 그리고 Camera2 API는 안드로이드 서포트 라이브러리에서 지원이 아직 안되지만, 이 남성분에게 재촉하면 더 빨리 가능케 할 수 있어요 Camera2 API는 디바이스의 카메라에 대한 귀하의 책임을 증가시킵니다 그리고 더 큰 책임에는 큰 힘이 따라오죠 아마 그럴꺼에요

Camera2 API에 대해서 더 아시려면 API 레퍼런스를 살펴보세요 그리고 실제로 시행된 모델을 확인하고 싶으시면, GitHub에 원시 이미지를 포착하는 샘플 어플이 있습니다 귀하의 어플이 카메라를 사용한다면, Camera2를 사용해 가장 뛰어난 카메라를 제공하세요 계속 좋은 어플을 개발해주세요