Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

CameraX

CameraX adalah tambahan untuk Jetpack yang memudahkan penambahan kapabilitas kamera ke aplikasi Anda. Library ini menyediakan sejumlah perbaikan dan solusi kompatibilitas untuk membantu developer mendapatkan pengalaman yang konsisten di banyak perangkat.

Tabel ini mencantumkan semua artefak dalam grup androidx.camera.

Artefak Rilis Stabil Saat Ini Kandidat Rilis Berikutnya Rilis Beta Rilis Alfa
camera-camera2 - - 1.0.0-beta09 -
camera-core - - 1.0.0-beta09 -
camera-extensions - - - 1.0.0-alpha16
camera-lifecycle - - 1.0.0-beta09 -
camera-view - - - 1.0.0-alpha16
Library ini terakhir diperbarui pada: 16 September 2020

Pengujian perangkat

CameraX diuji di banyak perangkat di lab kami. Untuk melihat daftar perangkat yang saat ini ada di lab, lihat Perangkat CameraX yang diuji lab.

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada CameraX, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.0.0-beta10"
  // 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 View class
  implementation "androidx.camera:camera-view:1.0.0-alpha17"
  // If you want to additionally use the CameraX Extensions library
  implementation "androidx.camera:camera-extensions:1.0.0-alpha17"
}

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau memiliki ide untuk meningkatkan kualitas library ini. Harap periksa library ini untuk mengetahui masalah yang sudah diketahui sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah ada dengan mengklik tombol bintang.

Melaporkan masalah baru

Lihat dokumentasi Issue Tracker untuk mengetahui informasi selengkapnya.

Camera-Camera2 dan Camera-Core Versi 1.0.0

Camera-Camera2 Versi 1.0.0-beta09

16 September 2020

androidx.camera:camera-camera2:1.0.0-beta09 dirilis. Versi 1.0.0-beta09 berisi commit berikut ini.

Perubahan API

  • Camera2CameraInfo mengambil instance CameraInfo saat dibuat untuk mengambil informasi terkait Camera2, bukan memberikan metode statis. (I5b844)

Perbaikan Bug

  • Memperbaiki masalah rasio tinggi lebar target di perangkat tablet. Ukuran 16:9 harus dipilih jika rasio tinggi lebar target disetel sebagai AspectRatio.RATIO_16_9. (Ib7fcf, b/151969438)
  • Menampilkan InitializationException untuk membuat aplikasi dapat menangani AssertionError dengan baik, yang terjadi saat membuat CameraCharacteristics. (I89c8c, b/160524721)
  • Menambahkan antarmuka eksperimental untuk ExposureCompensation (If96c7)

Camera-Core Versi 1.0.0-beta09

16 September 2020

androidx.camera:camera-core:1.0.0-beta09 dirilis. Versi 1.0.0-beta09 berisi commit berikut ini.

Perubahan API

  • Memperbaiki bug saat area pandang ditandai sebagai non-null pada UseCaseGroup. Developer harus dapat membuat area pandang tanpa menyetel area pandang. (Ie3d2e)
  • Menambahkan antarmuka eksperimental untuk ExposureCompensation (If96c7)
  • Mengizinkan rotasi target arbitrer untuk Pratinjau. Info transformasi dihitung dan ditampilkan kepada pengguna dengan cepat melalui callback TranformationInfoListener yang baru. (I21470)

Perbaikan Bug

  • Memperbaiki masalah saat flash pada beberapa perangkat tidak dapat dimatikan. Hal ini terjadi jika mode flash disetel ke FLASH_MODE_ON untuk mengambil gambar, dan diubah menjadi FLASH_MODE_OFF saat flash diaktifkan. Gejalanya seperti saat mode senter diaktifkan. (Ib4451, b/162568128)
  • Memaksa PreviewView menggunakan TextureView jika efek ekstensi diaktifkan dan implementasi library vendor perlu melakukan proses khusus pada permukaan output. (I0c3cc)
  • Memperbaiki kebocoran aktivitas/fragmen saat konteks aktivitas/fragmen diteruskan ke ProcessCameraProvider.getInstance(Context).

Masalah Umum

  • Jika Area Pandang disetel, pemangkasan rect ImageCapture mungkin salah di perangkat yang memutar buffering gambar di HAL. Masalah ini akan diperbaiki dalam rilis berikutnya.

Camera-Camera2 Versi 1.0.0-beta08

19 Agustus 2020

androidx.camera:camera-camera2:1.0.0-beta08 dirilis. Versi 1.0.0-beta08 berisi commit berikut.

Perbaikan Bug

  • Mengoptimalkan bindToLifecycle untuk berjalan secara cepat pada thread utama. (I1d57e)
  • DisplayOrientedMeteringPointFactory mengambil instance CameraInfo, bukan CameraSelector, sehingga ada pemetaan langsung titik yang akan dihasilkan oleh setelan pabrik pada Kamera. Semua class yang menggunakan DisplayOrientedMeteringPointFactory juga mengambil instance CameraInfo, bukan CameraSelector. (I400c1)
  • Memperbaiki masalah pengelompokan ukuran rasio tinggi lebar resolusi otomatis, ukuran mod16 16:9 (864x480) dipilih jika setelan resolusi target adalah 2016x1080 dan terdapat ukuran 16:9 lainnya, 1920x1080, yang didukung. (I53167, b/159363774)
  • Memperbaiki masalah CameraControl yang tidak dapat berfungsi berdasarkan kondisi race (I2279f, b/152333890, b/160714166)

Camera-Core Versi 1.0.0-beta08

19 Agustus 2020

androidx.camera:camera-core:1.0.0-beta08 dirilis. Versi 1.0.0-beta08 berisi commit berikut.

Perubahan API

  • DisplayOrientedMeteringPointFactory menggunakan instance CameraInfo, bukan CameraSelector, sehingga ada pemetaan langsung titik yang akan dihasilkan oleh setelan pabrik pada Kamera. Semua class yang menggunakan DisplayOrientedMeteringPointFactory juga menggunakan instance CameraInfo, bukan CameraSelector. (I400c1)

Perbaikan Bug

  • Untuk pengambilan gambar, timpa tanda horizontal balik dalam metadata berdasarkan arah kamera. (I28499)
  • Inisialisasi tidak akan error lagi saat menggunakan Konteks yang tidak mengembalikan objek Aplikasi dari Context.getApplicationContext(). (I3d3c9, b/160817073)

Camera-Camera2 Versi 1.0.0-beta07

22 Juli 2020

androidx.camera:camera-camera2:1.0.0-beta07 dirilis. Versi 1.0.0-beta07 berisi commit berikut ini.

Perbaikan Bug

  • Memperbaiki masalah pratinjau yang diterapkan di perangkat Android 5.0 yang lama. (I0c03a)
  • Mengecualikan beberapa ukuran yang didukung JPEG yang akan menyebabkan masalah WYSIWYG di beberapa perangkat. (Ib5128)

Camera-Core Versi 1.0.0-beta07

22 Juli 2020

androidx.camera:camera-core:1.0.0-beta07 dirilis. Versi 1.0.0-beta07 berisi commit berikut ini.

Perubahan API

  • Gabungkan gaya FIT_CENTER, FIT_START, dan FIT_END dengan FIT. FIT berarti bahwa kotak crop yang dikembalikan akan menjadi kotak sensor maksimum yang memungkinkan. (Ia73c3)
  • Pemangkasan tampilan pratinjau dikonfigurasikan berdasarkan area pandang. Hanya area yang dicakup oleh kotak pemangkasan yang dapat dilihat oleh pengguna akhir. (I142a4)

Perbaikan Bug

  • Memperbaiki masalah pratinjau yang diterapkan di perangkat Android 5.0 yang lama. (I0c03a)
  • Memperbaiki masalah pengecualian ConcurrentModificationException saat melakukan unbinding kasus penggunaan. (I371c0)

Camera-Camera2 Versi 1.0.0-beta06

24 Juni 2020

androidx.camera:camera-camera2:1.0.0-beta06 dirilis. Versi 1.0.0-beta06 berisi commit berikut ini.

Perubahan API

  • Penambahan antarmuka eksperimental untuk memfilter kamera berdasarkan ID kamera dan CameraCharacteristics. (I28f61)

Perbaikan Bug

  • Memperbaiki masalah di mana startFocusAndMetering gagal fokus pada Samsung Galaxy S7. (If3be7, b/159039233)
  • Memperbaiki kamera yang tidak dapat ditutup setelah keluar dari aplikasi. (I7a7b3)
  • Memperbaiki pergantian pengalihan kamera berulang saat menggunakan implementasi SurfaceView PreviewView(I920ce)
  • CameraControl#startFocusAndMetering akan gagal jika tidak ada MeteringPoint yang ditetapkan yang dapat menghasilkan persegi panjang pengukuran yang valid. (Id53ce)

Camera-Core Versi 1.0.0-beta06

24 Juni 2020

androidx.camera:camera-core:1.0.0-beta06 dirilis. Versi 1.0.0-beta06 berisi commit berikut ini.

Perubahan API

  • Penambahan antarmuka eksperimental untuk memfilter kamera berdasarkan ID kamera dan CameraCharacteristics. (I28f61)

Perbaikan Bug

  • CameraX kini dapat dikonfigurasi dengan ProcessCameraProvider#configureInstance() sebelum memanggil ProcessCameraProvider#getInstance(). Hal ini memungkinkan penyesuaian CameraXConfig tanpa memerlukan penerapan CameraXConfig.Provider di class Application aplikasi. (Ia1a8d)
  • CameraControl#startFocusAndMetering akan gagal jika tidak ada MeteringPoint yang ditetapkan yang dapat menghasilkan persegi panjang pengukuran yang valid. (Id53ce)

Camera-Camera2 Versi 1.0.0-beta05

10 Juni 2020

androidx.camera:camera-camera2:1.0.0-beta05 dirilis. Versi 1.0.0-beta05 berisi commit berikut.

Perbaikan Bug

  • Memperbaiki error ketika aplikasi dimulai saat menginisialisasi CameraX sementara ponsel dalam mode Jangan Ganggu. InitializationException berisi CameraUnavailableException yang akan ditetapkan ke ListenableFuture dari hasil inisialisasi, bukan membuat aplikasi error. (I9909a, b/149413835)
  • Memperbaiki error saat memanggil startFocusAndMetering di perangkat yang CONTROL_AF_STATE bernilai null. (Ife55e, b/157084254)

Camera-Core Versi 1.0.0-beta05

10 Juni 2020

androidx.camera:camera-core:1.0.0-beta05 dirilis. Versi 1.0.0-beta05 berisi commit berikut.

Perubahan API

  • Memperbaiki error ketika aplikasi dimulai saat menginisialisasi CameraX sementara ponsel dalam mode Jangan Ganggu. InitializationException yang berisi CameraUnavailableException akan ditetapkan ke ListenableFuture pada hasil inisialisasi, bukan membuat aplikasi error. (I9909a, b/149413835)

Perbaikan Bug

  • Mengupdate javadocs setTargetResolution dan setTargetRotation. (Iae16f)

Camera-Camera2 Versi 1.0.0-beta04

27 Mei 2020

androidx.camera:camera-camera2:1.0.0-beta04 dirilis. Versi 1.0.0-beta04 berisi commit berikut.

Perbaikan Bug

  • Mengizinkan aplikasi menetapkan parameter permintaan pengambilan camera2 apa pun melalui Camera2Interop tanpa mengakibatkan error. Harap perhatikan bahwa jika ada masalah yang muncul, itu terjadi karena penggantian parameter. Stabilitas dan perilaku tidak dijamin saat mengganti parameter menggunakan Camera2Interop. (Ibe5a1, b/149103700)
  • Inisialisasi otomatis telah diperbaiki saat menggunakan aplikasi di perangkat yang menggunakan pseudo-lokal. (I3bef3, b/154767663)
  • Mengonversi log error terkait kasus penggunaan yang dilepas ke log debug di Camera2CameraImpl. (I1a565, b/154422490)
  • Memperbaiki masalah di mana gambar yang diambil terlalu gelap meskipun lampu flash dinyalakan. (I5d9fa, b/149729613)
  • Memperbaiki bug di mana buffer di ImageProxy dari ImageCapture tidak diputar ulang (I0c455, b/153249512)
  • Memperbaiki masalah saat mengikat ImageCapture saja: (1) Gagal mengambil foto dengan MAX_QUALITY; (2) Menghasilkan kualitas gambar buruk karena eksposur otomatis tidak berfungsi. (I17782, b/145326998)
  • Meningkatkan keandalan dalam membuka kembali kamera saat CameraX terputus oleh proses lain atau codepath yang mencuri kamera (I1fbc3, b/153714651)

Camera-Core Versi 1.0.0-beta04

27 Mei 2020

androidx.camera:camera-core:1.0.0-beta04 dirilis. Versi 1.0.0-beta04 berisi commit berikut.

Perubahan API

  • Menambahkan API eksperimental, CameraXConfig.Builder#setSchedulerHandler() untuk menyetel pengendali yang digunakan secara internal oleh stack kamera CameraX. API baru ini beserta CameraXConfig.Builder#setCameraExecutor() harus mengizinkan kontrol penuh atas thread yang digunakan oleh stack kamera CameraX. (I7bf32, b/121160431)

Perbaikan Bug

  • Memperbaiki error di ImageAnalysis ketika ImageProxy diakses setelah ImageReaderProxy ditutup. Ini juga membuat semua ImageProxy yang diterima oleh Analyzer harus ditutup sebelum ImageReaderProxy ditutup. (I4b299, b/145956416, b/154155377, b/156357269)
  • Menghapus parameter CameraInfo dari PreviewView#createSurfaceProvider(), PreviewView sekarang mengambilnya secara internal dari SurfaceRequest. (If18f0, b/154652477)
  • Inisialisasi otomatis telah diperbaiki saat menggunakan aplikasi di perangkat yang menggunakan pseudo-lokal. (I3bef3, b/154767663)
  • Memperbaiki masalah di mana gambar yang diambil terlalu gelap meskipun lampu flash dinyalakan. (I5d9fa, b/149729613)
  • Memperbaiki masalah terkait ImageAnalysis di mana beberapa panggilan ke setAnalyzer/clearAnalyzer mengakibatkan penganalisis tidak menerima gambar yang akan dianalisis. (I6169f, b/151605317, b/153514544)
  • Memperbaiki bug di mana buffer di ImageProxy dari ImageCapture tidak diputar ulang (I0c455, b/153249512)
  • Memperbaiki masalah yang membuat kamera pertama dalam daftar yang didukung dari CameraManager tidak selalu dipilih untuk digunakan. (I4c624, b/153418028)
  • Memperbaiki error sesekali yang disebabkan oleh setelan Preview.SurfaceProvider yang tidak memunculkan permukaan yang diminta sebelumnya. “java.lang.IllegalStateException: Camera surface session should only fail with request cancellation” (I8e4e7, b/155936225)

Camera-Camera2 Versi 1.0.0-beta03

15 April 2020

androidx.camera:camera-camera2:1.0.0-beta03 dirilis. Versi 1.0.0-beta03 berisi commit berikut.

Perbaikan Bug

  • Perbaikan untuk mendukung rilis camera-core

Camera-Core Versi 1.0.0-beta03

15 April 2020

androidx.camera:camera-core:1.0.0-beta03 dirilis. Versi 1.0.0-beta03 berisi commit berikut.

Perbaikan Bug

  • Memperbaiki regresi dari beta03 yang memanggil bindToLifecycle() dengan nol UseCase akan menyebabkan ditampilkannya pengecualian. Hal ini mencegah pengambilan Camera tanpa mengikat UseCase.

Camera-Camera2 Versi 1.0.0-beta02

1 April 2020

androidx.camera:camera-camera2:1.0.0-beta02 dirilis. Versi 1.0.0-beta02 berisi commit berikut.

Perbaikan Bug

  • Memperbaiki ImageInfo.getRotationDegrees() dari ImageProxy yang dihasilkan oleh ImageCapture sehingga cocok dengan nilai rotasi orientasi EXIF. (Id4281, b/150802561)
  • Pengurutan eksplisit dependensi CameraX dalam build.gradle tidak lagi diperlukan untuk menggunakan implementasi CameraX/Camera2 default. Untuk kasus di mana deklarasi dependensi yang ketat diperlukan, semua dependensi CameraX sekarang dapat disertakan dalam file build. (I46e88)
  • Memperbaiki masalah IllegalArgumentException yang terjadi pada perangkat yang ukuran layarnya lebih kecil dari 640x480. (Ife3f2, b/150506192)
  • Memperbaiki bindToLifecycle sehingga hanya akan memodifikasi UseCase jika berhasil diikat. Sebelumnya, saat memanggil bindToLifecycle untuk melakukan penghitungan resolusi, UseCase akan diperbarui. Sekarang tidak perlu lagi memperbarui UseCase untuk melakukan penghitungan (I78d9e)

Camera-Core Versi 1.0.0-beta02

1 April 2020

androidx.camera:camera-core:1.0.0-beta02 dirilis. Versi 1.0.0-beta02 berisi commit berikut.

Perbaikan Bug

  • Memperbaiki ImageInfo.getRotationDegrees() dari ImageProxy yang dihasilkan oleh ImageCapture sehingga cocok dengan nilai rotasi orientasi EXIF. (Id4281, b/150802561)
  • Memperbaiki bindToLifecycle sehingga hanya akan memodifikasi UseCase jika berhasil diikat. Sebelumnya, saat memanggil bindToLifecycle untuk melakukan penghitungan resolusi, UseCase akan diperbarui. Sekarang tidak perlu lagi memperbarui UseCase untuk melakukan penghitungan (I78d9e)
  • Memperbaiki masalah di mana sesi pengambilan kasus penggunaan Preview tidak diperbarui saat permukaan pratinjau berubah setelah memanggil Preview.setSurfaceProvider() lebih dari satu kali.

Camera-Camera2 Versi 1.0.0-beta01

26 Februari 2020

androidx.camera:camera-camera2:1.0.0-beta01 dirilis. Versi 1.0.0-beta01 berisi commit berikut.

Perbaikan Bug

  • Mengganti nama SurfaceRequest.setSurface(Surface) menjadi SurfaceRequest.provideSurface(Surface), dan SurfaceRequest.setWillNotComplete() menjadi SurfaceRequest.willNotProvideSurface(). (I224fe)
  • Memperbaiki masalah dengan rasio tinggi lebar yang tidak benar dari gambar yang disimpan setelah mengubah nilai rotasi target menggunakan ImageCapture.setTargetRotation(). (I474ea, b/148763432)
  • Memperbaiki inisialisasi varian aplikasi dengan ProGuard yang diaktifkan dengan mempertahankan flag yang menetapkan penyedia CameraXConfig default. (I2d6c1)

Camera-Core Versi 1.0.0-beta01

26 Februari 2020

androidx.camera:camera-core:1.0.0-beta01 dirilis. Versi 1.0.0-beta01 berisi commit berikut.

Perubahan API

  • Mengganti ListenableFuture di SurfaceRequest.provideSurface() dengan Executor dan Callback. Hal ini menyederhanakan API dengan tidak lagi memerlukan penanganan pengecualian pada provideSurface() dan pemberlakuan yang tidak dapat dibatalkan oleh callback provideSurface(). Hal ini untuk mencegah error pada perangkat lama yang disebabkan oleh pelepasan permukaan terlalu cepat. Objek SurfaceRequest.Result sekarang digunakan untuk melacak bagaimana SurfaceRequest menggunakan Surface yang disediakan. (I7854b)
  • Mengganti nama SurfaceRequest.setSurface(Surface) menjadi SurfaceRequest.provideSurface(Surface), dan SurfaceRequest.setWillNotComplete() menjadi SurfaceRequest.willNotProvideSurface(). (I224fe)

Perbaikan Bug

  • Memperbaiki masalah dengan rasio tinggi lebar yang tidak benar dari gambar yang disimpan setelah mengubah nilai rotasi target menggunakan ImageCapture.setTargetRotation(). (I474ea, b/148763432)
  • Memperbaiki inisialisasi varian aplikasi dengan ProGuard yang diaktifkan dengan mempertahankan flag yang menetapkan penyedia CameraXConfig default. (I2d6c1)
  • Memperbarui dokumentasi untuk API mode flash agar menyertakan nilai yang dimungkinkan. (I4a3ec)

Camera-Camera2 Versi 1.0.0-alpha10

10 Februari 2020

androidx.camera:camera-camera2:1.0.0-alpha10 dirilis. Versi 1.0.0-alpha10 berisi commit berikut.

Perbaikan Bug

  • Meningkatkan stabilitas pada perangkat INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY dengan memastikan Surface hanya dipertahankan selama penggunaan Camera2. (I9dac2)
  • Memperbaiki masalah pratinjau yang tidak terpenuhi pada perangkat LAMA dengan menyesuaikan CONTROL_AE_TARGET_FPS_RANGE dengan benar. (1224638)

Camera-Core Versi 1.0.0-alpha10

10 Februari 2020

androidx.camera:camera-core:1.0.0-alpha10 dirilis. Versi 1.0.0-alpha10 berisi commit berikut.

Perubahan API

  • Memperbarui ImageCapture untuk memungkinkan penyimpanan gambar ke Uri dan OutputStream. Menggabungkan metode takePicture yang kelebihan muatan menjadi satu. Mengupdate aplikasi pengujian untuk menggunakan Uri sebagai contoh kanonis. (Ia3bec)
  • Preview.PreviewSurfaceProvider diganti namanya menjadi Preview.SurfaceProvider. SurfaceProvider tidak lagi mengharuskan developer membuat ListenableFuture-nya sendiri, dan penyediaan Surface sekarang dilakukan melalui objek SurfaceRequest yang baru. Metode Preview.getPreviewSurfaceProvider() telah dihapus karena berpotensi untuk disalahgunakan saat Preview dipasangkan dengan class lain seperti PreviewView. (I20105)
  • getTargetRotation() dan getTargetName() telah ditambahkan ke Preview. (Iceee7)
  • getTargetRotation(), getBackpressureStrategy(), dan getImageQueueDepth() telah ditambahkan dalam ImageAnalysis. (I9d6d9)
  • getTargetRotation() dan getCaptureMode() telah ditambahkan dalam ImageCapture() (I5bc17)
  • Argumen yang sebelumnya diteruskan dalam ImageCapture.OnImageSavedCallback.onError() dan ImageCapture.OnImageCapturedCallback.onError() sekarang telah diganti dengan satu argumen ImageCaptureException, yang masih berisi semua informasi yang sebelumnya diteruskan.
  • Argumen file yang sebelumnya diteruskan dalam ImageCapture.OnImageSavedCallback.onImageSaved() telah dihapus. (I750d2)
  • Class Preview dan ImageCapture sekarang ditandai sebagai final. (I2500b)
  • Memperbarui API dengan metode getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio(), dan getLinearZoom() dari CameraInfo yang digabungkan menjadi getZoomState() yang menampilkan instance ZoomState. (Ib19fe)
  • Menghapus kolom API OPTION_TARGET_CLASS dan OPTION_TARGET_NAME dari CameraXConfig karena ditujukan untuk penggunaan library internal saja. Menghapus konstruktor untuk CameraXConfig.Builder. (I96912)
  • Menghapus persyaratan yang mengharuskan aplikasi memperluas Application guna menginisialisasi CameraX. CameraX sekarang akan diinisialisasi dengan konfigurasi Camera2 default, asalkan artefak camera-camera2 disertakan dalam build.gradle aplikasi. (I58ff5) (b/146923574)

Camera-Camera2 Versi 1.0.0-alpha09

22 Januari 2020

androidx.camera:camera-camera2:1.0.0-alpha09 dirilis. Versi 1.0.0-alpha09 berisi commit berikut.

Perubahan API

  • Menambahkan jalur interop camera2 untuk mengekstrak ID kamera Camera2. Anda dapat mengekstrak ID kamera dari CameraInfo menggunakan Camera2CameraInfo.extractCameraId(). Contoh kode berikut menunjukkan cara penggunaannya:

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

    Class Camera2CameraInfo memerlukan markerClass ExperimentalCamera2Interop.

Camera-Core Versi 1.0.0-alpha09

22 Januari 2020

androidx.camera:camera-core:1.0.0-alpha09 dirilis. Versi 1.0.0-alpha09 berisi commit berikut.

Perubahan API

  • Parameter SurfaceOrientedMeteringPointFactory, useCaseForSurface, telah diganti namanya menjadi useCaseForAspectRatio dan dokumentasi referensinya diperluas.
  • Metode FocusMeteringAction.Builder.from() digantikan oleh konstruktor FocusMeteringAction.Builder().
  • Menghapus DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float). Aplikasi harus menggunakan konstruktor yang mengambil parameter Display dan meneruskan tampilan saat ini.
  • Penyempurnaan Javadoc untuk API pengukuran dan fokus terkait MeteringMode dan 3A Flag, serta penggunaan parameter Display.
  • Memperluas dokumentasi referensi untuk setZoomRatio dan setLinearZoom.

Perbaikan bug

  • Memperbaiki masalah saat menutup lalu membuka kamera mengakibatkan kegagalan pemeriksaan "Precondition".
  • Memperbaiki ConcurrentModificationException yang dapat terjadi saat menggunakan API zoom dan senter.
  • Memperbaiki masalah sehingga kini resolusi yang dipilih mendekati resolusi yang diminta saat ukuran dimensi mod16 tersedia.
  • API startFocusMetering dan cancelFocusMetering sekarang berfungsi seperti yang didokumentasikan, dengan waktu yang tepat dan berpotensi menampilkan error saat terjadi.
  • Memperbaiki masalah saat resolusi target tertentu diminta dengan rasio tinggi lebar crop di perangkat yang tidak mendukung ukuran tersebut. Sekarang, ukuran yang tidak di-crop dari resolusi yang memadai untuk mengikat permintaan awal akan dipilih jika tersedia.

Camera-Camera2 Versi 1.0.0-alpha08

18 Desember 2019

androidx.camera:camera-camera2:1.0.0-alpha08 dirilis. Versi 1.0.0-alpha08 berisi commit berikut.

Masalah Umum

  • Tidak semua opsi permintaan pengambilan Camera2 berfungsi saat menggunakan interop Camera2. Jika opsi yang diminta tidak didukung, sesi akan gagal dimulai dan error seperti berikut dapat terjadi: 09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination

Perbaikan Bug

  • Memperbaiki masalah layar hitam pratinjau yang terjadi setelah memutar atau mengalihkan kamera ke API Level 21 dan 22.

Perubahan API

  • Eksperimental: Menambahkan jalur interop camera2 untuk mengekstrak ID Kamera.

Camera-Core Versi 1.0.0-alpha08

18 Desember 2019

androidx.camera:camera-core:1.0.0-alpha08 dirilis. Versi 1.0.0-alpha08 berisi commit berikut.

Masalah Umum

  • Aplikasi yang menggunakan PreviewView atau CameraView mungkin memiliki pratinjau rasio tinggi lebar yang salah. Hal ini terjadi setelah proses dijeda atau dilanjutkan di beberapa perangkat LENGKAP, seperti Pixel2.

Perbaikan Bug

  • Memperbarui dokumentasi untuk FocusMeteringAction dan CameraControl.
  • Mengimplementasikan TorchControl untuk enableTorch() dan getTorchState().

Perubahan API

  • Menyembunyikan IntDefs dan memindahkan konstanta IntDef ke luar definisi IntDef.
  • Memindahkan rotationDegrees dari class OnImageCaptureCallback ke ImageInfo.
  • Memindahkan rotationDegrees dari class Analyzer ke ImageInfo.

Camera-Camera2 Versi 1.0.0-alpha07

4 Desember 2019

androidx.camera:camera-camera2:1.0.0-alpha07 dirilis. Versi 1.0.0-alpha07 dari camera-camera2 berisi commit berikut

  • Camera2Config kini tersedia untuk digunakan dengan menginisialisasi dan mengonfigurasi implementasi berbasis Camera2 untuk CameraX. Detail selengkapnya tentang cara menggunakannya pada inisialisasi tersedia di bagian camera-core dalam catatan rilis.
  • Fungsionalitas interop camera2 kini ditandai sebagai eksperimental dan dipindahkan ke paket lain, androidx.camera.camera2.interop.

Camera-Core Versi 1.0.0-alpha07

4 Desember 2019

androidx.camera:camera-core:1.0.0-alpha07 dirilis. Versi 1.0.0-alpha07 dari camera-core berisi commit berikut

Perlu diketahui bahwa ada beberapa perubahan penting dalam rilis Alfa ini selagi kami bersiap untuk rilis Beta. Sebaiknya tinjau perubahan tersebut dan sampaikan masukan Anda ke Google Group CameraX. Bagi developer yang menggunakan CameraX di aplikasi yang ada di Play Store, sebaiknya tunggu rilis Beta resmi sebelum mengupgrade library dalam aplikasi Anda.

Perubahan API

  • Penting: Inisialisasi CameraX telah diubah. Aplikasi harus mengimplementasikan CameraXConfig.Provider dan menggunakan Camera2Config default yang disediakan oleh androidx.camera.camera2. Penggunaan umumnya adalah:

    import androidx.camera.camera2.Camera2Config
    import androidx.camera.core.CameraXConfig
    
    public class MyCameraXApplication : Application(),  CameraXConfig.Provider {
        override fun getCameraXConfig(): CameraXConfig {
                return Camera2Config.defaultConfig(this)
        }
    }
    
  • Class CameraX telah dihapus. bindToLifecycle(), unbind(), unbindAll(), isBound(), dan hasCamera() yang sebelumnya disediakan oleh panggilan class CameraX kini tersedia melalui ProcessCameraProvider.

  • Instance ProcessCameraProvider per proses diperoleh secara asinkron menggunakan metode statis ProcessCameraProvider.getInstance(), yang menampilkan hasil yang dapat diproses, serta menyediakan ProcessCameraProvider setelah selesai. Di sini, onCreate() ditampilkan untuk penggunaan umum. Anda dapat memanggil getInstance() nanti dalam siklus proses aktivitas untuk menunda latensi inisialisasi di lain waktu (misalnya saat tindakan pengguna membuka UI kamera).

    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);
      }
    
  • Pemroses dapat ditambahkan ke ListenableFuture yang ditampilkan oleh getInstance(). Hal ini memastikan penyedia kamera dapat diambil dari Future tanpa memblokir di Future.get()

    cameraProviderFuture.addListener(Runnable {
      val cameraProvider = cameraProviderFuture.get()
      cameraProvider.bindToLifecycle(...)
    }, ContextCompat.getMainExecutor(this))
    
  • Pemilihan kamera kini dilakukan oleh pemilih kamera, bukan per kasus penggunaan

    val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
    
  • CameraProvider.bindToLifecycle diberi pemilik siklus proses, pemilih kamera, dan kasus penggunaan, yang dikaitkan ke pemilik siklus proses yang dimaksud dan dijalankan untuk kamera yang dipilih.

    cameraProvider.bindToLifecycle(this as LifecycleOwner,
           cameraSelector, preview, imageAnalysis)
    
  • Class kasus penggunaan “Config” dihapus. Anda dapat membuat kasus penggunaan secara langsung dengan menetapkan opsi pada setiap builder kasus penggunaan. Contoh:

    preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
    
  • Kasus penggunaan Pratinjau telah diperbarui agar menerima permukaan yang dibuat dan dikelola oleh aplikasi untuk memastikan praktik terbaik Android. Sangat direkomendasikan untuk menggunakan class tampilan PreviewView yang disediakan dalam paket camera-view.

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • Lihat dokumentasi untuk menyematkan permukaan yang dikelola aplikasi. Dalam hal ini, aplikasi mengelola siklus proses permukaan.

  • Penting: Implementasi metode Analyzer ImageAnalysis harus memanggil image.close() pada gambar yang diterima setelah selesai menggunakannya. Jika tidak, gambar baru mungkin tidak diterima atau kamera mungkin berhenti berfungsi, bergantung pada setelan back pressure. Lihat dokumen referensi untuk detailnya.

  • ImageAnalysis ImageReaderMode kini diubah menjadi strategi backpressure intdef.

  • ImageProxy.getImage() ditandai sebagai eksperimental. Aplikasi harus menganotasikan penggunaan, misalnya melalui @androidx.camera.core.ExperimentalGetImage

  • Persyaratan anotasi UIThread untuk Analyzer telah dihapus.

  • Fungsi ImageAnalysis.clearAnalyzer() ditambahkan untuk menghapus penganalisis.

  • Pemroses dengan lebih dari 1 metode telah diganti namanya menjadi Callback:

    • ImageCapture.OnImageCapturedListener sekarang menjadi ImageCapture.OnImageCapturedCallback
    • ImageCapture.OnImageSavedListener sekarang menjadi ImageCapture.OnImageSavedCallback
    • VideoCapture.OnVideoSavedListener sekarang menjadi VideoCapture.OnVideoSavedCallback
  • Enum telah diubah menjadi IntDef

  • Kontrol zoom telah ditambahkan:

    • CameraControl.setLinearZoom()
    • CameraControl.setZoomRatio()
    • CameraInfo.getLinearZoom()
    • CameraInfo.getMaxZoomRatio()
    • CameraInfo.getZoomRatio()
  • CameraInfo.hasFlashUnit() ditambahkan untuk menentukan apakah perangkat keras flash/senter tersedia.

  • CameraInfo.isFlashAvailable() telah dihapus Senter menggantikan fungsionalitas flash. Detail selengkapnya disertakan dalam dokumentasi referensi.

  • Kolom ImageCapture.Metadata digantikan oleh aksesor get/set/is.

  • startFocusMetering dan cancelFocusMetering kini menampilkan ListenableFutures yang merepresentasikan operasi panggilan asinkron.

  • MeteringPoints sekarang berfungsi sebagai tuas untuk tindakan pengukuran, dan dihasilkan oleh setelan pabrik. Aplikasi harus menggunakan setelan pabrik yang ada, bukan setelan pabrik kustom.

Perbaikan masalah

  • Memperbaiki masalah pengambilan gambar saat melanjutkan proses (setelah jeda sebelumnya mengambil gambar yang menunggu penyelesaian).
  • Masalah Umum: CameraControl.enableTorch() berfungsi, tetapi ListenableFuture<Void> yang ditampilkan selalu merupakan hasil complete(success) langsung, meskipun unit flash tidak ada. Versi berikutnya akan memperbaiki masalah ini pada perilaku terakhir: Apabila tidak ada unit flash, enableTorch(true) akan langsung gagal (tidak akan mengirim permintaan ke CaptureSession), dan TorchState tetap Nonaktif.
  • Masalah Umum: startFocusAndMetering dan cancelFocusAndMetering memulai dan membatalkan pengukuran fokus, tetapi langsung menampilkan hasil completed (success) yang tidak menunjukkan perilaku yang didokumentasikan. FocusMeteringResult dari ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering() adalah hasil palsu, yaitu isFocusSuccessful(), dan selalu "false", berbeda dari perilaku terdokumentasi yang dimaksud.
  • Masalah Umum: Setelan pabrik titik pengukuran yang akan digunakan dengan peristiwa sentuh PreviewView kini sedang dikembangkan. Untuk saat ini, aplikasi yang menghubungkan permukaan terkelola kustom dapat menggunakan setelan pabrik titik pengukuran yang ada; jika tidak, fungsionalitas fokus sentuh untuk PreviewView tidak tersedia.

Camera-Camera2 dan Camera-Core Versi 1.0.0-alpha06

9 Oktober 2019

androidx.camera:camera-camera2:1.0.0-alpha06 dan androidx.camera:camera-core:1.0.0-alpha06 dirilis. Keduanya adalah commit yang disertakan dalam camera-camera2:1.0.0-alpha06 dan yang disertakan dalam camera-core:1.0.0-alpha06.

Fitur baru

Perubahan pada rasio tinggi lebar setelan:

  • setTargetAspectRatioMode() telah ditambahkan dan menerima argumen enum. Penambahan ini menyetel Mode Rasio Tinggi Lebar dengan opsi RATIO_4_3 atau RATIO_16_9, bukan rasio tinggi lebar arbitrer. Hal ini lebih sesuai dengan fakta bahwa hanya rasio tinggi lebar tertentu yang tersedia dari kamera, bukan rasio arbitrer.
    • Saat ini, rasio yang tersedia hanyalah 16:9 dan 4:3. Dalam kasus 1:1, hanya perangkat tertentu yang menyediakan opsi ini dari kamera, dan hanya dalam resolusi yang terbatas. Aplikasi yang merancang antarmuka atau pemrosesan 1:1 sebaiknya menggunakan pilihan 16:9 atau 4:3 yang lebih fleksibel dan meng-crop tampilan atau memproses subregion.
    • Rasio tinggi lebar ini diorientasikan untuk menggunakan area sensor maksimum.
  • getTargetAspectRatio() telah ditambahkan ke API konfigurasi kasus penggunaan, yang menampilkan rasio tinggi lebar yang ditargetkan oleh output kasus penggunaan.
  • Metode setTargetAspectRatio(Rational aspectRatio) telah diubah untuk ImageCapture menjadi setTargetAspectRatioCustom(Rational aspectRatio). Saat ditetapkan, output ImageCapture akan di-crop sebagaimana sesuai.

Executor API

  • Fungsi berikut menerima parameter eksekutor, yang memungkinkan aplikasi mengontrol eksekutor mana yang akan digunakan untuk menjalankan fungsi.
    • Preview.setOnPreviewOutputUpdateListener() API. Jika tidak tersedia untuk fungsi tersebut, eksekutor akan dijalankan di thread utama.
    • Preview.setOnPreviewOutputUpdateListener
    • FocusMeteringAction.Builder.setAutoFocusCallback
    • ImageAnalysis.setAnalyzer
    • ImageCapture.takePicture
    • CameraView.takePicture
    • CameraView.startRecording
    • VideoCapture.startRecording

CameraInfo ditambahkan dengan pemeriksaan Flash Available dan Sensor Rotation API

  • Menambahkan metode CameraInfo dan getCameraInfo, yang memungkinkan aplikasi memeriksa apakah lensa yang menghadap CameraInfo tersedia dan apakah flash tersedia di kamera tersebut. Contoh:

    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() telah ditambahkan Class ini memberikan orientasi sensor kamera yang terkait dengan orientasi alami perangkat, atau demi kenyamanan, yang terkait dengan orientasi yang ditentukan oleh rotasi Surface (yang menentukan orientasi terkait dengan orientasi alami).

Perubahan API dan perbaikan bug

  • Rasio Tinggi Lebar: Untuk setiap kasus penggunaan, aplikasi sebaiknya hanya memanggil salah satu dari setTargetResolution() dan setTargetAspectRatio(). Memanggil kedua builder tersebut akan menampilkan error.
    • Umumnya, sangat direkomendasikan untuk menggunakan setTargetAspectRatio() berdasarkan desain UI aplikasi. Resolusi spesifik didasarkan pada kasus penggunaan. Contohnya, pratinjau ditentukan mendekati resolusi layar dan pengambilan gambar menyediakan gambar diam beresolusi tinggi. Lihat tabel resolusi otomatis untuk informasi selengkapnya.
    • Gunakan setTargetResolution() untuk kasus yang lebih spesifik, seperti saat resolusi minimum (untuk menghemat komputasi) atau maksimum (untuk memproses detail) diperlukan.
  • Executor API: Menghapus panggilan setCallbackHandler() dari API konfigurasi kasus penggunaan. Sebagai gantinya, aplikasi dapat menetapkan eksekutor sebagai parameter di berbagai API lain yang menetapkan callback.
  • Memperbarui anotasi null untuk berbagai fungsi.
  • Memperbaiki masalah yang menyebabkan ditampilkannya java.lang.IllegalStateException at Camera$StateCallback.onError saat membuka kamera.
  • Memperbaiki masalah di mana resolusi yang dipilih terlalu kecil (kurang dari 640x480) saat aplikasi meminta resolusi yang lebih besar atau resolusi default, sehingga menghasilkan gambar pratinjau yang terlihat kotak-kotak atau buram. Aplikasi yang secara khusus memerlukan resolusi lebih kecil dapat memintanya secara eksplisit.
  • Memperbaiki masalah di mana kamera akan menampilkan layar hitam (gagal memulai kamera) setelah beralih dari intent yang meluncurkan aplikasi kamera lain.
  • Memperbaiki bug yang menampilkan error berikut saat aplikasi dimulai atau dihentikan berulang-ulang; java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
  • Memperbaiki error berikut yang terjadi saat menonaktifkan ImageAnalysis: java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
  • Menambahkan pengujian tambahan untuk alur pemutusan koneksi kamera.
  • Meningkatkan keandalan sistem pengujian saat menjalankan pengujian kamera secara berturut-turut.

Camera-Camera2 dan Camera-Core Versi 1.0.0-alpha05

5 September 2019

androidx.camera:camera-camera2:1.0.0-alpha05 dan androidx.camera:camera-core:1.0.0-alpha05 dirilis. Berikut adalah commit yang disertakan dalam camera-camera2:1.0.0-alpha05, dan commit yang disertakan dalam camera-core:1.0.0-alpha05.

  • Perubahan API: Mengganti nama variabel error kasus penggunaan:

    • ImageCapture.UseCaseError diganti nama menjadi ImageCapture.ImageCaptureError
    • VideoCapture.UseCaseError diganti nama menjadi VideoCapture.VideoCaptureError
  • Menambahkan CameraControl API dengan Tap-to-Focus API

    • Menambahkan API untuk mendapatkan CameraControl dari CameraX untuk kamera, yang dipilih sesuai arah hadap lensa:

      CameraX.getCameraControl(LensFacing lensFacing)

    • Menambahkan MeteringPointFactory, MeteringPoint, MeteringMode, dan FocusMeteringAction untuk menjalankan Tap-to-Focus:

      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();
      
    • Menambahkan API bagi CameraControl untuk memulai dan membatalkan pengukuran fokus:

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

    • Menambahkan API untuk Metering Point Factories yang membantu menerjemahkan koordinat ketuk menjadi koordinat sensor, berdasarkan class tampilan:

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

  • Memberlakukan pemanggilan metode berikut di thread Utama (UI), yang memunculkan IllegalStateException, padahal seharusnya tidak. Versi mendatang akan memungkinkan penggunaan di thread lain dan memastikan serialisasi.

    • CameraX.bindToLifecycle()
    • CameraX.unbind()
    • CameraX.unbindAll()
    • ImageAnalysis.setAnalyzer()
    • ImageAnalysis.getAnalyzer()
    • ImageAnalysis.removeAnalyzer()
    • Preview.removePreviewOutputListener()
    • Preview.getOnPreviewOutputUpdateListener()
    • Preview.setOnPreviewOutputUpdateListener()
  • Berbagai setelan konfigurasi sekarang menerima parameter null, dan pengambil yang terkait dapat menampilkan null.

  • Memperbaiki masalah saat menjalankan pengujian di emulator yang tidak mendukung setelan AF/AE/AWB.

  • Memperbaiki bug rotasi saat menganalisis gambar.

  • Memperbaiki bug di mana pratinjau terlihat hitam di awal (data kamera tidak ada), setelah rotasi atau peralihan antara kamera depan dan belakang.

  • Menghapus pengujian untuk beberapa kasus penggunaan analisis gambar serentak. Untuk memastikan kompatibilitas, aplikasi sebaiknya hanya mengaitkan satu kasus penggunaan analisis gambar.

  • Menambahkan pengujian robolektrik awal untuk kamera palsu dalam paket pengujian kamera (WIP).

  • Pengujian Camera2Inititalizer dihapus, karena cakupannya tidak jelas/menyesatkan.

Camera-Camera2 dan Camera-Core Versi 1.0.0-alpha04

7 Agustus 2019

androidx.camera:camera-camera2:1.0.0-alpha04 dan androidx.camera:camera-core:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 berisi commit berikut.

Fitur Baru

Perubahan pada pemilihan Rasio Tinggi Lebar dan Resolusi

Sasaran CameraX adalah menginisialisasi sesi kamera dengan sukses. Artinya, CameraX menerima resolusi/rasio tinggi lebar berdasarkan kemampuan perangkat, untuk memulai sesi pengambilan sebagai sasaran pertamanya sehingga permintaan yang tepat mungkin tidak diikuti. Hal ini dapat terjadi karena:

  • Perangkat tidak mendukung resolusi yang diminta
  • Masalah kompatibilitas seperti pada perangkat LAMA di mana resolusi tertentu harus digunakan agar dapat beroperasi dengan benar
  • Pada beberapa perangkat, format tertentu hanya tersedia pada rasio tinggi lebar tertentu
  • Preferensi "nearest mod16" untuk JPEG atau encoding video. Lihat CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP

Meskipun CameraX membuat dan mengelola sesi, Anda harus selalu memeriksa ukuran gambar yang ditampilkan pada output kasus penggunaan dalam kode Anda dan menyesuaikannya.

Beberapa perubahan telah dibuat untuk menyetel resolusi dan rasio tinggi lebar, yang dimaksudkan untuk menjadikan API ini lebih jelas:

  • Kasus penggunaan pratinjau sekarang dianggap memiliki rasio tinggi lebar default 4:3 jika tidak ada rasio tinggi lebar yang ditetapkan.
  • Saat CameraX secara internal mempertimbangkan perubahan pada resolusi dan rasio tinggi lebar yang diminta berdasarkan kemampuan perangkat, percobaan untuk mempertahankan rasio tinggi lebar yang sama akan dilakukan (seperti yang ditentukan oleh panggilan setTargetAspectRatio atau setTargetResolution)
  • Versi "Nearest mod16" resolusi ini dianggap sebagai rasio tinggi lebar yang sama.

Mode Non-Blocking ImageAnalysis

  • ImageReaderMode.ACQUIRE_LATEST_IMAGE sekarang bersifat tidak memblokir. Gambar terbaru dalam antrean akan diambil, tetapi gambar yang tidak digunakan akan terus-menerus dihapus agar pipeline kamera terhindar dari pemblokiran.
  • Penganalisis dapat menyimpan satu gambar tanpa batas waktu, tanpa menghambat pipeline.
  • Jika aplikasi menyediakan eksekutor yang kemudian melakukan pemblokiran, kasus penggunaan ImageAnalysis akan melakukan pemblokiran.
  • Eksekutor default yang ditetapkan secara internal akan berperilaku sebagai eksekutor yang tidak memblokir.

Perbaikan Bug

  • Memperbaiki masalah waktu tunggu saat menunggu konvergensi 3A ketika mengambil gambar pada perangkat yang tidak memiliki fokus otomatis, eksposur otomatis, dan keseimbangan putih otomatis
  • Memperbaiki masalah saat mengambil gambar dengan cepat menggunakan ImageCapture. Memperbaiki error: java.lang.IllegalStateException: maxImages (2) has already been acquired
  • Memperbaiki masalah saat setLensFacing tidak dipanggil untuk suatu kasus penggunaan, yang mengakibatkan java.lang.IllegalArgumentException: Unable to get camera ID for use case.
  • Memperbaiki masalah di mana perangkat LAMA membutuhkan rasio tinggi lebar tertentu sebagai resolusi JPEG maksimum
  • Memperbaiki masalah saat memindahkan aplikasi ke latar belakang selagi kamera digunakan
  • Memperbaiki masalah pada API <25 untuk menghapus error checkAndUpdateEglState: invalid current EGLDisplay
  • Memperbaiki masalah saat unbinding pratinjau setelah mengaktifkan dan memulai ekstensi
  • Artefak build untuk camera-view dan camera-extensions sekarang dipublikasikan sebagai versi alfa

Camera-Camera2 dan Camera-Core Versi 1.0.0-alpha03

2 Juli 2019

androidx.camera:camera-core:1.0.0-alpha03 dan androidx.camera:camera-camera2:1.0.0-alpha03 dirilis. Versi 1.0.0-alpha03 berisi commit berikut.

Perubahan API

  • Menambahkan klarifikasi javadoc untuk "target" dalam panggilan konfigurasi setTarget

Camera-Core

  • Memperbaiki error Input/Output Surface yang tidak dikonfigurasi pada open/close atau bind/unbind yang cepat
  • Berpindah ke implementasi Futures baru
  • Menguji perbaikan untuk pengujian yang lebih andal
  • Pengujian integrasi Core sekarang menampilkan waktu pengambilan foto
  • Mengembangkan class compat internal untuk Executors
  • Waktu pengambilan gambar aplikasi pengujian menunggu hingga pengambilan gambar sebelumnya selesai & meningkatkan stabilitas

Ekstensi

  • Menambahkan pemeriksaan versi
  • Cakupan pengujian tambahan - callback peristiwa ekstensi
  • Penyempurnaan untuk gambar dan metadata yang terkait secara internal
  • Perbaikan untuk peralihan mode dalam aplikasi pengujian

Camera-Camera2 dan Camera-Core Versi 1.0.0-alpha02

5 Juni 2019

androidx.camera:camera-core:1.0.0-alpha02 dan androidx.camera:camera-camera2:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit berikut.

Perbaikan bug

  • Memperbaiki masalah div by zero saat menggunakan emulator
  • Memperbaiki error NullPointerException/Surface Abandoned yang terjadi pada beberapa perangkat saat mengambil foto dengan cepat sambil melakukan unbinding dan rebinding kasus penggunaan dengan sangat cepat.
  • Memperbaiki masalah internal untuk memastikan update permintaan pengambilan gambar memengaruhi semua bagian secara konsisten
  • Peningkatan stabilitas saat memulai ulang kasus penggunaan dalam instance aplikasi baru
  • Perubahan arsitektur internal untuk mendukung berbagai eksekutor dalam API
  • Klarifikasi Javadoc tambahan terkait class CameraX dan pengelolaan siklus proses
  • Menambahkan pengujian berinstrumen untuk aplikasi pengujian performa Antelope
  • Menghapus kebutuhan akan '-keepattributes Signature' pada konfigurasi ProGuard aplikasi

Camera-Camera2 dan Camera-Core 1.0.0-alpha01

7 Mei 2019

androidx.camera:camera-core:1.0.0-alpha01 dan androidx.camera:camera-camera2:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit berikut.

Camera-Lifecycle Versi 1.0.0

Camera-Lifecycle Versi 1.0.0-beta09

16 September 2020

androidx.camera:camera-lifecycle:1.0.0-beta09 dirilis. Versi 1.0.0-beta09 berisi commit berikut ini.

Camera-Lifecycle Versi 1.0.0-beta08

19 Agustus 2020

androidx.camera:camera-lifecycle:1.0.0-beta08 dirilis. Versi 1.0.0-beta08 berisi commit berikut.

Perbaikan Bug

  • Inisialisasi tidak akan error lagi saat menggunakan Konteks yang tidak mengembalikan objek Aplikasi dari Context.getApplicationContext(). (I3d3c9, b/160817073)

Camera-Lifecycle Versi 1.0.0-beta07

22 Juli 2020

androidx.camera:camera-lifecycle:1.0.0-beta07 dirilis. Versi 1.0.0-beta07 berisi commit berikut ini.

Camera-Lifecycle Versi 1.0.0-beta06

24 Juni 2020

androidx.camera:camera-lifecycle:1.0.0-beta06 dirilis. Versi 1.0.0-beta06 berisi commit berikut ini.

Perubahan API

  • CameraX kini dapat dikonfigurasikan dengan ProcessCameraProvider#configureInstance() sebelum memanggil ProcessCameraProvider#getInstance(). Hal ini memungkinkan penyesuaian CameraXConfig tanpa memerlukan penerapan CameraXConfig.Provider di class Application aplikasi. (Ia1a8d)

Camera-Lifecycle Versi 1.0.0-beta05

10 Juni 2020

androidx.camera:camera-lifecycle:1.0.0-beta05 dirilis. Versi 1.0.0-beta05 berisi commit berikut.

Perbaikan Bug

  • Memperbaiki error ketika aplikasi dimulai saat menginisialisasi CameraX sementara ponsel dalam mode Jangan Ganggu. InitializationException yang berisi CameraUnavailableException akan ditetapkan ke ListenableFuture pada hasil inisialisasi, bukan membuat aplikasi error. (I9909a, b/149413835)

Camera-Lifecycle Versi 1.0.0-beta04

27 Mei 2020

androidx.camera:camera-lifecycle:1.0.0-beta04 dirilis. Versi 1.0.0-beta04 berisi commit berikut.

Camera-Lifecycle Versi 1.0.0-beta03

15 April 2020

androidx.camera:camera-lifecycle:1.0.0-beta03 dirilis. Versi 1.0.0-beta03 berisi commit berikut.

Perbaikan Bug

  • Memperbaiki regresi dari beta03 yang memanggil bindToLifecycle() dengan nol UseCase akan menyebabkan ditampilkannya pengecualian. Hal ini mencegah pengambilan Camera tanpa mengikat UseCase.
  • Perbaikan untuk mendukung rilis camera-core

Camera-Lifecycle Versi 1.0.0-beta01

26 Februari 2020

androidx.camera:camera-lifecycle:1.0.0-beta01 dirilis. Versi 1.0.0-beta01 berisi commit berikut.

Perbaikan Bug

  • Memperbaiki dokumentasi yang perlu diperhatikan saat mendapatkan ProcessCameraProvider selama proses inisialisasi, konfigurasi default akan digunakan dan memperluas Application bersifat opsional. (I5e395)

Camera-Lifecycle Versi 1.0.0-beta02

1 April 2020

androidx.camera:camera-lifecycle:1.0.0-beta02 dirilis. Versi 1.0.0-beta02 berisi commit berikut.

Perbaikan Bug

  • Update untuk mendukung perbaikan bug pada artefak camera-camera2:1.0.0-beta02 dan camera-core:1.0.0-beta02.

Camera-Lifecycle Versi 1.0.0-alpha10

10 Februari 2020

androidx.camera:camera-lifecycle:1.0.0-alpha10 dirilis. Versi 1.0.0-alpha10 berisi commit berikut.

Perubahan API

  • Menambahkan anotasi @MainThread ke metode BindToLifecycle, unbind, dan unbindAll. (I990d2)

Camera-Lifecycle Versi 1.0.0-alpha03

22 Januari 2020

androidx.camera:camera-lifecycle:1.0.0-alpha03 dirilis. Versi 1.0.0-alpha03 berisi commit berikut.

Update

  • Berbagai perbaikan dan update untuk mendukung perubahan Camera Core & Camera2.

Camera-Lifecycle Versi 1.0.0-alpha02

18 Desember 2019

androidx.camera:camera-lifecycle:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit berikut.

Perubahan dependensi

  • Diupdate untuk menggunakan androidx.camera:camera-core:1.0.0-alpha08.

Camera-Lifecycle Versi 1.0.0-alpha01

4 Desember 2019

androidx.camera:camera-lifecycle:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 dari camera-lifecycle berisi commit berikut

Catatan API

  • Artefak camera-lifecycle ditambahkan, untuk menyediakan antarmuka LifeCycleCameraProvider, dan implementasi yang disebut ProcessCameraProvider, yang memberikan banyak fungsi class CameraX sebelumnya dalam core dan diperoleh melalui metode getInstance().
  • Aplikasi harus menyertakan library camera-lifecycle untuk menggunakan CameraX.
  • Lihat catatan di bagian camera-core untuk mengetahui cara melakukan inisialisasi CameraX menggunakan ProcessCameraProvider.

Camera-Extensions dan Camera-View Versi 1.0.0

Camera-Extensions Versi 1.0.0-alpha16

16 September 2020

androidx.camera:camera-extensions:1.0.0-alpha16 dirilis. Versi 1.0.0-alpha16 berisi commit berikut ini.

Perbaikan Bug

  • Menambahkan metode di ExtensionsManager untuk mendapatkan objek Extensions yang digunakan untuk mengaktifkan dan mengkueri ekstensi di instance Kamera (I4fb7e)

Camera-View Versi 1.0.0-alpha16

16 September 2020

androidx.camera:camera-view:1.0.0-alpha16 dirilis. Versi 1.0.0-alpha16 berisi commit berikut ini.

Perubahan API

  • Menghapus PreviewView#setDeviceRotationForRemoteDisplayMode() dan PreviewView#getDeviceRotationForRemoteDisplayMode(). Kedua metode ini berguna untuk menyesuaikan rotasi pratinjau, jika rotasi yang diinginkan bukanlah rotasi tampilan, misalnya tampilan jarak jauh. Untuk menangani rotasi pratinjau non-tampilan saat ini, setel rotasi yang diinginkan dengan Preview#setTargetRotation() dan PreviewView#getViewPort(targetRotation) yang baru ditambahkan. (Ib62cc)
  • Mengganti nama createSurfaceProvider() menjadi getSurfaceProvider(). Metode ini akan selalu menampilkan instance yang sama dari Preview.SurfaceProvider. (Iff83c)

Perbaikan Bug

  • Memaksa PreviewView menggunakan TextureView jika efek ekstensi diaktifkan dan implementasi library vendor perlu melakukan proses khusus pada permukaan output. (I0c3cc)
  • Mengizinkan rotasi target arbitrer untuk Pratinjau. Info transformasi dihitung dan ditampilkan kepada pengguna dengan cepat melalui callback TranformationInfoListener yang baru. (I21470)

Masalah Umum

  • Di PreviewView, OnClickListener#onClick() tidak dipanggil saat pengguna akhir mengklik PreviewView. Peristiwa sentuh salah digunakan oleh PreviewView#onTouchEvent(). Masalah ini akan diperbaiki dalam rilis berikutnya.
  • MeteringPoint yang diperoleh dari PreviewView#getMeteringPointFactory() mungkin salah jika Area Pandang digunakan dengan PreviewView.

Camera-Extensions Versi 1.0.0-alpha15

19 Agustus 2020

androidx.camera:camera-extensions:1.0.0-alpha15 dirilis. Versi 1.0.0-alpha15 berisi commit berikut ini.

Perbaikan Bug

  • Metode ExtensionsManager.init() sekarang menggunakan Konteks sebagai parameter, bukan memiliki argumen 0. (Ife754)
  • Inisialisasi tidak akan error lagi saat menggunakan Konteks yang tidak mengembalikan objek Aplikasi dari Context.getApplicationContext(). (I3d3c9, b/160817073)

    Camera-View Versi 1.0.0-alpha15

    19 Agustus 2020

androidx.camera:camera-view:1.0.0-alpha15 dirilis. Versi 1.0.0-alpha15 berisi commit berikut ini.

Perbaikan Bug

  • DisplayOrientedMeteringPointFactory menggunakan instance CameraInfo, bukan CameraSelector, sehingga ada pemetaan langsung titik yang akan dihasilkan oleh setelan pabrik pada Kamera. Semua class yang menggunakan DisplayOrientedMeteringPointFactory juga menggunakan instance CameraInfo, bukan CameraSelector. (I400c1)
  • Menghapus TextureViewMeteringPointFactory. PreviewView menyediakan API publik (createMeteringPointFactory()) untuk membuat setelan pabrik titik pengukuran terlepas dari penggunaan TextureView atau SurfaceView. (Ide693)
  • Mengganti nama mode implementasi SURFACE_VIEW/TEXTURE_VIEW PreviewView menjadi PERFORMANCE/COMPATIBLE. PERFORMANCE adalah mode SURFACE_VIEW lama, dan COMPATIBLE adalah mode TEXTURE_VIEW lama. (I0edc2)
  • Untuk pengambilan gambar, timpa tanda horizontal balik dalam metadata berdasarkan arah kamera. (I28499)

Camera-Extensions Versi 1.0.0-alpha14

22 Juli 2020

androidx.camera:camera-extensions:1.0.0-alpha14 dirilis. Versi 1.0.0-alpha14 berisi commit berikut.

Camera-View Versi 1.0.0-alpha14

22 Juli 2020

androidx.camera:camera-view:1.0.0-alpha14 dirilis. Versi 1.0.0-alpha14 berisi commit berikut.

Camera-Extensions Versi 1.0.0-alpha13

24 Juni 2020

androidx.camera:camera-extensions:1.0.0-alpha13 dirilis. Versi 1.0.0-alpha013 berisi commit berikut ini.

Perbaikan Bug

  • Penambahan antarmuka eksperimental untuk memfilter kamera berdasarkan ID kamera dan CameraCharacteristics. (I28f61)

Camera-View Versi 1.0.0-alpha13

24 Juni 2020

androidx.camera:camera-view:1.0.0-alpha13 dirilis. Versi 1.0.0-alpha013 berisi commit berikut ini.

Perbaikan Bug

  • CameraView tidak lagi error dengan IllegalArgumentException saat mengikat ke LifecycleOwner yang transisi Siklus proses ke status DESTROYED segera setelah terikat. Siklus Proses Binding dalam status DESTROYED tidak akan berupaya membuka kamera. (I7c2b8)
  • PreviewView StreamState sekarang tersedia melalui CameraView.getPreviewStreamState() (I21a2b)

Camera-Extensions Versi 1.0.0-alpha12

10 Juni 2020

androidx.camera:camera-extensions:1.0.0-alpha12 dirilis. Versi 1.0.0-alpha12 berisi commit berikut.

Perbaikan Bug

  • Memperbaiki error ketika aplikasi dimulai saat menginisialisasi CameraX sementara ponsel dalam mode Jangan Ganggu. InitializationException yang berisi CameraUnavailableException akan ditetapkan ke ListenableFuture pada hasil inisialisasi, bukan membuat aplikasi error. (I9909a, b/149413835)

Camera-View Versi 1.0.0-alpha12

10 Juni 2020

androidx.camera:camera-view:1.0.0-alpha12 dirilis. Versi 1.0.0-alpha12 berisi commit berikut.

Perbaikan Bug

  • Menambahkan PreviewView#getBitmap() API yang menampilkan representasi Bitmap dari konten yang ditampilkan di permukaan pratinjau. (I9b500, b/157659818)

Camera-Extensions Versi 1.0.0-alpha11

27 Mei 2020

androidx.camera:camera-extensions:1.0.0-alpha11 dirilis. Versi 1.0.0-alpha11 berisi commit berikut.

Camera-View Versi 1.0.0-alpha12

10 Juni 2020

androidx.camera:camera-view:1.0.0-alpha12 dirilis. Versi 1.0.0-alpha12 berisi commit berikut.

Fitur Baru

Perubahan API

Perbaikan Bug

  • Menambahkan PreviewView#getBitmap() API yang menampilkan representasi Bitmap dari konten yang ditampilkan di permukaan pratinjau. (I9b500, b/157659818)

Camera-View Versi 1.0.0-alpha11

27 Mei 2020

androidx.camera:camera-view:1.0.0-alpha11 dirilis. Versi 1.0.0-alpha11 berisi commit berikut.

Perubahan API

  • Menambahkan PreviewView#getPreviewStreamState API yang memungkinkan aplikasi mengamati apakah pratinjau sedang streaming atau tidak. Saat PreviewView dalam mode TEXTURE_VIEW, status STREAMING juga menjamin gambar pratinjau terlihat. (Ic0906, b/154652477)
  • Menambahkan PreviewView#setDeviceRotationForRemoteDisplayMode() API guna menyediakan rotasi perangkat untuk mengubah penghitungan jika aplikasi berjalan dalam mode tampilan jarak jauh. (I59b95, b/153514525)

Perbaikan Bug

  • Memperbaiki masalah distorsi pratinjau pada kamera FULL/LIMITED/LEVEL_3 yang menjalankan android 7.0 dan yang lebih lama. Memaksa penggunaan mode ImplementationMode#TEXTURE_VIEW saat versi android 7.0 atau yang lebih lama. (I83e30, b/155085307)
  • Menghapus parameter CameraInfo dari PreviewView#createSurfaceProvider(), PreviewView sekarang mengambilnya secara internal dari SurfaceRequest. (If18f0, b/154652477)
  • Memperbaiki rasio tinggi lebar default VideoCapture menjadi 16:9 di CameraView. (Ie6a7b, b/153237864)
  • Memperbaiki masalah layar hitam PreviewView saat mengeluarkan fragmen Preview, lalu mengembalikannya di ViewPager2. Masalah saat removeView(previewview) dan addView(previewView) juga diperbaiki. (Iab555, b/149877652, b/147354615)
  • Mengupdate CameraView#takePicture() API untuk mengizinkan penyimpanan gambar ke Uri dan OutputStream. Mengupdate aplikasi pengujian untuk menggunakan Uri sebagai contoh kanonis. (Ia2459, b/153607583)
  • Anda dapat menetapkan jenis skala PreviewView dari tata letak XML dengan menetapkan atribut ScaleType. (I08565, b/153015659)
  • CameraView.ScaleType telah dihapus. Sebagai gantinya, gunakan PreviewView.ScaleType untuk menetapkan/mendapatkan jenis skala dengan CameraView. (Ia8974, b/153014831)
  • Berikan PreviewView warna latar belakang secara default jika belum memilikinya. Hal ini mencegah konten di baliknya terlihat sebelum streaming pratinjau dimulai. (I09fad)

Camera-Extensions Versi 1.0.0-alpha10

15 April 2020

androidx.camera:camera-extensions:1.0.0-alpha10 dirilis. Versi 1.0.0-alpha10 berisi commit berikut.

Perbaikan Bug

  • Perbaikan untuk mendukung rilis Camera-Core

Camera-View Versi 1.0.0-alpha10

15 April 2020

androidx.camera:camera-view:1.0.0-alpha010 dirilis. Versi 1.0.0-alpha010 berisi commit berikut.

Perbaikan Bug

  • Memperbaiki masalah yang telah diketahui di mana penerapan SurfaceView PreviewView tidak berfungsi dengan baik pada perangkat tertentu, dan akan menyebabkan aplikasi error setelah melanjutkan pratinjau. (I5ed6b)

Camera-Extensions Versi 1.0.0-alpha09

1 April 2020

androidx.camera:camera-extensions:1.0.0-alpha09 dirilis. Versi 1.0.0-alpha09 berisi commit berikut.

Perbaikan Bug

  • Pembaruan untuk mendukung perbaikan bug pada artefak camera-camera2:1.0.0-beta02, camera-core:1.0.0-beta02, dan camera-lifecycle:1.0.0-beta02

Camera-View Versi 1.0.0-alpha09

1 April 2020 androidx.camera:camera-view:1.0.0-alpha09 dirilis. Versi 1.0.0-alpha09 berisi commit berikut.

Masalah Umum

  • Penggunaan ImplementationMode.SURFACE_VIEW dengan PreviewView mungkin tidak berfungsi dengan baik di perangkat tertentu. Ini karena SurfaceView yang digunakan untuk pratinjau membuat validasi permukaannya tidak valid saat siklus proses jendela dalam keadaan berhenti. Saat dimulai ulang, kamera akan terbuka kembali dan dapat mencoba untuk melanjutkan pratinjau sebelum permukaan SurfaceView kembali valid. Untuk saat ini, sebaiknya gunakan ImplementationMode.TEXTURE_VIEW.

Perubahan API

  • Mengganti nama PreviewView.setImplementationMode() menjadi PreviewView.setPreferredImplementationMode().
  • Mengganti nama PreviewView.getImplementationMode() menjadi PreviewView.getPreferredImplementationMode().
  • Mengganti PreviewView.getSurfaceProvider() dengan PreviewView.createSurfaceProvider(CameraInfo), yang mengambil instance CameraInfo nullable yang digunakan untuk mengoptimalkan pratinjau dengan menggunakan ImplementationMode.SURFACE_VIEW jika memungkinkan. Jika instance null diteruskan, atau jika Anda menetapkan mode penerapan pilihan ke ImplementationMode.TEXTURE_VIEW, ImplementationMode.TEXTURE_VIEW akan digunakan secara internal.
  • Contoh kode berikut menunjukkan bagaimana kasus penggunaan pratinjau yang digunakan sebelumnya akan digunakan dengan PreviewView.

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

    Saat ini, Anda dapat menulis kode berikut:

    val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
    previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW
    preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
    
  • Anotasi @UiThread telah ditambahkan ke PreviewView.getSurfaceProvider(), yang berarti anotasi harus dipanggil dari thread utama. (I192f3)

  • Menambahkan PreviewView.setScaleType() yang memungkinkan untuk menetapkan jenis skala pratinjau. Kode ini menerima salah satu nilai dalam PreviewView.ScaleType, dan default-nya adalah PreviewView.ScaleType.FILL_CENTER.

  • PreviewView.getScaleType() ditambahkan.

  • Menghapus dukungan untuk menetapkan mode penerapan untuk PreviewView dalam tata letak XML menggunakan atribut implementationMode.

  • Menambahkan createMeteringPointFactory() API ke PreviewView untuk mendukung konversi (x, y) di PreviewView untuk MeteringPoint. (Ib36d7)

Perbaikan Bug

  • Memperbaiki kasus yang menampilkan pratinjau yang salah setelah ukuran PreviewView berubah. (I71101)

Camera-Extensions Versi 1.0.0-alpha08

26 Februari 2020

androidx.camera:camera-extensions:1.0.0-alpha08 dirilis. Versi 1.0.0-alpha08 berisi commit berikut.

Camera-View Versi 1.0.0-alpha08

26 Februari 2020

androidx.camera:camera-view:1.0.0-alpha08 dirilis. Versi 1.0.0-alpha08 berisi commit berikut.

Perbaikan Bug

  • Mengganti ListenableFuture di SurfaceRequest.provideSurface() dengan Executor dan Callback. Hal ini menyederhanakan API dengan tidak lagi memerlukan penanganan pengecualian pada provideSurface() dan pemberlakuan yang tidak dapat dibatalkan oleh callback provideSurface(). Hal ini untuk mencegah error pada perangkat lama yang disebabkan oleh pelepasan permukaan terlalu cepat. Objek SurfaceRequest.Result sekarang digunakan untuk melacak bagaimana SurfaceRequest menggunakan Surface yang disediakan. (I7854b)
  • Mengganti nama SurfaceRequest.setSurface(Surface) menjadi SurfaceRequest.provideSurface(Surface), dan SurfaceRequest.setWillNotComplete() menjadi SurfaceRequest.willNotProvideSurface(). (I224fe)
  • Memperbaiki inisialisasi varian aplikasi dengan ProGuard yang diaktifkan dengan mempertahankan flag yang menetapkan penyedia CameraXConfig default. (I2d6c1)

Camera-Extensions Versi 1.0.0-alpha07

10 Februari 2020

androidx.camera:camera-extensions:1.0.0-alpha07 dirilis. Versi 1.0.0-alpha07 berisi commit berikut.

Perbaikan Bug

  • Argumen yang sebelumnya diteruskan dalam ImageCapture.OnImageSavedCallback.onError() dan ImageCapture.OnImageCapturedCallback.onError() sekarang telah diganti dengan satu argumen ImageCaptureException, yang masih berisi semua informasi yang sebelumnya diteruskan.
  • Argumen file yang sebelumnya diteruskan dalam ImageCapture.OnImageSavedCallback.onImageSaved() telah dihapus. (I750d2)

Camera-View Versi 1.0.0-alpha07

10 Februari 2020

androidx.camera:camera-view:1.0.0-alpha07 dirilis. Versi 1.0.0-alpha07 berisi commit berikut.

Perubahan API

  • Implementasi TextureView PreviewView sekarang menetapkan ukuran TextureView ke ukuran output sensor kamera sebelum menskalakannya agar mengisi PreviewView induknya. Jika Anda ingin agar pratinjau kamera mengisi seluruh bagian UI (misalnya satu layar penuh), sebaiknya jangan tetapkan ukuran PreviewView ke nilai yang tetap, atau membuatnya menggabungkan kontennya (misalnya dengan menggunakan atribut "wrap_content"). Hal ini dapat membuat pratinjau kamera hanya mengisi bagian PreviewView (jika ukuran output sensor kamera lebih kecil). Sebagai gantinya, Anda harus menetapkan PreviewView sebesar induknya (misalnya, dengan menggunakan atribut "match_parent"). (1204869)

Perbaikan Bug

  • Memperbarui ImageCapture untuk memungkinkan penyimpanan gambar ke Uri dan OutputStream. Menggabungkan metode takePicture yang kelebihan muatan menjadi satu. Mengupdate aplikasi pengujian untuk menggunakan Uri sebagai contoh kanonis. (Ia3bec)
  • Preview.PreviewSurfaceProvider diganti namanya menjadi Preview.SurfaceProvider. SurfaceProvider tidak lagi mengharuskan developer membuat ListenableFuture-nya sendiri, dan penyediaan Surface sekarang dilakukan melalui objek SurfaceRequest yang baru. Metode Preview.getPreviewSurfaceProvider() telah dihapus karena berpotensi untuk disalahgunakan saat Preview dipasangkan dengan class lain seperti PreviewView. (I20105)
  • Argumen yang sebelumnya diteruskan dalam ImageCapture.OnImageSavedCallback.onError() dan ImageCapture.OnImageCapturedCallback.onError() sekarang telah diganti dengan satu argumen ImageCaptureException, yang masih berisi semua informasi yang sebelumnya diteruskan.
  • Argumen file yang sebelumnya diteruskan dalam ImageCapture.OnImageSavedCallback.onImageSaved() telah dihapus. (I750d2)
  • Mengupdate API dengan metode getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio(), dan getLinearZoom() dari CameraInfo yang digabungkan menjadi getZoomState() yang menampilkan instance ZoomState. (Ib19fe)

Camera-Extensions Versi 1.0.0-alpha06

22 Januari 2020

androidx.camera:camera-extensions:1.0.0-alpha06 dirilis. Versi 1.0.0-alpha06 berisi commit berikut.

Update

  • Berbagai perbaikan dan update untuk mendukung perubahan Camera Core & Camera2.

Camera-View Versi 1.0.0-alpha06

22 Januari 2020

androidx.camera:camera-view:1.0.0-alpha06 dirilis. Versi 1.0.0-alpha06 berisi commit berikut.

Update

  • Berbagai perbaikan dan update untuk mendukung perubahan Camera Core & Camera2.

Camera-Extensions Versi 1.0.0-alpha05

18 Desember 2019

androidx.camera:camera-extensions:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit berikut.

Perbaikan Bug

  • Diupdate agar sesuai dengan Camera Core API internal.

Camera-View Versi 1.0.0-alpha05

18 Desember 2019

androidx.camera:camera-view:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit berikut.

Masalah Umum

  • Rasio tinggi lebar mungkin salah saat menggunakan PreviewView (b/146215202).

Fitur Baru

  • Mengimplementasikan class baru yang disebut PreviewView.TextureViewImplementation, yang menyinkronkan siklus proses SurfaceTexture dengan penggunaan permukaan TextureView oleh kamera.

Camera-Extensions Versi 1.0.0-alpha04

4 Desember 2019

androidx.camera:camera-extensions:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 dari camera-extensions berisi commit berikut

Perubahan API

  • Memeriksa ketersediaan dan mengaktifkan ekstensi kini akan menggunakan CameraSelector sebagai parameter input. CameraSelector harus sama dengan yang digunakan untuk mengaitkan kasus penggunaan.

    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)
    
  • Anda harus menginisialisasi ekstensi sebelum menggunakan library ekstensi.

    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 Versi 1.0.0-alpha04

4 Desember 2019

androidx.camera:camera-view:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 dari camera-view berisi commit berikut

Perubahan API

  • Class PreviewView disediakan untuk memudahkan proses menampilkan output dari kasus penggunaan Pratinjau dalam aplikasi.
  • PreviewView dapat disertakan dalam tata letak:

    <androidx.camera.view.PreviewView
      android:id="@+id/preview_view"
      … />
    
  • PreviewView menyediakan PreviewSurfaceProvider untuk memudahkan proses menghubungkan kasus penggunaan Pratinjau

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • ZoomLevel” kini menjadi “ZoomRatio” dalam penamaan API

  • Beberapa parameter metode telah mengubah nullability

Camera-Extensions dan Camera-View Versi 1.0.0-alpha03

9 Oktober 2019

androidx.camera:camera-extensions:1.0.0-alpha03 dan androidx.camera:camera-view:1.0.0-alpha03 dirilis. Ini adalah commit yang disertakan dalam camera-extensions:1.0.0-alpha03 dan yang disertakan dalam camera-view:1.0.0-alpha03.

Fitur Baru

  • Menambahkan penginisialisasi Context untuk ekstensi. Versi ekstensi ditingkatkan menjadi 1.1.0

Camera-Extensions dan Camera-View Versi 1.0.0-alpha02

5 September 2019

androidx.camera:camera-extensions:1.0.0-alpha02 dan androidx.camera:camera-view:1.0.0-alpha02 dirilis. Berikut adalah commit yang disertakan dalam camera-extensions:1.0.0-alpha02, dan commit yang disertakan dalam camera-view:1.0.0-alpha02.

  • Menambahkan pengujian untuk memverifikasi bahwa PreviewImageProcessorImpl telah mengimplementasikan stempel waktu dengan benar.
  • Memperbaiki kegagalan pengujian ExtensionTest di Nexus 5 (API level 21) dan memastikan pratinjau tersedia.

Camera-Extensions dan Camera-View Versi 1.0.0-alpha01

7 Agustus 2019

androidx.camera:camera-extensions:1.0.0-alpha01 dan androidx.camera:camera-view:1.0.0-alpha01 dirilis. Berikut adalah commit yang disertakan dalam camera-extensions:1.0.0-alpha01, dan commit yang disertakan dalam camera-view:1.0.0-alpha01

  • Library baru untuk Camera Extensions mendatang untuk mengakses efek di perangkat yang didukung. Library ini masih dalam pengembangan.
  • Class Camera View baru. Library ini masih dalam pengembangan.