CameraX
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-rc04 | - | 1.1.0-alpha02 |
camera-core | - | 1.0.0-rc04 | - | - |
camera-extensions | - | - | - | 1.0.0-alpha23 |
camera-lifecycle | - | 1.0.0-rc04 | - | - |
camera-view | - | - | - | 1.0.0-alpha23 |
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-rc04" // 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-alpha23" // If you want to additionally use the CameraX Extensions library implementation "androidx.camera:camera-extensions:1.0.0-alpha23" }
Masukan
Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau punya masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara pada masalah yang ada dengan mengklik tombol bintang.
Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.
Camera-Camera2, Camera-Core, & Camera-Lifecycle Versi 1.1.0
Camera Camera2, Core, & Lifecycle Versi 1.1.0-alpha03
24 Maret 2021
androidx.camera:camera-camera2:1.1.0-alpha03
, androidx.camera:camera-core:1.1.0-alpha03
, dan androidx.camera:camera-lifecycle:1.1.0-alpha03
dirilis. Versi 1.1.0-alpha03 berisi commit berikut ini.
Perbaikan Bug
- Output format JPEG untuk
ImageCapture#OnImageCapturedCallback
saat mode Ekstensi diaktifkan. (I0d7b1) - Memperbaiki kegagalan inisialisasi di perangkat UMIDIGI BISON (I57d9e, b/180818665)
- Memperbaiki pratinjau Samsung A3 yang direntangkan di PratinjauView. (Iacb30, b/180121821)
Camera Camera2, Core, & Lifecycle Versi 1.1.0-alpha02
24 Februari 2021
androidx.camera:camera-camera2:1.1.0-alpha02
, androidx.camera:camera-core:1.1.0-alpha02
, dan androidx.camera:camera-lifecycle:1.1.0-alpha02
dirilis. Versi 1.1.0-alpha02 berisi commit berikut.
Perubahan API
- Menambahkan API
ProcessCameraProvider.getAvailableCameraInfos()
untuk langsung mengambil informasi tentang kamera yang tersedia, yang merupakan semua kamera perangkat, atau yang dipilih olehCameraSelector
yang tersedia diCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector)
. (Ieac08)
Perbaikan Bug
- CameraX kini mencoba untuk membuka paksa kamera pada upaya awal, hal ini dapat mengakibatkan CameraX mencuri kamera dari klien kamera lain saat aplikasinya memiliki prioritas yang lebih tinggi. (Iab069, b/175820568)
- Memperbaiki kegagalan pengujian Robolectric saat setAvailableCamerasLimiter digunakan di CameraXConfig. (Ice307)
- Perubahan ini menangkap pengecualian saat antrean gambar dimaksimalkan di ImageAnalysis. Jadi, Anda mungkin melihat kasus penggunaan lainnya terhenti atau lambat, bukan error. Mis. pratinjau terhenti/lambat. (Ic12da, b/175851631)
- Memperbaiki ExtensionsErrorListener untuk melaporkan error ketika hanya Pratinjau atau ImageCapture yang terikat. (I5ae39)
- Memperbaiki regresi performa ImageCapture dengan menghapus validasi lokasi penyimpanan gambar sebelum mengambil gambar. Setelah membuat perubahan ini, jika tujuan penyimpanan tidak valid, perlu waktu lebih lama untuk mendapatkan respons kegagalan karena perubahan ini akan mencoba menyimpan gambar setelah foto diambil. (I1fd4e, b/177061560)
- Memperbaiki regresi performa ImageCapture dengan jenis "File" OutputFileOptions. (I5164a, b/177061560)
- Dokumentasi diperbarui untuk merekomendasikan agar tidak menggunakan
ProcessCameraProvider.configureInstance(...)
dari kode library. (Ib8a9f)
Camera Camera2, Core, & Lifecycle Versi 1.1.0-alpha01
27 Januari 2021
androidx.camera:camera-camera2:1.1.0-alpha01
, androidx.camera:camera-core:1.1.0-alpha01
, dan androidx.camera:camera-lifecycle:1.1.0-alpha01
dirilis. Versi 1.1.0-alpha01 berisi commit berikut ini.
Perbaikan Bug
- Solusi disertakan untuk data gambar rusak berselang-seling dalam format JPEG pada kamera belakang SM-G930T. (I52001, b/159831206)
- Memperbaiki masalah
IllegalArgumentException
yang terjadi jika semua ukuran yang didukung pratinjau lebih kecil dari 640x480 dan ukuran layar lebih besar dari 640x480. (I2a63c, b/150506192) - Resource di library tanpa resource publik yang dideklarasikan secara eksplisit (misalnya melalui public.xml) sekarang bersifat pribadi secara default. (Ia1dcc, b/170882230)
Camera-Camera2, Camera-Core, & Camera-Lifecycle Versi 1.0.0
Camera Camera2, Core, & Lifecycle Versi 1.0.0-rc04
24 Maret 2021
androidx.camera:camera-camera2:1.0.0-rc04
, androidx.camera:camera-core:1.0.0-rc04
, dan androidx.camera:camera-lifecycle:1.0.0-rc04
dirilis. Versi 1.0.0-rc04 berisi commit berikut ini.
Perbaikan Bug
- Memperbaiki kegagalan inisialisasi di perangkat UMIDIGI BISON (I57d9e, b/180818665)
Camera Camera2, Core, & Lifecycle Versi 1.0.0-rc03
24 Februari 2021
androidx.camera:camera-camera2:1.0.0-rc03
, androidx.camera:camera-core:1.0.0-rc03
, dan androidx.camera:camera-lifecycle:1.0.0-rc03
dirilis. Versi 1.0.0-rc03 berisi commit berikut ini.
Perbaikan Bug
- Memperbaiki error format dalam dokumen
ProcessCameraProvider#getInstance
- Memperbaiki kegagalan pengujian Robolectric saat setAvailableCamerasLimiter digunakan di CameraXConfig.
- Memperbaiki regresi performa ImageCapture dengan menghapus validasi lokasi penyimpanan gambar sebelum mengambil gambar. Setelah membuat perubahan ini, jika tujuan penyimpanan tidak valid, perlu waktu lebih lama untuk mendapatkan respons kegagalan karena perubahan ini akan mencoba menyimpan gambar setelah foto diambil.
- Perubahan ini menangkap pengecualian saat antrean gambar dimaksimalkan di ImageAnalysis. Jadi, Anda mungkin melihat kasus penggunaan lainnya terhenti atau lambat, bukan error. Mis. pratinjau terhenti/lambat.
- Solusi disertakan untuk data gambar rusak berselang-seling dalam format JPEG pada kamera belakang SM-G930T. (I52001, b/159831206)
- Perubahan ini menangkap pengecualian saat antrean gambar dimaksimalkan di ImageAnalysis. Jadi, Anda mungkin melihat kasus penggunaan lainnya terhenti atau lambat, bukan error. Mis. pratinjau terhenti/lambat. (Ic12da, b/175851631)
- Memperbaiki kegagalan pengujian Robolectric saat setAvailableCamerasLimiter digunakan di CameraXConfig. (Ice307)
- Memperbaiki regresi performa ImageCapture dengan menghapus validasi lokasi penyimpanan gambar sebelum mengambil gambar. Setelah membuat perubahan ini, jika tujuan penyimpanan tidak valid, perlu waktu lebih lama untuk mendapatkan respons kegagalan karena perubahan ini akan mencoba menyimpan gambar setelah foto diambil. (I1fd4e, b/177061560)
- Memperbaiki regresi performa ImageCapture dengan jenis "File" OutputFileOptions. (I5164a, b/177061560)
Camera Camera2, Core, & Lifecycle Versi 1.0.0-rc02
27 Januari 2021
androidx.camera:camera-camera2:1.0.0-rc02
, androidx.camera:camera-core:1.0.0-rc02
, dan androidx.camera:camera-lifecycle:1.0.0-rc02
dirilis. Versi 1.0.0-rc02 berisi commit berikut ini.
Perbaikan Bug
- Memperbaiki masalah IllegalArgumentException yang terjadi jika semua ukuran yang didukung pratinjau lebih kecil dari 640x480 dan ukuran layar lebih besar dari 640x480. (b/150506192)
Membatasi jumlah upaya pembukaan ulang kamera. Ketika mencoba memulihkan beberapa masalah saat membuka kamera, CameraX tidak akan lagi mencoba membuka ulang kamera tanpa batas waktu, tetapi akan berhenti setelah mencoba lagi selama 10 detik.I435d2
Memperbaiki masalah
IllegalArgumentException
yang terjadi jika semua ukuran yang didukung pratinjau lebih kecil dari 640x480 dan ukuran layar lebih besar dari 640x480. (I2a63c, b/150506192)
Camera Camera2, Core, & Lifecycle Versi 1.0.0-rc01
16 Desember 2020
androidx.camera:camera-camera2:1.0.0-rc01
, androidx.camera:camera-core:1.0.0-rc01
, dan androidx.camera:camera-lifecycle:1.0.0-rc01
dirilis. Versi 1.0.0-rc01 berisi commit berikut ini.
Perubahan API
- Mengubah CameraFilter dan Camera2Filter yang akan diambil di CameraInfo. (I6883d)
- Menambahkan class eksperimental Camera2CameraControl untuk memungkinkan antaroperasi dengan API Camera2 secara dinamis. (I45cf3)
- Mengganti nama Camera2CameraInfo#fromCameraInfo menjadi #from. (Ia2bd6)
- Menambahkan API setAvailableCamerasLimiter eksperimental ke CameraXConfig agar aplikasi dapat mengoptimalkan latensi inisialisasi dengan menghindari inisialisasi kamera yang tidak digunakan. (I6cf88)
- Menambahkan metode eksperimental
CameraXConfig.Builder#setMinimumLoggingLevel()
agar penyetelan tingkat logging minimum untuk log CameraX dapat dilakukan. Jika tidak disetel, setelan defaultnya adalahLog#DEBUG
. (Ic3245)
Perbaikan Bug
- Solusi disertakan untuk data gambar rusak berselang-seling dalam format JPEG pada kamera belakang SM-G930V. (I5aca5, b/159831206)
- Memperbaiki masalah pengambilan gambar yang tidak menerima hasil saat flash selalu aktif dan lingkungan dalam kondisi gelap pada perangkat Samsung SM-A716. (If98b2, b/172036589)
- Memperbaiki masalah Pratinjau yang tidak dapat dihentikan dengan memanggil
Preview.setSurfaceProvider(null)
. (I3ac18) - Memperbaiki masalah orientasi saat mengambil gambar 4:3 di beberapa perangkat. (I0e3fb, b/171492111)
Camera Camera2, Core, & Lifecycle Versi 1.0.0-beta12
11 November 2020
androidx.camera:camera-camera2:1.0.0-beta12
, androidx.camera:camera-core:1.0.0-beta12
, dan androidx.camera:camera-lifecycle:1.0.0-beta12
dirilis. Versi 1.1.0-beta12 berisi commit berikut ini.
Perbaikan Bug
- Menonaktifkan flash otomatis di perangkat Samsung A3 untuk memperbaiki error saat mengambil foto dengan mode flash otomatis AE di perangkat Samsung A3. (Ia5fe3, b/157535165)
- Memperbaiki masalah saat pratinjau diperluas di perangkat Nexus 4 yang menjalankan Android L (API level 21 dan 22). (I4d407, b/158749159)
- Implementasi class
dasar
OnImageCapturedCallback#onCaptureSuccess
tidak lagi menutup gambar. Hal ini untuk mencegah perilaku yang tidak terduga bagi developer. Developer tidak boleh mengandalkan super.onCaptureSuccess untuk menutup gambar. (Ifbf9c) - Varian androidx dari anotasi Eksperimental tidak digunakan lagi untuk memberikan kesamaan dengan Kotlin. Anotasi tersebut telah diganti dengan anotasi RequiresOptIn, dan linter yang berinteraksi dengan Java telah diupdate untuk mendukung anotasi Kotlin baru dan varian androidx yang baru. (I52495, b/151331381)
Camera-Camera2 Versi 1.0.0-beta11
14 Oktober 2020
androidx.camera:camera-camera2:1.0.0-beta11
dirilis. Versi 1.1.0-beta11 berisi commit berikut ini.
Fitur Baru
- Mendukung API
CONTROL_ZOOM_RATIO
android 11 untuk zoom di perangkat android 11 atau versi yang lebih baru yang berisiCONTROL_ZOOM_RATIO_RANGE
yang valid. (I62cc6)
Perbaikan Bug
- Memperbaiki masalah NumberFormatException yang terjadi ketika ID kamera bukanlah ID kamera non-integer. (Ib2228)
- Meningkatkan latensi inisialisasi CameraX dan bindToLifecycle (I61dc5)
- Pembuatan UseCases tidak memerlukan penyelesaian
inisialisasi CameraX. Semua konfigurasi khusus implementasi ditetapkan di
UseCase setelah dilampirkan ke instance Camera yang digunakan API publik
untuk
ProcessCameraProvider.bindToLifecycle()
. (Ia5411) <UseCase>.getTargetRotation()
akan menampilkanSurface.ROTATION_0
jika dipanggil sebelum ditambahkan ke instance Camera kecuali jika targetRotation telah ditetapkan pada Builder atau UseCase. (I80fcd)
Camera-Core Versi 1.0.0-beta11
14 Oktober 2020
androidx.camera:camera-core:1.0.0-beta11
dirilis. Versi 1.1.0-beta11 berisi commit berikut ini.
Fitur Baru
- Mendukung API CONTROL_ZOOM_RATIO
android 11 untuk zoom di
perangkat android 11 atau versi yang lebih baru yang berisi CONTROL_ZOOM_RATIO_RANGE
yang valid. (I62cc6)
Perbaikan Bug
- Memperbaiki masalah NumberFormatException yang terjadi ketika ID kamera bukanlah ID kamera non-integer. (Ib2228)
- Pembuatan UseCases tidak memerlukan penyelesaian
inisialisasi CameraX. Semua konfigurasi khusus implementasi ditetapkan di
UseCase setelah dilampirkan ke instance Camera yang digunakan API publik
untuk
ProcessCameraProvider.bindToLifecycle()
. (Ia5411) <UseCase>.getTargetRotation()
akan menampilkanSurface.ROTATION_0
jika dipanggil sebelum ditambahkan ke instance Camera kecuali jika targetRotation telah ditetapkan pada Builder atau UseCase. (I80fcd)
Camera-Core Versi 1.0.0-beta10
23 September 2020
androidx.camera:camera-core:1.0.0-beta10
dirilis. Versi 1.0.0-beta10 berisi commit berikut ini.
Perbaikan Bug
- Memperbaiki bug dalam memvalidasi tujuan penyimpanan file untuk pengambilan gambar (I8c565, b/167697553)
Camera-Camera2 Versi 1.0.0-beta10
23 September 2020
androidx.camera:camera-camera2:1.0.0-beta10
dirilis. Versi 1.0.0-beta10 berisi commit berikut ini.
Perbaikan Bug
- Rilis untuk mendukung Camera-Core 1.0.0-beta10
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 menjadiFLASH_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 ini.
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 ini.
Perubahan API
DisplayOrientedMeteringPointFactory
menggunakan instanceCameraInfo
, bukanCameraSelector
, sehingga ada pemetaan langsung titik yang akan dihasilkan oleh setelan pabrik pada Kamera. Semua class yang menggunakanDisplayOrientedMeteringPointFactory
juga menggunakan instanceCameraInfo
, bukanCameraSelector
. (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
, danFIT_END
denganFIT
.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 memanggilProcessCameraProvider#getInstance()
. Hal ini memungkinkan penyesuaianCameraXConfig
tanpa memerlukan penerapanCameraXConfig.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 ini.
Perbaikan Bug
- Memperbaiki error ketika aplikasi dimulai saat menginisialisasi CameraX sementara ponsel dalam mode Jangan Ganggu.
InitializationException
berisiCameraUnavailableException
yang akan ditetapkan keListenableFuture
dari hasil inisialisasi, bukan membuat aplikasi error. (I9909a, b/149413835) - Memperbaiki error saat memanggil
startFocusAndMetering
di perangkat yangCONTROL_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 ini.
Perubahan API
- Memperbaiki error ketika aplikasi dimulai saat menginisialisasi CameraX sementara ponsel dalam mode Jangan Ganggu.
InitializationException
yang berisiCameraUnavailableException
akan ditetapkan keListenableFuture
pada hasil inisialisasi, bukan membuat aplikasi error. (I9909a, b/149413835)
Perbaikan Bug
- Mengupdate javadocs
setTargetResolution
dansetTargetRotation
. (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 ini.
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
dariImageCapture
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 ini.
Perubahan API
- Menambahkan API eksperimental,
CameraXConfig.Builder#setSchedulerHandler()
untuk menyetel pengendali yang digunakan secara internal oleh stack kamera CameraX. API baru ini besertaCameraXConfig.Builder#setCameraExecutor()
harus mengizinkan kontrol penuh atas thread yang digunakan oleh stack kamera CameraX. (I7bf32, b/121160431)
Perbaikan Bug
- Memperbaiki error di
ImageAnalysis
ketikaImageProxy
diakses setelahImageReaderProxy
ditutup. Ini juga membuat semuaImageProxy
yang diterima olehAnalyzer
harus ditutup sebelumImageReaderProxy
ditutup. (I4b299, b/145956416, b/154155377, b/156357269) - Menghapus parameter
CameraInfo
dariPreviewView#createSurfaceProvider()
,PreviewView
sekarang mengambilnya secara internal dariSurfaceRequest
. (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
dariImageCapture
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 ini.
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 ini.
Perbaikan Bug
- Memperbaiki regresi dari beta03 yang memanggil
bindToLifecycle()
dengan nolUseCase
akan menyebabkan ditampilkannya pengecualian. Hal ini mencegah pengambilanCamera
tanpa mengikatUseCase
.
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 ini.
Perbaikan Bug
- Memperbaiki
ImageInfo.getRotationDegrees()
dariImageProxy
yang dihasilkan olehImageCapture
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 memanggilbindToLifecycle
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 ini.
Perbaikan Bug
- Memperbaiki
ImageInfo.getRotationDegrees()
dariImageProxy
yang dihasilkan olehImageCapture
sehingga cocok dengan nilai rotasi orientasi EXIF. (Id4281, b/150802561) - Memperbaiki
bindToLifecycle
sehingga hanya akan memodifikasi UseCase jika berhasil diikat. Sebelumnya, saat memanggilbindToLifecycle
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 memanggilPreview.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 ini.
Perbaikan Bug
- Mengganti nama
SurfaceRequest.setSurface(Surface)
menjadiSurfaceRequest.provideSurface(Surface)
, danSurfaceRequest.setWillNotComplete()
menjadiSurfaceRequest.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 ini.
Perubahan API
- Mengganti
ListenableFuture
diSurfaceRequest.provideSurface()
denganExecutor
danCallback
. Hal ini menyederhanakan API dengan tidak lagi memerlukan penanganan pengecualian padaprovideSurface()
dan pemberlakuan yang tidak dapat dibatalkan oleh callbackprovideSurface()
. Hal ini untuk mencegah error pada perangkat lama yang disebabkan oleh pelepasan permukaan terlalu cepat. ObjekSurfaceRequest.Result
sekarang digunakan untuk melacak bagaimanaSurfaceRequest
menggunakanSurface
yang disediakan. (I7854b) - Mengganti nama
SurfaceRequest.setSurface(Surface)
menjadiSurfaceRequest.provideSurface(Surface)
, danSurfaceRequest.setWillNotComplete()
menjadiSurfaceRequest.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 ini..
Perbaikan Bug
- Meningkatkan stabilitas pada perangkat
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
dengan memastikanSurface
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 ini.
Perubahan API
- Memperbarui
ImageCapture
untuk memungkinkan penyimpanan gambar keUri
danOutputStream
. Menggabungkan metodetakePicture
yang kelebihan muatan menjadi satu. Mengupdate aplikasi pengujian untuk menggunakanUri
sebagai contoh kanonis. (Ia3bec) Preview.PreviewSurfaceProvider
diganti namanya menjadiPreview.SurfaceProvider
.SurfaceProvider
tidak lagi mengharuskan developer membuatListenableFuture
-nya sendiri, dan penyediaanSurface
sekarang dilakukan melalui objekSurfaceRequest
yang baru. MetodePreview.getPreviewSurfaceProvider()
telah dihapus karena berpotensi untuk disalahgunakan saatPreview
dipasangkan dengan class lain sepertiPreviewView
. (I20105)getTargetRotation()
dangetTargetName()
telah ditambahkan kePreview
. (Iceee7)getTargetRotation()
,getBackpressureStrategy()
, dangetImageQueueDepth()
telah ditambahkan dalamImageAnalysis
. (I9d6d9)getTargetRotation()
dangetCaptureMode()
telah ditambahkan dalamImageCapture()
(I5bc17)- Argumen yang sebelumnya diteruskan dalam
ImageCapture.OnImageSavedCallback.onError()
danImageCapture.OnImageCapturedCallback.onError()
sekarang telah diganti dengan satu argumenImageCaptureException
, yang masih berisi semua informasi yang sebelumnya diteruskan. - Argumen file yang sebelumnya diteruskan dalam
ImageCapture.OnImageSavedCallback.onImageSaved()
telah dihapus. (I750d2) - Class
Preview
danImageCapture
sekarang ditandai sebagai final. (I2500b) - Memperbarui API dengan metode
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
, dangetLinearZoom()
dariCameraInfo
yang digabungkan menjadigetZoomState()
yang menampilkan instanceZoomState
. (Ib19fe) - Menghapus kolom API
OPTION_TARGET_CLASS
danOPTION_TARGET_NAME
dariCameraXConfig
karena ditujukan untuk penggunaan library internal saja. Menghapus konstruktor untukCameraXConfig.Builder
. (I96912) - Menghapus persyaratan yang mengharuskan aplikasi memperluas
Application
guna menginisialisasi CameraX. CameraX sekarang akan diinisialisasi dengan konfigurasi Camera2 default, asalkan artefakcamera-camera2
disertakan dalambuild.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 ini.
Perubahan API
Menambahkan jalur interop camera2 untuk mengekstrak ID kamera Camera2. Anda dapat mengekstrak ID kamera dari
CameraInfo
menggunakanCamera2CameraInfo.extractCameraId()
. Contoh kode berikut menunjukkan cara penggunaannya:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
Class
Camera2CameraInfo
memerlukan markerClassExperimentalCamera2Interop
.
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 ini.
Perubahan API
- Parameter
SurfaceOrientedMeteringPointFactory
,useCaseForSurface
, telah diganti namanya menjadiuseCaseForAspectRatio
dan dokumentasi referensinya diperluas. - Metode
FocusMeteringAction.Builder.from()
digantikan oleh konstruktorFocusMeteringAction.Builder()
. - Menghapus
DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)
. Aplikasi harus menggunakan konstruktor yang mengambil parameterDisplay
dan meneruskan tampilan saat ini. - Penyempurnaan Javadoc untuk API pengukuran dan fokus terkait
MeteringMode
dan 3A Flag, serta penggunaan parameterDisplay
. - Memperluas dokumentasi referensi untuk
setZoomRatio
dansetLinearZoom
.
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
dancancelFocusMetering
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 ini.
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 ini.
Masalah Umum
- Aplikasi yang menggunakan
PreviewView
atauCameraView
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
danCameraControl
. - Mengimplementasikan
TorchControl
untukenableTorch()
dangetTorchState()
.
Perubahan API
- Menyembunyikan IntDefs dan memindahkan konstanta IntDef ke luar definisi IntDef.
- Memindahkan
rotationDegrees
dari classOnImageCaptureCallback
keImageInfo
. - Memindahkan
rotationDegrees
dari classAnalyzer
keImageInfo
.
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 menggunakanCamera2Config
default yang disediakan olehandroidx.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()
, danhasCamera()
yang sebelumnya disediakan oleh panggilan class CameraX kini tersedia melaluiProcessCameraProvider
.Instance
ProcessCameraProvider
per proses diperoleh secara asinkron menggunakan metode statisProcessCameraProvider.getInstance()
, yang menampilkan hasil yang dapat diproses, serta menyediakanProcessCameraProvider
setelah selesai. Di sini,onCreate()
ditampilkan untuk penggunaan umum. Anda dapat memanggilgetInstance()
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 olehgetInstance()
. Hal ini memastikan penyedia kamera dapat diambil dariFuture
tanpa memblokir diFuture.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 memanggilimage.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 backpressureintdef
.ImageProxy.getImage()
ditandai sebagai eksperimental. Aplikasi harus menganotasikan penggunaan, misalnya melalui@androidx.camera.core.ExperimentalGetImage
Persyaratan anotasi
UIThread
untukAnalyzer
telah dihapus.Fungsi
ImageAnalysis.clearAnalyzer()
ditambahkan untuk menghapus penganalisis.Pemroses dengan lebih dari 1 metode telah diganti namanya menjadi Callback:
ImageCapture.OnImageCapturedListener
sekarang menjadiImageCapture.OnImageCapturedCallback
ImageCapture.OnImageSavedListener
sekarang menjadiImageCapture.OnImageSavedCallback
VideoCapture.OnVideoSavedListener
sekarang menjadiVideoCapture.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
dancancelFocusMetering
kini menampilkanListenableFutures
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, tetapiListenableFuture<Void>
yang ditampilkan selalu merupakan hasilcomplete(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 keCaptureSession
), danTorchState
tetap Nonaktif. - Masalah Umum:
startFocusAndMetering
dancancelFocusAndMetering
memulai dan membatalkan pengukuran fokus, tetapi langsung menampilkan hasilcompleted (success)
yang tidak menunjukkan perilaku yang didokumentasikan.FocusMeteringResult
dariListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()
adalah hasil palsu, yaituisFocusSuccessful()
, 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 untukPreviewView
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 opsiRATIO_4_3
atauRATIO_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 menjadisetTargetAspectRatioCustom(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
dangetCameraInfo
, 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()
dansetTargetAspectRatio()
. 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.
- Umumnya, sangat direkomendasikan untuk menggunakan
- 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 menjadiImageCapture.ImageCaptureError
VideoCapture.UseCaseError
diganti nama menjadiVideoCapture.VideoCaptureError
Menambahkan
CameraControl
API dengan Tap-to-Focus APIMenambahkan API untuk mendapatkan
CameraControl
dari CameraX untuk kamera, yang dipilih sesuai arah hadap lensa:CameraX.getCameraControl(LensFacing lensFacing)
Menambahkan
MeteringPointFactory
,MeteringPoint
,MeteringMode
, danFocusMeteringAction
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 ini.
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
atausetTargetResolution
) - 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 mengakibatkanjava.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 ini.
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 ini.
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 ini.
Camera-Lifecycle Versi 1.0.0-beta11
14 Oktober 2020
androidx.camera:camera-lifecycle:1.0.0-beta11
dirilis. Versi 1.1.0-beta11 berisi commit berikut ini.
Perbaikan Bug
<UseCase>.getTargetRotation()
akan menampilkanSurface.ROTATION_0
jika dipanggil sebelum ditambahkan ke instance Camera kecuali jika targetRotation telah ditetapkan pada Builder atau UseCase. (I80fcd)
Camera-Lifecycle Versi 1.0.0-beta10
23 September 2020
androidx.camera:camera-lifecycle:1.0.0-beta10
dirilis. Versi 1.0.0-beta10 berisi commit berikut ini.
Perbaikan Bug
- Rilis untuk mendukung Camera-Core 1.0.0-beta10
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 ini.
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 ini.
Perbaikan Bug
- Memperbaiki error ketika aplikasi dimulai saat menginisialisasi CameraX sementara ponsel dalam mode Jangan Ganggu.
InitializationException
yang berisiCameraUnavailableException
akan ditetapkan keListenableFuture
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 ini.
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 ini.
Perbaikan Bug
- Memperbaiki regresi dari beta03 yang memanggil
bindToLifecycle()
dengan nolUseCase
akan menyebabkan ditampilkannya pengecualian. Hal ini mencegah pengambilanCamera
tanpa mengikatUseCase
. - 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 ini.
Perbaikan Bug
- Memperbaiki dokumentasi yang perlu diperhatikan saat mendapatkan
ProcessCameraProvider
selama proses inisialisasi, konfigurasi default akan digunakan dan memperluasApplication
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 ini.
Perbaikan Bug
- Update untuk mendukung perbaikan bug pada artefak
camera-camera2:1.0.0-beta02
dancamera-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 ini.
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 ini.
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 ini.
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 disebutProcessCameraProvider
, yang memberikan banyak fungsi class CameraX sebelumnya dalam core dan diperoleh melalui metodegetInstance()
. - 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 & View Versi 1.0.0-alpha23
24 Maret 2021
androidx.camera:camera-extensions:1.0.0-alpha23
dan androidx.camera:camera-view:1.0.0-alpha23
dirilis. Versi 1.0.0-alpha23 berisi commit berikut ini.
Perubahan API
- CameraView sudah tidak digunakan lagi. Sebagai gantinya, gunakan
LifecycleCameraController
. Lihat panduan migrasi (Idac2c) - Menambahkan anotasi FloatRange ke setLinearZoom() (I69971)
Perbaikan Bug
- Dependensi camera-view yang dipasangi pin untuk mengandalkan artefak 1.0.0. Bergantung pada camera-view tidak akan lagi menyebabkan resolusi dependensi gradle agar otomatis mengupgrade camera-core, camera-camera2, dan camera-lifecycle ke artefak 1.1.0 terbaru, meskipun camera-view masih kompatibel dengan artefak tersebut jika ditetapkan secara eksplisit untuk menggunakan versi 1.1.0. (Ic8fa1, b/181599852)
- Memperbaiki pratinjau Samsung A3 yang direntangkan di PratinjauView. (Iacb30, b/180121821)
- Memperbaiki masalah saat pemilih kamera tidak dapat disetel sebelum kamera diinisialisasi. (Ic8bd0)
Camera Extensions & View Versi 1.0.0-alpha22
24 Februari 2021
androidx.camera:camera-extensions:1.0.0-alpha22
dan androidx.camera:camera-view:1.0.0-alpha22
dirilis. Versi 1.1.0-alpha22 berisi commit berikut ini.
Perubahan API
- menambahkan pengambil CameraInfo ke CameraController. (Ib8138, b/178251727)
Perbaikan Bug
- Memperbaiki ExtensionsErrorListener untuk melaporkan error ketika hanya Pratinjau atau ImageCapture yang terikat. (I5ae39)
Camera Extensions & View Versi 1.0.0-alpha21
27 Januari 2021
androidx.camera:camera-extensions:1.0.0-alpha21
dan androidx.camera:camera-view:1.0.0-alpha21
dirilis. Versi 1.0.0-alpha21 berisi commit berikut ini.
Merilis untuk mendukung artefak koleksi kamera lainnya.
Camera Extensions & View Versi 1.0.0-alpha20
16 Desember 2020
androidx.camera:camera-extensions:1.0.0-alpha20
dan androidx.camera:camera-view:1.0.0-alpha20
dirilis. Versi 1.0.0-alpha20 berisi commit berikut ini.
Merilis untuk mendukung artefak koleksi kamera lainnya.
Camera-Extensions & Camera-View Versi 1.0.0-alpha19
11 November 2020
androidx.camera:camera-extensions:1.0.0-alpha19
dan androidx.camera:camera-view:1.0.0-alpha19
dirilis. Versi 1.0.0-alpha19 berisi commit berikut ini.
Perbaikan Bug
- Anotasi
@ExperimentalVideo
diperkenalkan pada tampilan kamera. Anotasi ini menandai API yang mengekspos fungsi video eksperimental yang dapat berubah saat fitur ini dikembangkan sepenuhnya. Metode apa pun yang menggunakan API ini harus menggunakan anotasi@UseExperimental
denganExperimentalVideo
sebagaimarkerClass
. (I6d729)
Camera-Extensions Versi 1.0.0-alpha18
14 Oktober 2020
androidx.camera:camera-extensions:1.0.0-alpha18
dirilis. Versi 1.0.0-alpha18 berisi commit berikut ini.
Perbaikan Bug
- Meningkatkan latensi inisialisasi CameraX dan bindToLifecycle (I61dc5)
<UseCase>.getTargetRotation()
akan menampilkanSurface.ROTATION_0
jika dipanggil sebelum ditambahkan ke instance Camera kecuali jika targetRotation telah ditetapkan pada Builder atau UseCase. (I80fcd)
Camera-View Versi 1.0.0-alpha18
14 Oktober 2020
androidx.camera:camera-view:1.0.0-alpha18
dirilis. Versi 1.0.0-alpha18 berisi commit berikut ini.
Merilis untuk mendukung artefak koleksi kamera lainnya.
Camera-Extensions Versi 1.0.0-alpha17
23 September 2020
androidx.camera:camera-extensions:1.0.0-alpha17
dirilis. Versi 1.0.0-alpha17 berisi commit berikut ini.
Perbaikan Bug
- Rilis untuk mendukung Camera-Core 1.0.0-beta10
Camera-View Versi 1.0.0-alpha17
23 September 2020
androidx.camera:camera-view:1.0.0-alpha17
dirilis. Versi 1.0.0-alpha17 berisi commit berikut ini.
Perbaikan Bug
- Rilis untuk mendukung Camera-Core 1.0.0-beta10
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 objekExtensions
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()
danPreviewView#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 denganPreview#setTargetRotation()
danPreviewView#getViewPort(targetRotation)
yang baru ditambahkan. (Ib62cc) - Mengganti nama
createSurfaceProvider()
menjadigetSurfaceProvider()
. 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 instanceCameraInfo
, bukanCameraSelector
, sehingga ada pemetaan langsung titik yang akan dihasilkan oleh setelan pabrik pada Kamera. Semua class yang menggunakanDisplayOrientedMeteringPointFactory
juga menggunakan instanceCameraInfo
, bukanCameraSelector
. (I400c1)TextureViewMeteringPointFactory
dihapus.PreviewView
menyediakan API publik (createMeteringPointFactory()
) untuk membuat setelan pabrik titik pengukuran terlepas dari penggunaanTextureView
atauSurfaceView
. (Ide693)- Mengganti nama mode implementasi
SURFACE_VIEW
/TEXTURE_VIEW
PreviewView menjadiPERFORMANCE
/COMPATIBLE
.PERFORMANCE
adalah modeSURFACE_VIEW
lama, danCOMPATIBLE
adalah modeTEXTURE_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 ini.
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 ini.
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 ini.
Perbaikan Bug
- Memperbaiki error ketika aplikasi dimulai saat menginisialisasi CameraX sementara ponsel dalam mode Jangan Ganggu.
InitializationException
yang berisiCameraUnavailableException
akan ditetapkan keListenableFuture
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 ini.
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 ini.
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 ini.
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 modeImplementationMode#TEXTURE_VIEW
saat versi android 7.0 atau yang lebih lama. (I83e30, b/155085307) - Menghapus parameter
CameraInfo
dariPreviewView#createSurfaceProvider()
,PreviewView
sekarang mengambilnya secara internal dariSurfaceRequest
. (If18f0, b/154652477) - Memperbaiki rasio tinggi lebar default VideoCapture menjadi 16:9 di CameraView. (Ie6a7b, b/153237864)
- Memperbaiki masalah layar hitam
PreviewView
saat mengeluarkan fragmenPreview
, lalu mengembalikannya di ViewPager2. Masalah saatremoveView(previewview)
danaddView(previewView)
juga diperbaiki. (Iab555, b/149877652, b/147354615) - Mengupdate
CameraView#takePicture()
API untuk mengizinkan penyimpanan gambar keUri
danOutputStream
. Mengupdate aplikasi pengujian untuk menggunakanUri
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, gunakanPreviewView.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 ini.
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 ini.
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 ini.
Perbaikan Bug
- Pembaruan untuk mendukung perbaikan bug pada artefak
camera-camera2:1.0.0-beta02
,camera-core:1.0.0-beta02
, dancamera-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 ini.
Masalah Umum
- Penggunaan
ImplementationMode.SURFACE_VIEW
denganPreviewView
mungkin tidak berfungsi dengan baik di perangkat tertentu. Ini karenaSurfaceView
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 permukaanSurfaceView
kembali valid. Untuk saat ini, sebaiknya gunakanImplementationMode.TEXTURE_VIEW
.
Perubahan API
- Mengganti nama
PreviewView.setImplementationMode()
menjadiPreviewView.setPreferredImplementationMode()
. - Mengganti nama
PreviewView.getImplementationMode()
menjadiPreviewView.getPreferredImplementationMode()
. - Mengganti
PreviewView.getSurfaceProvider()
denganPreviewView.createSurfaceProvider(CameraInfo)
, yang mengambil instanceCameraInfo
nullable yang digunakan untuk mengoptimalkan pratinjau dengan menggunakanImplementationMode.SURFACE_VIEW
jika memungkinkan. Jika instance null diteruskan, atau jika Anda menetapkan mode penerapan pilihan keImplementationMode.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 kePreviewView.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 dalamPreviewView.ScaleType
, dan default-nya adalahPreviewView.ScaleType.FILL_CENTER
.PreviewView.getScaleType()
ditambahkan.Menghapus dukungan untuk menetapkan mode penerapan untuk
PreviewView
dalam tata letak XML menggunakan atributimplementationMode
.Menambahkan
createMeteringPointFactory()
API ke PreviewView untuk mendukung konversi (x, y) diPreviewView
untukMeteringPoint
. (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 ini.
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 ini.
Perbaikan Bug
- Mengganti
ListenableFuture
diSurfaceRequest.provideSurface()
denganExecutor
danCallback
. Hal ini menyederhanakan API dengan tidak lagi memerlukan penanganan pengecualian padaprovideSurface()
dan pemberlakuan yang tidak dapat dibatalkan oleh callbackprovideSurface()
. Hal ini untuk mencegah error pada perangkat lama yang disebabkan oleh pelepasan permukaan terlalu cepat. ObjekSurfaceRequest.Result
sekarang digunakan untuk melacak bagaimanaSurfaceRequest
menggunakanSurface
yang disediakan. (I7854b) - Mengganti nama
SurfaceRequest.setSurface(Surface)
menjadiSurfaceRequest.provideSurface(Surface)
, danSurfaceRequest.setWillNotComplete()
menjadiSurfaceRequest.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 ini.
Perbaikan Bug
- Argumen yang sebelumnya diteruskan dalam
ImageCapture.OnImageSavedCallback.onError()
danImageCapture.OnImageCapturedCallback.onError()
sekarang telah diganti dengan satu argumenImageCaptureException
, 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 ini.
Perubahan API
- Implementasi
TextureView
PreviewView
sekarang menetapkan ukuranTextureView
ke ukuran output sensor kamera sebelum menskalakannya agar mengisiPreviewView
induknya. Jika Anda ingin agar pratinjau kamera mengisi seluruh bagian UI (misalnya satu layar penuh), sebaiknya jangan tetapkan ukuranPreviewView
ke nilai yang tetap, atau membuatnya menggabungkan kontennya (misalnya dengan menggunakan atribut "wrap_content
"). Hal ini dapat membuat pratinjau kamera hanya mengisi bagianPreviewView
(jika ukuran output sensor kamera lebih kecil). Sebagai gantinya, Anda harus menetapkanPreviewView
sebesar induknya (misalnya, dengan menggunakan atribut "match_parent
"). (1204869)
Perbaikan Bug
- Memperbarui
ImageCapture
untuk memungkinkan penyimpanan gambar keUri
danOutputStream
. Menggabungkan metodetakePicture
yang kelebihan muatan menjadi satu. Mengupdate aplikasi pengujian untuk menggunakanUri
sebagai contoh kanonis. (Ia3bec) Preview.PreviewSurfaceProvider
diganti namanya menjadiPreview.SurfaceProvider
.SurfaceProvider
tidak lagi mengharuskan developer membuatListenableFuture
-nya sendiri, dan penyediaanSurface
sekarang dilakukan melalui objekSurfaceRequest
yang baru. MetodePreview.getPreviewSurfaceProvider()
telah dihapus karena berpotensi untuk disalahgunakan saatPreview
dipasangkan dengan class lain sepertiPreviewView
. (I20105)- Argumen yang sebelumnya diteruskan dalam
ImageCapture.OnImageSavedCallback.onError()
danImageCapture.OnImageCapturedCallback.onError()
sekarang telah diganti dengan satu argumenImageCaptureException
, 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()
, dangetLinearZoom()
dariCameraInfo
yang digabungkan menjadigetZoomState()
yang menampilkan instanceZoomState
. (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 ini.
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 ini.
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 ini.
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 ini.
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
menyediakanPreviewSurfaceProvider
untuk memudahkan proses menghubungkan kasus penggunaan Pratinjaupreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
“
ZoomLevel
” kini menjadi “ZoomRatio
” dalam penamaan APIBeberapa 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.