CameraX

CameraX adalah tambahan untuk Jetpack yang mempermudah penambahan kemampuan 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 di grup androidx.camera.

Artefak Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
camera-camera2 1.3.2 - - 1.4.0-alpha04
camera-core 1.3.2 - - 1.4.0-alpha04
efek kamera - - - 1.4.0-alpha04
camera-extensions 1.3.2 - - 1.4.0-alpha04
camera-lifecycle 1.3.2 - - 1.4.0-alpha04
camera-mlkit-vision - - 1.3.0-beta02 1.4.0-alpha04
camera-view 1.3.2 - - 1.4.0-alpha04
jendela bidik kamera - - 1.3.0-beta02 1.4.0-alpha04
camera-video 1.3.2 - - 1.4.0-alpha04
Library ini terakhir diperbarui pada: 6 Maret 2024

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:

Groovy

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.4.0-alpha04"
  // The following line is optional, as the core library is included indirectly by camera-camera2
  implementation "androidx.camera:camera-core:${camerax_version}"
  implementation "androidx.camera:camera-camera2:${camerax_version}"
  // If you want to additionally use the CameraX Lifecycle library
  implementation "androidx.camera:camera-lifecycle:${camerax_version}"
  // If you want to additionally use the CameraX VideoCapture library
  implementation "androidx.camera:camera-video:${camerax_version}"
  // If you want to additionally use the CameraX View class
  implementation "androidx.camera:camera-view:${camerax_version}"
  // If you want to additionally add CameraX ML Kit Vision Integration
  implementation "androidx.camera:camera-mlkit-vision:${camerax_version}"
  // If you want to additionally use the CameraX Extensions library
  implementation "androidx.camera:camera-extensions:${camerax_version}"
}

Kotlin

dependencies {
    // CameraX core library using the camera2 implementation
    val camerax_version = "1.4.0-alpha04"
    // The following line is optional, as the core library is included indirectly by camera-camera2
    implementation("androidx.camera:camera-core:${camerax_version}")
    implementation("androidx.camera:camera-camera2:${camerax_version}")
    // If you want to additionally use the CameraX Lifecycle library
    implementation("androidx.camera:camera-lifecycle:${camerax_version}")
    // If you want to additionally use the CameraX VideoCapture library
    implementation("androidx.camera:camera-video:${camerax_version}")
    // If you want to additionally use the CameraX View class
    implementation("androidx.camera:camera-view:${camerax_version}")
    // If you want to additionally add CameraX ML Kit Vision Integration
    implementation("androidx.camera:camera-mlkit-vision:${camerax_version}")
    // If you want to additionally use the CameraX Extensions library
    implementation("androidx.camera:camera-extensions:${camerax_version}")
}

Masukan

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

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Versi 1.4

Versi 1.4.0-alpha04

24 Januari 2024

androidx.camera:camera-*:1.4.0-alpha04 dirilis. Versi 1.4.0-alpha04 berisi commit ini.

Fitur Baru

  • Artefak baru: efek kamera: Library untuk menerapkan efek real-time ke output CameraX, termasuk Preview, VideoCapture, dan/atau ImageCapture. Artefak ini berisi implementasi OpenGL dari CameraEffect API yang memanipulasi output kamera secara efisien.
  • OverlayEffect: untuk menggambar overlay dengan Canvas API Android. Hal ini memungkinkan aplikasi menerapkan watermark atau menandai objek yang terdeteksi pada output kamera.
  • DynamicRange API untuk Kasus Penggunaan Pratinjau: Rentang dinamis sekarang dapat disetel pada Kasus Penggunaan Pratinjau, terpisah dari Kasus Penggunaan Video. Hal ini memungkinkan rentang dinamis HDR seperti HLG10 untuk Pratinjau saja. API baru juga tersedia di CameraInfo untuk mengkueri rentang dinamis mana yang didukung setiap kamera.

Perubahan API

  • Mengganti nama ScreenFlashUiCompleter menjadi ScreenFlashListener dan memindahkan ScreenFlashUiCompleter#getExpirationTimeMillis ke parameter expirationTimeMillis dari ScreenFlash#apply. (I13944)
  • API baru ditambahkan untuk memungkinkan rentang dinamis disetel pada kasus penggunaan Pratinjau, dan untuk mengkueri rentang dinamis yang didukung oleh setiap kamera. Hal ini memungkinkan rentang dinamis HDR, seperti HLG10, untuk digunakan hanya dengan kasus penggunaan Pratinjau, tidak lagi memerlukan VideoCapture untuk diikat secara bersamaan. (If25e3)
  • Mengganti nama getMirroring() menjadi isMirroring() (I47063)
  • Menambahkan Realtime merekam dukungan estimasi latensi di CameraX. Ekstensi kamera memungkinkan aplikasi menggunakan API yang memberikan perkiraan lamanya waktu pengambilan gambar. Perkiraan ini memperhitungkan kondisi lingkungan saat ini, status kamera, dan menyertakan waktu yang dihabiskan untuk memproses permintaan pengambilan multi-frame bersama dengan waktu tambahan untuk mengenkode buffer yang diproses, jika diperlukan. (I05c3a)
  • Mengganti nama ScreenFlashUiControl menjadi ScreenFlash, ScreenFlashUiControl#applyScreenFlashUi menjadi ScreenFlash#apply, ScreenFlashUiControl#clearScreenFlashUi menjadi ScreenFlash#clear, dan menambahkan metode getScreenFlashUiApplyTimeoutSeconds, bukan mengekspos SCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS secara langsung. (Iccdd0)

Perbaikan Bug

  • Memperbaiki kebocoran memori yang menyebabkan aktivitas atau fragmen tidak dirilis saat Ekstensi diaktifkan (I14215)
  • Memperbaiki masalah saat getZoomRatio salah menampilkan nilai yang diturunkan saat menerapkan rasio zoom yang meningkat. (I4aa0d, b/317543616)
  • Peristiwa ImageCapture#ScreenFlash#clear segera dipanggil saat ImageCapture tidak terikat atau kamera ditutup, juga memperbaiki beberapa bug yang tidak pernah dipanggil karena pengambilan gambar dalam skenario ini tidak diselesaikan dengan benar. (If99f9)
  • Memperbaiki error yang terjadi saat siklus proses dihentikan sebelum permintaan takePicture selesai (Idf017, b/306202751)
  • Memperbaiki masalah pratinjau kamera yang menjadi hitam saat Ekstensi diaktifkan di beberapa perangkat (I1ffd0)
  • Memperbaiki durasi perekaman video yang salah pada perangkat yang menggunakan SoC Snapdragon 778G. (If6aa7, b/316057919)

Versi 1.4.0-alpha03

13 Desember 2023

androidx.camera:camera-*:1.4.0-alpha03 dirilis. Versi 1.4.0-alpha03 berisi commit ini.

Fitur Baru

  • Menambahkan CameraInfo.mustPlayShutterSound untuk memberikan informasi tentang apakah suara shutter harus diputar sesuai dengan batasan wilayah. (Ifda84)
  • Menambahkan OnImageCapturedCallback.onCaptureStarted dan OnImageSavedCallback.onCaptureStarted untuk memberi tahu saat kamera mulai mengekspos frame. Sebaiknya putar suara shutter atau animasi shutter di tahap ini. (IC49b3)
  • Menambahkan dukungan fitur Flash Layar di CameraX untuk pengambilan gambar kamera depan. CameraX akan menangani penanganan API sisi framework dan menyinkronkan pengaturan waktu dengan perubahan UI aplikasi sesuai kebutuhan (misalnya, pemicu precapture AE setelah perubahan warna/kecerahan layar aplikasi). Aplikasi hanya perlu menambahkan implementasi sisi UI di antarmuka ScreenFlashUiControl yang disediakan untuk CameraX. (I8ae84)
  • Menambahkan dukungan implementasi sisi UI fitur Screen Flash di CameraX. Aplikasi akan dapat memperoleh implementasi ImageCapture.ScreenFlashUiControl dasar dari PreviewView atau ScreenFlashView yang baru ditambahkan yang akan menambahkan tampilan overlay mono-warna dan memaksimalkan kecerahan layar selama pengambilan foto dengan flash layar. (I1810e)

Perubahan API

  • Mendukung fitur Extensions baru(progres proses postview dan pengambilan): Menambahkan ImageCapture#getImageCaptureCapabilities() API untuk aplikasi guna mengkueri kemampuan postview dan callback progres proses pengambilan gambar. Aplikasi dapat mengaktifkan tampilan postingan menggunakan ImageCapture.Builder#setPostviewEnabled(). Ukuran pascatayang dapat dipilih menggunakan ImageCapture.Builder#setPostviewResolutionSelector(). Saat memanggil takePicture(), onPostviewBitmapAvailable dan onCaptureProcessProgressed dapat diterapkan di OnImageSavedCallback atau OnImageCapturedCallback untuk mendapatkan notifikasi progres tampilan pasca dan proses jika didukung. (I5cd88)
  • API untuk menghitung transformasi koordinat dari sensor ke buffer saat ini, dengan tanda yang menunjukkan apakah Surface berisi info orientasi kamera. (I59096)
  • Ekspos API untuk membuat kueri PreviewCapabitlity dalam Pratinjau UseCase. (Ie5b6c)
  • Menambahkan API untuk mendukung lebih banyak kualitas untuk VideoCapture. Recorder.Builder#setVideoCapabilitiesSource(int) dapat digunakan dengan VIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES untuk membuat instance Recorder yang mendukung lebih banyak kualitas daripada VIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE. Kasus penggunaan yang umum adalah ketika aplikasi berusaha merekam video UHD jika memungkinkan, tetapi CamcorderProfile perangkat tidak menyertakan setelan UHD, meskipun codec mampu merekam video UHD. (Iedbe2, b/263961771)
  • Menambahkan pengambil/penyetel format output ImageAnalysis ke CameraController. (I9a96c, b/308240643)

Perbaikan Bug

  • Dari Kamera 1.3.1: Meningkatkan performa ProcessCameraProvider#bindToLifecycle(). Perubahan utamanya adalah mengoptimalkan proses identifikasi kombinasi ukuran yang paling sesuai untuk UseCases. Hasil optimal bervariasi berdasarkan kombinasi UseCase tertentu dan jumlah ukuran output yang didukung untuk perangkat target. (I454f2)
  • Izinkan penggunaan VideoCapture saat Ekstensi diaktifkan. (I91f32)
  • Memperbaiki masalah besar gambar JPEG yang diambil pada perangkat seri Samsung A71 dan M51. Gambar JPEG yang diambil berisi data padding 0 yang redundan di segmen data terkompresi JFIF. Mode ini menyebabkan gambar yang diambil memiliki ukuran file yang ekstrem. Data padding 0 yang redundan akan dihapus untuk membuat gambar yang diambil memiliki ukuran file gambar normal. (I01afc, b/288828159)
  • Nonaktifkan dukungan ImageAnalysis di Pixel untuk menghindari bug di Pixel yang menampilkan ukuran yang didukung ImageAnalysis yang tidak kosong secara tidak sengaja. (I7ec31)
  • Memperbaiki masalah performa saat pemuatan CPU dan konsumsi daya meningkat saat Ekstensi diaktifkan. (Ibdccb)
  • Menambahkan Snapdragon 480 ke CameraUseInconsistentTimebaseQuirk. Perubahan ini memperbaiki masalah di Android 12 untuk perangkat yang menggunakan chipset ini, ketika audio dalam rekaman di-offset sesuai durasi perangkat dalam status ditangguhkan. (I58010)

Versi 1.4.0-alpha02

18 Oktober 2023

androidx.camera:camera-*:1.4.0-alpha02 dirilis. Versi 1.4.0-alpha02 berisi commit ini.

Perubahan API

  • Ganti nama API menjadi setCameraOpenRetryMaxTimeoutInMillisWhileResuming dan ganti nama argumen. (I72370)
  • Menambahkan API untuk mengkueri kemampuan perangkat dan mengaktifkan stabilisasi video/pratinjau. (I87544)
  • Menyediakan API untuk menyesuaikan waktu tunggu maksimum saat mencoba lagi saat membuka kamera. (I0c642)
  • Merilis ProcessCameraProvider.shutdownAsync sebagai API pengujian publik untuk memungkinkan penyedia kamera proses digunakan dalam rangkaian pengujian yang mungkin perlu menginisialisasi CameraX dengan cara yang berbeda di antara pengujian. (I9eca7)
  • Menambahkan API untuk mengonfigurasi rentang dinamis perekaman video, kecepatan frame, dan mode cermin. (Ifb8f7)
  • Menghentikan penggunaan OutputSize dan menggantinya dengan ResolutionSelector. ResolutionSelector adalah cara yang lebih komprehensif untuk memilih resolusi, dan konsisten dengan API inti kamera. (I93abd, b/286801438)

Perbaikan Bug

  • Memperbaiki masalah pratinjau berwarna hitam pada Samsung Galaxy S23 Ultra 5G saat Ekstensi Bokeh atau Retouch Wajah diaktifkan dengan ImageAnalysis di kamera belakang. (I2e8b1)
  • Memperbaiki Pratinjau dan masalah VideoCapture yang belum terselesaikan di Moto E5 Play. (73dce2)

Versi 1.4.0-alpha01

20 September 2023

androidx.camera:camera-*:1.4.0-alpha01 dirilis. Versi 1.4.0-alpha01 berisi commit ini.

Perubahan API

  • Menambahkan API baru untuk mengakses informasi amplitudo audio saat merekam. Id4925

Perbaikan Bug

  • Meningkatkan stabilitas Ekstensi dengan memastikan peristiwa inisialisasi dan deinisialisasi dipicu dalam urutan yang benar. (Ib3b8e)
  • Memperbaiki kegagalan konfigurasi sesi pengambilan gambar karena melebihi kombinasi platform yang didukung karena menambahkan platform berulang tambahan secara internal. (Id718c)
  • Memperbaiki masalah gambar JPEG yang diambil berukuran besar di perangkat Vivo S16. Gambar JPEG yang diambil berisi data padding 0 yang redundan di segmen data terkompresi JFIF. Hal ini menyebabkan gambar yang diambil memiliki ukuran file yang besar. Data padding 0 yang redundan akan dihapus untuk membuat gambar yang diambil memiliki ukuran file gambar normal. (I79505, b/299069235)
  • Memperbaiki masalah ImageAnalysis yang tidak dapat diikat bersama dengan ImageCapture dan Pratinjau saat beberapa mode ekstensi diaktifkan di beberapa perangkat. Perbaikan akan menampilkan nilai yang benar saat aplikasi mengkueri ketersediaan ImageAnalysis melalui ExtensionsManager#isImageAnalysisSupported(). (I7d538)
  • Mengupdate JavaDoc agar cocok dengan perilaku. #setZoomRatio, #setLinearZoom, dan #enableTorch tidak akan langsung selesai menunggu hingga kamera siap. Juga menambahkan informasi tentang cara mendapatkan FOV maksimum dengan #takePicture API. (I23588)

Versi 1.3

Versi 1.3.2

6 Maret 2024

androidx.camera:camera-*:1.3.2 dirilis. Versi 1.3.2 berisi commit ini.

Perbaikan Bug

  • Memperbaiki masalah metadata JPEG pada perangkat Samsung A24. CameraX kini menyimpan gambar secara akurat, dan fungsi ImageProxy.toBitmap() menampilkan objek Bitmap yang benar. (I8d6eb, b/309005680)
  • Menghapus opsi resolusi 9280x6944 pada perangkat Redmi Note 9 Pro karena masalah. (Ia23da)

Versi 1.3.1

13 Desember 2023

androidx.camera:camera-*:1.3.1 dirilis. Versi 1.3.1 berisi commit ini.

Perbaikan Bug

Meningkatkan performa ProcessCameraProvider#bindToLifecycle(). Perubahan utamanya adalah mengoptimalkan proses identifikasi kombinasi ukuran yang paling sesuai untuk UseCases. Hasil optimal bervariasi berdasarkan kombinasi UseCase tertentu dan jumlah ukuran output yang didukung untuk perangkat target. (I454f2)

Berikut ini beberapa hasil referensi untuk berbagai skenario:

  • Empat UseCases: Preview + ImageCapture + ImageAnalysis + VideoCapture

    • Google Pixel 7: Sekitar 430 md hingga 60 md
    • Samsung Galaxy S23 Ultra: Sekitar 540 md hingga 45 md
    • Samsung A53 5G: Sekitar 115 md hingga 70 md
  • Tiga UseCases: Preview + ImageCapture + ImageAnalysis

    • Google Pixel 7: Sekitar 9 md hingga 7 md
    • Samsung Galaxy S23 Ultra: Sekitar 6 md hingga 5 md
    • Samsung A53 5G: Sekitar 32 md hingga 12 md
  • Menambahkan Snapdragon 480 ke CameraUseInconsistentTimebaseQuirk. Perubahan ini memperbaiki masalah di Android 12 untuk perangkat yang menggunakan chipset ini, ketika audio dalam rekaman di-offset sesuai durasi perangkat dalam status ditangguhkan. (I58010)

Versi 1.3.0

18 Oktober 2023

androidx.camera:camera-*:1.3.0 dirilis. Versi 1.3.0 berisi commit berikut ini.

Perubahan penting sejak versi 1.2.0

Versi 1.3.0-rc02

20 September 2023

androidx.camera:camera-*:1.3.0-rc02 dirilis. Versi 1.3.0-rc02 berisi commit ini.

Perbaikan Bug

  • Meningkatkan stabilitas Ekstensi dengan memastikan peristiwa inisialisasi dan deinisialisasi dipicu dalam urutan yang benar. Pembaruan ini memperbaiki beberapa masalah pratinjau berwarna hitam saat beralih mode Ekstensi atau beralih kamera. Iddaac
  • Memperbaiki masalah ImageAnalysis yang tidak dapat diikat bersama dengan ImageCapture dan Pratinjau saat beberapa mode ekstensi diaktifkan di beberapa perangkat. Perbaikan akan menampilkan nilai yang benar saat aplikasi mengkueri ketersediaan ImageAnalysis melalui ExtensionsManager#isImageAnalysisSupported(). (I7d538)
  • Memperbaiki masalah audio dan video video yang direkam tidak sinkron saat mode pencerminan diaktifkan di Xiaomi Poco X3 NFC. (I20b4c)

Versi 1.3.0-rc01

23 Agustus 2023

androidx.camera:camera-*:1.3.0-rc01 dirilis. Version 1.3.0-rc01 berisi commit berikut ini.

Perubahan API

  • Menambahkan PendingRecording.asPersistentRecording untuk memungkinkan perekaman terus-menerus merekam saat VideoCapture yang terpasang ke Perekam Suara diputar kembali. (I517c6)

Perbaikan Bug

  • Memperbaiki error saat streaming dibagikan ke VideoCapture dan Pratinjau. Juga memperbaiki layar hitam di perangkat LAMA saat berbagi streaming diaktifkan.
  • Memperbaiki masalah besar gambar JPEG yang diambil pada perangkat seri Samsung S7 (SM-G930T, SM-G930V). Gambar JPEG yang diambil berisi data padding 0 yang redundan di segmen data terkompresi JFIF. Hal ini menyebabkan gambar yang diambil memiliki ukuran file yang besar. Data padding 0 yang redundan akan dihapus untuk membuat gambar yang diambil memiliki ukuran file gambar normal. (I407b0, b/288828159)
  • Memperbaiki masalah besar gambar JPEG yang diambil pada perangkat seri Samsung S22 (SM-S901B, SM-S901B/DS) dan S22+ (SM-S906B). Gambar JPEG yang diambil berisi data padding 0 yang redundan di segmen data terkompresi JFIF. Mode ini menyebabkan gambar yang diambil memiliki ukuran file besar sekitar 13 MB pada perangkat S22 SM-S901B/DS. Data padding 0 yang redundan akan dihapus untuk membuat gambar yang diambil memiliki ukuran file gambar normal. (I73be9, b/288828159)
  • Memperbaiki masalah besar gambar JPEG yang diambil pada perangkat seri Samsung A5, A52, A70, dan A72. Gambar JPEG yang diambil berisi data padding 0 yang redundan di segmen data terkompresi JFIF. Hal ini menyebabkan gambar yang diambil memiliki ukuran file yang ekstrem (misalnya sekitar 32 MB atau bahkan 96 MB). Data padding 0 yang redundan akan dihapus untuk membuat gambar yang diambil memiliki ukuran file gambar normal. (I97c4d, b/288828159)
  • Memperbaiki masalah pada native code saat mengambil gambar dengan Ekstensi diaktifkan (I698f5)

Versi 1.3.0-beta02

26 Juli 2023

androidx.camera:camera-*:1.3.0-beta02 dirilis. Versi 1.3.0-beta02 berisi commit ini.

Perbaikan Bug

  • Menggunakan flash sebagai flash untuk varian Pixel 4 dan 5 guna meningkatkan kualitas gambar dalam kondisi cahaya redup (I56ff5, b/280221967)
  • Memperbaiki masalah besar pada gambar JPEG yang diambil pada perangkat Samsung A5 (2017). Gambar JPEG yang diambil berisi data padding 0 yang redundan di segmen data terkompresi JFIF. Hal ini menyebabkan gambar yang diambil memiliki ukuran file sekitar 32 MB. Data padding 0 yang redundan akan dihapus untuk membuat gambar yang diambil memiliki ukuran file gambar normal. (I29837, b/288828159)
  • Memperbaiki percobaan ulang yang tidak dapat dipicu dengan benar jika terjadi kegagalan pengambilan gambar di perangkat bermasalah yang disebutkan di CaptureFailedRetryQuirk. (I7b589)

Versi 1.3.0-beta01

21 Juni 2023

androidx.camera:camera-*:1.3.0-beta01 dirilis. Versi 1.3.0-beta01 berisi commit ini.

Perubahan API

  • Mengganti nama nama fungsi ResolutionSelector.Builder#setHighResolutionEnabledFlag(int) menjadi setAllowedResolutionMode dan mengganti nama konstanta ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON menjadi PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE. (If84e8)
  • Menghapus API ImageAnalysis.setTargetRotationDegrees(int), ImageCapture.setTargetRotationDegrees(int), dan VideoCapture.setTargetRotationDegrees(int) yang tidak digunakan lagi. Id8e77
  • Class DynamicRange mewakili rentang dinamis gambar. Ini dapat digunakan untuk memilih format Rentang Dinamis Tinggi (High Dynamic Range) sebagai output dari VideoCapture hingga VideoCapture.Builder#setDynamicRange(). (Ib0377)
  • Menambahkan isImageAnalysisSupported API ke ExtensionsManager yang aplikasi dapat menentukan apakah kasus penggunaan ImageAnalysis dapat diikat bersama Pratinjau dan ImageCapture saat Ekstensi diaktifkan. (I1bc63)
  • Class VideoCapabilities baru yang diperoleh dari Recorder dapat digunakan untuk mengkueri rentang dinamis dan kualitas yang didukung untuk perekaman video di perangkat. Metode getSupportedQualities() dan isQualitySupported() QualitySelector tidak digunakan lagi. Sebagai gantinya, gunakan metode getSupportedQualities() dan isQualitySupported() VideoCapabilities. (I04014)
  • CameraController#setVideoCaptureTargetQuality() diganti namanya menjadi setVideoCaptureQualitySelector dan menggunakan argumen QualitySelector, yang memberikan lebih banyak fleksibilitas untuk penyiapan kualitas video. CameraController#getVideoCaptureTargetQuality() juga diubah menjadi getVideoCaptureQualitySelector. (I520ed)
  • Menghapus anotasi eksperimental untuk fitur video. Fitur video kini stabil. (I1a113)

Perbaikan Bug

  • Gunakan flash sebagai flash pada model Samsung SM-A320 untuk meningkatkan kecepatan dan kualitas gambar yang diambil dalam kondisi cahaya redup. (I6a022, b/286190938)
  • Menambahkan dukungan format ImageFormat.JPEG untuk ImageProxy.toBitmap(). Jika array byte JPEG tidak dapat didekode, UnsupportedOperationException akan ditampilkan. (I81958, b/282057603)

Versi 1.3.0-alpha07

24 Mei 2023

androidx.camera:camera-*:1.3.0-alpha07 dirilis. Versi 1.3.0-alpha07 berisi commit ini.

Fitur Baru

  • VideoCapture.Builder# setTargetFrameRate(Range) API yang baru memungkinkan perekaman video direkam dengan kecepatan frame lain selain default perangkat. Kecepatan frame yang tersedia untuk rekaman dapat dikueri melalui CameraInfo#getSupportedFrameRates() API baru.

Perubahan API

  • Mengganti nama konstanta ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON menjadi ALLOWED_RESOLUTIONS_NORMAL/SLOW dan mengganti nama fungsi setHighResolutionEnabledFlag builder menjadi setAllowedResolutionMode. (Iae817)
  • CameraInfo#getSupportedFrameRateRanges() kini menampilkan Set, bukan List, untuk menunjukkan dengan lebih baik bahwa rentang tidak berurutan. (I02f43)
  • Menambahkan pemroses error ke CameraEffect untuk menangani error yang tidak dapat dipulihkan (Ice471)
  • Menambahkan konstruktor publik di ResolutionInfo untuk kemampuan pengujian yang lebih baik (If6d1c)
  • Menyediakan API UseCase.snapToSurfaceRotation(int) untuk menggantikan penggunaan setTargetRotationDegrees dan menghentikan penggunaan API ImageAnalysis.setTargetRotationDegrees(int), ImageCapture.setTargetRotationDegrees(int), dan VideoCapture.setTargetRotationDegrees(int). (Ia9010)
  • Menambahkan API baru Preview#getTargetFrameRate dan Preview.Builder#setTargetFrameRate agar dapat menetapkan dan mengambil target kecepatan frame untuk kasus penggunaan Pratinjau (If4f22)
  • VideoRecordEvent.Finalize sekarang akan menyelesaikan kode error ERROR_RECORDING_GARBAGE_COLLECTED saat objek Recording dihentikan karena pembersihan sampah memori. (Iba974)

Perbaikan Bug

  • Memperbaiki NullPointerException saat ukuran output yang di-cache di StreamConfigurationMapCompat adalah null. (Idf124, b/282025204)
  • Memperbaiki masalah yang menyebabkan Preview.setSurfaceProvider(null) tidak menjeda pratinjau di Extensions (Ia903e)
  • Memperbaiki masalah yang menyebabkan ConcurrentModificationException ditampilkan selama pembukaan kamera saat VideoCapture terikat. (IC8ac4)

Versi 1.3.0-alpha06

19 April 2023

androidx.camera:camera-*:1.3.0-alpha06 dirilis. Versi 1.3.0-alpha06 berisi commit ini.

Fitur Baru

  • Kamera serentak adalah fitur baru yang diperkenalkan dari Android 11, yang mendukung streaming perangkat kamera secara simultan. Misalnya, fitur ini memungkinkan perangkat memiliki kamera depan dan belakang yang beroperasi secara bersamaan. CameraX saat ini hanya mendukung kamera ganda yang bersamaan, yang memungkinkan dua kamera beroperasi secara bersamaan, dengan maksimum dua {@link UseCase} yang terikat untuk masing-masing kamera. Resolusi maksimum adalah 720p atau 1440p. Lihat detail selengkapnya di link berikut, lihat CameraManager#getConcurrentCameraIds()
  • Memperkenalkan ResolutionSelector API baru yang mencakup fitur berikut:
    • Aplikasi dapat menentukan rasio aspek dan strategi resolusi untuk memilih resolusi terbaik sesuai kebutuhan.
    • Semua ukuran dan parameter rasio aspek dinyatakan dalam koordinat sensor perangkat kamera.
    • Aplikasi dapat menerapkan filter resolusi kustom untuk mengatur ukuran yang didukung dalam urutan yang diinginkan.
    • Aplikasi juga dapat mengaktifkan pengambilan resolusi tinggi untuk mendapatkan gambar beresolusi lebih tinggi. Namun, perhatikan bahwa menggunakan resolusi tinggi dapat menyebabkan waktu pengambilan gambar yang lebih lambat.
    • Menambahkan API pencerminan VideoCapture. Video yang direkam oleh VideoCapture tidak dicerminkan secara default. Namun, pratinjau kamera dicerminkan di kamera depan secara default. API pencerminan VideoCapture memungkinkan penyesuaian dengan pratinjau kamera saat menggunakan kamera depan. Ada tiga MirrorMode, OFF, ON, dan ON_FRONT_ONLY. Untuk menyelaraskan dengan pratinjau kamera, sebaiknya gunakan ON_FRONT_ONLY yang berarti pencerminan tidak diaktifkan untuk kamera belakang, tetapi diaktifkan untuk kamera depan.

Perubahan API

  • Mengekspos ResolutionSelector API baru. Aplikasi dapat menentukan rasio aspek dan strategi resolusi dengan aturan penggantian atau filter resolusi kustom untuk mendapatkan hasil yang diinginkan. Aplikasi dapat menentukan flag untuk mengaktifkan pengambilan resolusi tinggi. Hal ini akan memungkinkan CameraX memilih resolusi yang lebih tinggi saat mengambil foto atau video. Namun, perhatikan bahwa menggunakan resolusi tinggi dapat menyebabkan waktu pengambilan gambar yang lebih lambat. (Ibed95)
  • Rentang FPS yang didukung oleh algoritma AE kini dapat dikueri melalui CameraInfo#getSupportedFrameRateRanges(). (Iaa67f)
  • Gabungkan nama semua metode kecepatan frame untuk menggunakan 'FrameRate'. Memperbaiki kesalahan javadoc di VideoCapture#getTargetFrameRate() (I83304)
  • Menghentikan penggunaan setTargetAspectRatio dan setTargetResolution API lama. Sebagai gantinya, gunakan ResolutionSelector API baru. (I542c3)
  • Menambahkan API publik untuk kamera ganda serentak, termasuk
    1. List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
    2. ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
    3. boolean isConcurrentCameraModeOn() dan ConcurrentCameraConfig, SingleCameraConfig, dan ConcurrentCamera (Iab1c1)
  • Membuat ImageProcessor.Response#getOutputImage NonNull (Ib9c60)
  • Menambahkan API pencerminan VideoCapture, termasuk VideoCapture.Builder.setMirrorMode(int) dan VideoCapture.getMirrorMode(). API ini berguna untuk aplikasi yang memerlukan perekaman video agar konsisten dengan perilaku pratinjau kamera umum, yaitu pratinjau kamera belakang tidak dicerminkan, tetapi pratinjau kamera depan dicerminkan. (I713b6, b/194634656)
  • Menambahkan setTargetFrameRate() API di VideoCapture.Builder dan getTargetFramerate() API di VideoCapture (I109d4)
  • Membuat SurfaceOutput memperluas Closable dan menyembunyikan konstruktor publik SurfaceOutput.Event. (I60ea8)
  • Menambahkan Recording.mute untuk membisukan atau membunyikan audio rekaman yang sedang diproses secara dinamis. RecordingStats akan berisi AudioStats.AUDIO_STATE_MUTED saat rekaman yang sedang diproses dibisukan secara eksplisit. (Ie17fc)
  • Membuat parameter #setEffects() non-null. Menambahkan #clearEffects() API untuk menghapus efek. Aplikasi harus memanggil #clearEffects() untuk menghapus efek. (I4b4d9)
  • Menambahkan konstruktor kedua untuk ViewfinderSurfaceRequest.Builder guna mengambil builder untuk konstruktor salinan (I621a7)

Perbaikan Bug

  • Memperbaiki masalah saat aplikasi yang memanggil Extensions API dapat mengalami error saat menutup kamera (Ib27e5)
  • Memperbaiki masalah VideoCapture yang tidak dapat berfungsi dengan kamera depan di beberapa perangkat. Misalnya, di Samsung Galaxy S23 dan Xiaomi 2107113SG. (Ibec7e, b/270656244)
  • Memperbaiki masalah pengambilan gambar menggunakan File di folder publik penyimpanan eksternal yang akan selalu gagal di Android 10 atau yang lebih baru. Perlu diketahui bahwa di Android 10, mengambil gambar menggunakan File di folder publik penyimpanan eksternal juga memerlukan setelan requestLegacyExternalStorage ke true di tag aplikasi. (I11b2c)
  • Memperbaiki error RejectedExecutionException di DefaultSurfaceProcessor. Error dapat terjadi saat VideoCapture terikat dan aktivitas dijeda. (Idb46a, b/273713906)

Versi 1.3.0-alpha05

22 Maret 2023

androidx.camera:camera-*:1.3.0-alpha05 dirilis. Versi 1.3.0-alpha05 berisi commit ini.

Perubahan API

  • Menambahkan VideoCapture rotasi API, termasuk VideoCapture.Builder.setTargetRotation(int), VideoCapture.setTargetRotation(int), VideoCapture.setTargetRotationDegrees(int), dan VideoCapture.getTargetRotation(). API ini berguna untuk aplikasi yang mengunci orientasi perangkat. ImageCapture.setTargetRotationDegrees(int) dan ImageAnalysis.setTargetRotationDegrees(int) juga ditambahkan. (Id3ffe, b/205242781)
  • Izinkan VIDEO_CAPTURE dan PREVIEW|VIDEO_CAPTURE sebagai target efek. Efek yang menargetkan VIDEO_CAPTURE akan diterapkan ke UseCase VideoCapture; Efek yang menargetkan PREVIEW|VIDEO_CAPTURE akan diterapkan ke streaming bersama sebelum disalin ke Pratinjau dan aliran VideoCapture. (Iee6f3)

Perbaikan Bug

  • Dari Camera 1.2.2: Memperbaiki masalah saat Ekstensi CameraX tidak berfungsi dengan benar saat proguard diaktifkan di beberapa perangkat seperti Pixel (I90aa2)
  • Memperbaiki bug PreviewView yang jika aplikasi menangani orientasi layar itu sendiri. Pratinjau mungkin terdistorsi saat rotasi. Hal ini hanya terjadi di perangkat tertentu. Fitur ini dapat direproduksi di Pixel a4, Pixel 5, dan Pixel 6a. (I14340, b/223488673)

Versi 1.3.0-alpha04

22 Februari 2023

androidx.camera:camera-*:1.3.0-alpha04 dirilis. Versi 1.3.0-alpha04 berisi commit ini.

Fitur Baru

Fitur baru untuk mendukung kombinasi Platform yang sebelumnya tidak didukung dengan membagikan satu streaming ke beberapa UseCases.

  • Sebelumnya, saat melakukan binding "Preview, VideoCapture, ImageAnalysis" pada level hardware kamera LENGKAP dan di bawahnya, atau melakukan binding "Preview, VideoCapture, ImageCapture" pada level hardware LAMA, CameraX menampilkan IllegalArgumentException.
  • Perilaku baru adalah binding akan berfungsi tanpa menampilkan pengecualian. Sebagai gantinya, CameraX menggunakan OpenGL untuk menyalin streaming bersama ke Pratinjau dan VideoCapture.
  • Aplikasi mungkin akan mengalami peningkatan latensi dan pemakaian daya untuk membuat salinan buffer.

Perubahan API

  • Menambahkan API untuk mengonversi ImageProxy ke Bitmap. Format ImageProxy yang didukung adalah ImageFormat.YUV_420_888 dan PixelFormat.RGBA_8888. Jika formatnya tidak valid, IllegalArgumentException akan ditampilkan. (Ic7110)
  • Menambahkan CoroutineCameraViewfinder untuk mendukung konfigurasi jendela bidik menggunakan fungsi penangguhan di Kotlin. (I657bc)
  • Menambahkan konstruktor publik baru untuk ViewfinderSurfaceRequest. Hal ini memberikan fleksibilitas saat pengguna tidak dapat memberikan CameraCharacteristics. (Ie6549)

Perbaikan Bug

  • Memperbaiki error Ekstensi yang terjadi di beberapa perangkat Samsung saat menjeda/melanjutkan aplikasi terlalu cepat (Iaca26)

Versi 1.3.0-alpha03

25 Januari 2023

androidx.camera:camera-*:1.3.0-alpha03 dirilis. Versi 1.3.0-alpha03 berisi commit ini.

Perubahan API

  • Menambahkan CameraInfo.getIntrinsicZoomRatio untuk memberikan informasi sudut pandang relatif kepada kamera default. (Ib300c)
  • Menambahkan CameraInfo.getLensFacing untuk memberikan informasi arah hadap lensa. Menambahkan CameraSelector#LENS_FACING_EXTERNAL sebagai fitur eksperimental untuk memilih kamera eksternal. (Icaf3e)
  • Menambahkan #setEffect() ke CameraController yang memungkinkan penambahan efek ke output kamera. (I1d21f)
  • Menambahkan metode invalidate() ke SurfaceRequest. Penyedia Platform dapat memberi tahu bahwa platform yang disediakan sebelumnya tidak lagi valid. (Idc649)
  • Menambahkan ImageProcessor API. Antarmuka ini digunakan untuk memasukkan efek pascapemrosesan ke dalam pipeline ImageCapture. (I575c6)
  • Menambahkan API Recorder.Builder.setAspectRatio() yang dapat digabungkan dengan QualitySelector untuk mendukung lebih banyak resolusi video. (I8a082)
  • Menambahkan Recorder.Builder#setTargetVideoEncodingBitRate untuk menetapkan Encoding Video Target BitRate dan Recorder#getTargetVideoEncodingBitRate guna mendapatkan Kecepatan Bit Encoding Video Target. (I5984d)

Perbaikan Bug

  • Memperbaiki ImageCapture yang gagal saat tidak ada unit flash dan mode flash aktif. (I9e8b4, b/263391112)
  • Memperbaiki masalah kerusakan gambar JPEG ketika menulis data lokasi Exif di beberapa perangkat Samsung Android 12. (Ib7086, b/263747161, b/263289024)
  • saat menyetel flash/zoom sebelum inisialisasi kamera selesai, mis. memanggil CameraController#enableTorch, tindakan yang tertunda akan di-cache dan dikirim setelah inisialisasi dilakukan. (I11e92, b/264157663)

Versi 1.3.0-alpha02

7 Desember 2022

androidx.camera:camera-*:1.3.0-alpha02 dirilis. Versi 1.3.0-alpha02 berisi commit ini.

Perubahan API

  • menambahkan API baru untuk menerapkan efek pascapemrosesan ke output Pratinjau. (Ic17d5)
  • Mengganti nama OutputOptions.getDurationLimit menjadi OutputOptions.getDurationLimitMillis, dan OutputOptions.setDurationLimit menjadi OutputOptions.setDurationLimitMillis. (I91f0c)
  • Menambahkan class AudioConfig untuk menangani setelan terkait audio saat merekam video. Anotasi @RequiresPermission dipindahkan dari fungsi startRecording ke AudioConfig untuk menghindari permintaan izin yang tidak perlu ketika audio tidak dibutuhkan. (I28755)
  • Menghapus class Metadata, OnVideoSavedCallback, OutputFileOptions, dan OutputFileResults yang tidak lagi digunakan setelah menerapkan API perekaman video baru. (I38cd8)
  • Menerapkan API perekaman video baru. Metode getVideoCaptureTargetSize dan setVideoCaptureTargetSize diganti dengan metode getVideoCaptureTargetQuality dan setVideoCaptureTargetQuality, karena setTargetResolution tidak lagi didukung. (I2a1d5)

Perbaikan Bug

  • Menghapus core.VideoCapture API yang tidak digunakan lagi. (I531e0)
  • Memperbaiki masalah saat callback onError tidak dipanggil saat mengambil gambar tanpa izin penyimpanan.(I936db, b/244807669)
  • Meningkatkan kualitas dan keandalan ekstensi kamera. Ekstensi kamera dinonaktifkan pada perangkat Motorola menggunakan Ekstensi Kamera v1.1.0 dan yang lebih lama karena masalah dengan dukungan Bokeh, pengambilan gambar, dan pratinjau yang tidak dilanjutkan. (Id3ce3)
  • Memperbaiki masalah pada native code saat pemangkasan video melalui ViewPort diaktifkan pada perangkat lama. (I16b8a, b/251357665)

Versi 1.3.0-alpha01

9 November 2022

androidx.camera:camera-*:1.3.0-alpha01 dirilis. Versi 1.3.0-alpha01 berisi commit ini.

Fitur Baru

  • Camera-viewfinder telah dipublikasikan secara resmi. Camera-viewfinder menyediakan widget jendela bidik dasar yang dapat menampilkan feed kamera untuk Camera2. Lihat kode contoh untuk melihat contoh.

Perubahan API

  • Menambahkan OutputOptions.setDurationLimit untuk mengizinkan penentuan batas durasi video. Perekaman akan otomatis dihentikan saat melebihi batas durasi yang ditentukan. (I902a0)
  • Menambahkan status error audio rekaman video AudioStats.AUDIO_STATE_SOURCE_ERROR. Dikirim saat penyiapan sumber audio gagal atau terjadi beberapa error. (I37410)

Perbaikan Bug

  • Menambahkan quirk untuk mengizinkan beberapa perangkat yang bermasalah mencoba kembali perekaman satu kali saat terjadi kegagalan perekaman. (Id4795)
  • Memperbaiki masalah layar hitam implementasi PreviewView SurfaceView di ViewPager2. Sebagai bagian dari perbaikan, PreviewView akan menggunakan kembali SurfaceView jika resolusi yang diminta tidak berubah. (Ib3f27)
  • Mendukung pemangkasan video (fitur WYSIWYG) saat ViewPort atau CameraController API digunakan. (Ifbba8, b/201085351)
  • Memperbaiki kamera depan Huawei P40 lite yang gagal merekam video. (I87c57, b/250807400)

Versi 1.2

Versi 1.2.3

24 Mei 2023

androidx.camera:camera-*:1.2.3 dirilis. Versi 1.2.3 berisi commit ini.

Perbaikan Bug

  • Memperbaiki masalah VideoCapture yang tidak dapat berfungsi dengan kamera depan di beberapa perangkat. Misalnya, di Samsung Galaxy S23 dan Xiaomi 2107113SG. (Ibec7e, b/270656244)

Versi 1.2.2

22 Maret 2023

androidx.camera:camera-*:1.2.2 dirilis. Versi 1.2.2 berisi commit ini.

Perbaikan Bug

  • Memperbaiki masalah saat Ekstensi CameraX tidak berfungsi dengan benar saat proguard diaktifkan di beberapa perangkat seperti Pixel (I90aa2)

Versi 1.2.1

25 Januari 2023

androidx.camera:camera-*:1.2.1 dirilis. Versi 1.2.1 berisi commit ini.

Perbaikan Bug

  • Memperbaiki masalah kerusakan gambar JPEG ketika menulis data lokasi Exif di beberapa perangkat Samsung Android 12. (b/263289024)

Versi 1.2.0

7 Desember 2022

androidx.camera:camera-*:1.2.0 dirilis. Versi 1.2.0 berisi commit ini.

Perubahan penting sejak 1.1.0

  • Library camera-mlkit-vision baru. Mudah mengintegrasikan CameraX dengan banyak fitur MLKit, termasuk pemindaian kode batang, deteksi wajah, deteksi teks, dll. Menambahkan MLKitAnalyzer sebagai API baru.
  • Zero-Shutter Lag API eksperimental baru. Mengoptimalkan pipeline pengambilan agar memiliki latensi yang lebih baik sekaligus mempertahankan kualitas gambar yang baik. Saat mode pengambilan disetel ke CAPTURE_MODE_ZERO_SHUTTER_LAG, latensi antara saat tombol shutter diklik dan gambar akan diambil diharapkan diperkecil, dibandingkan dengan mode pengambilan lainnya. Pada perangkat yang tidak mendukung ZERO_SHUTTER_LAG, ini akan dikembalikan ke CAPTURE_MODE_MINIMIZE_LATENCY.
  • Menghentikan penggunaan android.camera.core.VideoCapture.
  • Menambahkan setStreamUseCase() sebagai Camera2Interop API publik.
  • Menambahkan persyaratan API level untuk setOutputImageRotationEnabled.
  • Mengganti nama ImageAnalysis.Analyzer#getTargetResolutionOverride() menjadi ImageAnalysis.Analyzer#getDefaultTargetResolution().
  • Menambahkan API untuk menyetel metadata lokasi ke video yang disimpan.
  • Memperbaiki kecepatan frame yang rendah saat menggunakan kasus penggunaan VideoCapture dan Pratinjau dengan rasio aspek 16:9
  • Memperbaiki masalah pratinjau berwarna hitam yang terjadi saat ekstensi BOKEH diaktifkan di beberapa perangkat Samsung dan pengguna mengganti kamera.
  • Memperbaiki Samsung J7 Prime (SM-G610M) dan J7 (SM-J710MN) Preview/VideoCapture yang mengalami masalah pada perangkat API level 27.
  • Menonaktifkan solusi untuk membalik area AF secara horizontal pada kamera depan di Samsung Android T karena masalah telah diperbaiki

Versi 1.2.0-rc01

24 Oktober 2022

androidx.camera:camera-*:1.2.0-rc01 dirilis. Versi 1.2.0-rc01 berisi commit ini.

Perubahan API

  • Menambahkan setStreamUseCase API untuk OutputConfiguration. Pengguna dapat menentukan Kasus Penggunaan Streaming untuk sesi streaming, yang menggantikan logika internal CameraX untuk memilih Kasus Penggunaan Streaming guna mengoptimalkan sesuai kebutuhan. (Ib1a95)

Perbaikan Bug

  • Memperbaiki Samsung J7 Prime (SM-G610M) dan J7 (SM-J710MN) Preview/VideoCapture yang mengalami masalah pada perangkat API level 27. Resolusi 1920x1080 menyebabkan gambar Preview/VideoCapture direntangkan. Menambahkan solusi agar tidak memilih resolusi 1920x1080 untuk Pratinjau atau VideoCapture agar gambar tidak bermasalah. (I0e04e)
  • Memperbaiki kecepatan frame yang rendah saat menggunakan kasus penggunaan Pratinjau dan VideoCapture dengan rasio aspek 16:9 di beberapa perangkat Huawei. (If8c88, b/223643510)
  • Memperbaiki kegagalan buka kamera saat SurfaceProvider Pratinjau tidak ditetapkan. Sebagai bagian dari perbaikan, Pratinjau tanpa SurfaceProvider yang ditetapkan kini tidak akan dikonfigurasi ke sesi pengambilan gambar kamera. (I99681)

Versi 1.2.0-beta02

21 September 2022

androidx.camera:camera-*:1.2.0-beta02 dirilis. Versi 1.2.0-beta02 berisi commit ini.

Perubahan API

  • Menambahkan persyaratan API level untuk setOutputImageRotationEnabled (I26e3e, b/240993561)

Perbaikan Bug

  • Menonaktifkan solusi untuk membalik area AF secara horizontal pada kamera depan di Samsung Android T karena masalah telah diperbaiki. (I05f69)
  • Memperbaiki masalah pratinjau berwarna hitam yang terjadi saat ekstensi BOKEH diaktifkan di beberapa perangkat Samsung dan pengguna mengganti kamera. (If6168)

Versi 1.2.0-beta01

24 Agustus 2022

androidx.camera:camera-*:1.2.0-beta01 dirilis. Versi 1.2.0-beta01 berisi commit ini.

Fitur Baru

  • Library camera-mlkit-vision baru. Mudah mengintegrasikan CameraX dengan banyak fitur MLKit, termasuk pemindaian kode batang, deteksi wajah, deteksi teks, dll. Temukan kode contoh di sini.
  • Zero-Shutter Lag API eksperimental baru. Mengoptimalkan pipeline pengambilan agar memiliki latensi yang lebih baik sekaligus mempertahankan kualitas gambar yang baik. Saat mode pengambilan disetel ke CAPTURE_MODE_ZERO_SHUTTER_LAG, latensi antara saat tombol shutter diklik dan gambar akan diambil diharapkan diperkecil, dibandingkan dengan mode pengambilan lainnya. Pada perangkat yang tidak mendukung ZERO_SHUTTER_LAG, ini akan dikembalikan ke CAPTURE_MODE_MINIMIZE_LATENCY.
  • Membuat ImageAnalysis.Analyzer dan MLKitAnalyzer sebagai API resmi.
  • Mengekspos API untuk menyetel metadata lokasi ke video yang disimpan.
  • Mengganti nama ImageAnalysis.Analyzer#getTargetResolutionOverride() menjadi ImageAnalysis.Analyzer#getDefaultTargetResolution().

Perbaikan Bug

  • Memperbaiki masalah pengambilan gambar Alps k61v1_basic_ref. Gambar JPEG yang diambil dari HAL memiliki metadata Exif yang salah. Metadata Exif tidak memiliki tag 0xffd9 atau 0xffda untuk membuat ExifInterface mengurai atribut dengan benar. Mengambil gambar dalam format YUV, lalu mengompresinya menjadi gambar output JPEG sebagai solusi untuk masalah ini. (I45abb)

Versi 1.2.0-alpha04

27 Juli 2022

androidx.camera:camera-*:1.2.0-alpha04 dirilis. Versi 1.2.0-alpha04 berisi commit ini.

Perubahan API

  • Mengganti nama ImageAnalysis.Analyzer#getTargetResolutionOverride() menjadi ImageAnalysis.Analyzer#getDefaultTargetResolution(). Perilakunya juga diubah sehingga nilai yang ditampilkan oleh metode ini dapat diganti dengan nilai ImageAnalysis#setTargetResolution(). (If1d36)
  • Mengekspos API untuk menyetel metadata lokasi ke video yang disimpan. Objek android.location.Location dapat ditetapkan melalui androidx.camera.video.OutputOptions.Builder.setLocation(Location) API yang baru. (I313a0, b/204197544)

Perbaikan Bug

  • Memperbaiki masalah untuk mengambil gambar dengan pratinjau yang tidak terikat (Ie70b6, b/235119898)
  • Memperbaiki error dalam Recorder saat mencoba merekam ketika sumber audio tidak tersedia. (I9f652)

Versi 1.2.0-alpha03

29 Juni 2022

androidx.camera:camera-*:1.2.0-alpha03 dirilis. Versi 1.2.0-alpha03 berisi commit ini.

Perubahan API

  • Menghapus anotasi eksperimental untuk ImageAnalysis.Analyzer dan MLKitAnalyzer. (I0ff22)

Perbaikan Bug

  • Menambahkan waktu tunggu default fokus otomatis 5.000 md yang akan menyelesaikan bagian AF dengan isFocusSuccessful false (salah) jika FocusMeteringAction tidak dibatalkan dan bagian AF tidak digabungkan dalam durasi. (Ibc2e3)
  • Memperbaiki masalah untuk mengambil gambar dengan pratinjau yang terikat (I1d3a2, b/235119898)
  • Mengaktifkan implementasi ekstensi lanjutan dan mengupdate versi antarmuka ekstensi dukungan CameraX ke 1.2 (I92256)

Versi 1.2.0-alpha02

1 Juni 2022

androidx.camera:camera-*:1.2.0-alpha02 dirilis. Versi 1.2.0-alpha02 berisi commit ini.

Fitur Baru

  • Mengekspos API Zero-Shutter Lag CameraX sebagai eksperimental.

Perubahan API

  • Menambahkan mode pengambilan baru CAPTURE_MODE_ZERO_SHUTTER_LAG di ImageCapture, dan menambahkan isZslSupported di CameraInfo untuk mengkueri kemampuan perangkat. Mode CAPTURE_MODE_ZERO_SHUTTER_LAG bertujuan untuk memberikan latensi minimum untuk pengambilan instan. Mode ini diimplementasikan berdasarkan buffer ring, yang meng-cache hasil pengambilan menengah untuk diproses ulang saat pengguna menekan tombol untuk mengambil gambar. Jika {@link VideoCapture} terikat atau mode flash tidak disetel ke NONAKTIF atau Ekstensi OEM disetel ke AKTIF, mode ini akan dinonaktifkan secara otomatis. (I9ae74)
  • Menambahkan metode ImageAnalysis.getBackgroundExecutor() (Icc945)

Perbaikan Bug

  • Memperbaiki metode takePicture ImageCapture yang menonaktifkan flash di perangkat yang dilaporkan. (Ib5eb5, b/228272227)
  • Memperbaiki bug yang menyebabkan AssertionError tidak ditangani saat mendapatkan karakteristik CONTROL_ZOOM_RATIO_RANGE.(/Ia248a, b/231701345)

Versi 1.2.0-alpha01

18 Mei 2022

androidx.camera:camera-*:1.2.0-alpha01 dirilis. Versi 1.2.0-alpha01 berisi commit ini.

Fitur Baru

  • Library camera-mlkit-vision baru diluncurkan

Perbaikan Bug

  • Memperbaiki QualitySelector yang gagal merekam video UHD saat strategi penggantian diaktifkan. Masalah ini terjadi jika VideoCapture terikat dengan ImageCapture dan Pratinjau pada perangkat kamera level hardware LENGKAP atau yang lebih tinggi. Strategi penggantian QualitySelector menyebabkan VideoCapture salah mendapatkan resolusi FHD. Resolusi UHD sebenarnya didukung untuk kombinasi kasus penggunaan ini dan harus digunakan. (I0e788, b/230651237)
  • Memperbaiki NullPointerException di ImageCapture.takePicture(). (I92366, b/230454568, b/229766155)
  • Memperbaiki perilaku jeda asinkron androidx.camera.video.Recorder (Ia8ce8)

Camera-Camera2, Camera-Core, Camera-Lifecycle & Camera-Video Versi 1.1.0

Versi 1.1.0

29 Juni 2022

androidx.camera:camera-*:1.1.0 dirilis. Versi 1.1.0 berisi commit ini.

Perubahan penting sejak versi 1.0.0

  • Menambahkan library View, Extension, dan Video Capture sebagai versi RC pertamanya. Dari 1.1.0-beta01, semua library CameraX akan menyelaraskan nomor versi yang sama. Hal ini akan membantu developer melacak versi dengan jauh lebih mudah dan mengurangi kompleksitas matriks kompatibilitas versi besar.
  • Memperkenalkan fitur dan API publik baru yang mencakup:
  • Menambahkan library kamera-video resmi untuk mendukung kasus penggunaan pengambilan video.
  • Kemampuan rotasi dan rotasi YUV ke RGB (ImageAnalysis.Builder.setOutputImageRotationEnabled dan setOutputImageFormat)
  • Mendukung mode multi-aplikasi dengan mengizinkan aplikasi CameraX melanjutkan kamera saat kamera dijeda oleh aplikasi lain dan fokus kembali.
  • Memastikan CameraX berfungsi dengan baik di perangkat foldable dengan memperbaiki beberapa masalah pratinjau.
  • Menambahkan CameraState API yang akan diekspos melalui CameraInfo.
  • Menambahkan ProcessCameraProvider.getAvailableCameraInfos() API untuk langsung mengambil informasi tentang kamera yang tersedia
  • Output format JPEG untuk ImageCapture#OnImageCapturedCallback saat Ekstensi diaktifkan.
  • Menambahkan isFocusMeteringSupported API di CameraInfo yang memungkinkan aplikasi memeriksa apakah FocusMeteringAction tertentu didukung di kamera saat ini atau tidak.
  • Mengekspos getResolutionInfo API untuk memberikan informasi resolusi bagi Pratinjau, ImageCapture, dan ImageAnalysis.
  • Menambahkan ImageCapture.Builder#setJpegQuality API baru untuk memungkinkan perubahan kualitas kompresi gambar JPEG output saat mengambil gambar.
  • Menambahkan CameraSelector#filter ke API publik untuk memfilter daftar CameraInfos berdasarkan CameraSelector.
  • Menambahkan Camera2CameraControl.clearCaptureRequestOptions untuk menghapus opsi permintaan pengambilan foto yang ada.
  • Menambahkan API eksperimental untuk menggunakan CameraController dengan library pemrosesan gambar eksternal. Misalnya, MLKit
  • Menambahkan API eksperimental CameraInfo#getCameraSelector() yang menampilkan CameraSelector unik ke kameranya
  • Membuat beberapa API eksperimental menjadi API publik formal
  • Mengganti anotasi @Experimental dengan @RequiresOptIn ke API eksperimental. Untuk memanggil API eksperimental, gunakan androidx.annotation.OptIn, bukan androidx.annotation.experimental.UseExperimental yang sudah tidak digunakan lagi.
  • Membuat API eksperimental berikut menjadi API resmi: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(),
  • @ExperimentalCameraFilter API
  • API exposure compensation eksperimental.
  • Mendorong UseCaseGroup API eksperimental ke camera-core, camera-lifecycle, dan camera-video. Menambahkan ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection, dan ViewPort.Builder#setScaleType untuk menyesuaikan area pandang.
  • Membuat ExperimentalUseCaseGroupLifecycle menjadi API publik formal.
  • Perubahan pada API yang ada
  • Renamed MediaStoreOutputOptions.getCollection menjadi MediaStoreOutputOptions.getCollectionUri.
  • ActiveRecording diganti namanya menjadi "Recording" untuk mengurangi panjang.
  • Mengubah QualitySelector API kreator menjadi API berbasis daftar

Perbaikan Bug

  • Memperbaiki masalah YuvToJpegProcessor EOFException saat mode ekstensi diaktifkan dan mode ImageCapture#CAPTURE_MODE_MAX_QUALITY disetel.
  • Memperbaiki konfigurasi codec yang gagal karena perekaman video ditutup
  • Memperbaiki rasio aspek pratinjau/video yang direntangkan saat merekam pada FHD
  • Memperbaiki audio/video yang tidak sinkron setelah dijeda dan dilanjutkan di beberapa perangkat
  • Memperbaiki masalah saat flash dipicu selama ketuk untuk fokus (startFocusAndMetering) ketika mode flash adalah otomatis atau always_on di lingkungan minim cahaya.

Versi 1.1.0-rc02

1 Juni 2022

androidx.camera:camera-*:1.1.0-rc02 dirilis. Versi 1.1.0-rc02 berisi commit ini.

Perbaikan Bug

  • Memperbaiki NullPointerException di ImageCapture.takePicture(). (I92366, b/230454568, b/229766155)
  • Memperbaiki bug yang menyebabkan AssertionError tidak ditangani saat mendapatkan karakteristik CONTROL_ZOOM_RATIO_RANGE. (Ia248a, b/231701345)

Versi 1.1.0-rc01

11 Mei 2022

androidx.camera:camera-*:1.1.0-rc01 dirilis. Versi 1.1.0-rc01 berisi commit ini.

Fitur Baru

  • Rilis versi RC pertama untuk camera-video, camera-view, dan camera-extension

Perbaikan Bug

  • Memperbaiki masalah saat codec video tidak dirilis ketika VideoCapture<Recorder> tidak terikat, sehingga menyebabkan penggunaan VideoCapture<Recorder> berikutnya gagal merekam dengan MediaCodec.CodecException, terutama pada perangkat API 21-22. (Ie7f68)
  • Memperbaiki gambar yang diambil dari CameraExtensionsActivity agar tidak dihapus di ImageCaptureTest

Versi 1.1.0-beta03

6 April 2022

androidx.camera:camera-*:1.1.0-beta03 dirilis. Versi 1.1.0-beta03 berisi commit ini.

Perubahan API

  • Membatasi konstruktor CaptureRequestOptions. (I261b6)
  • Menambahkan API eksperimental untuk menggunakan CameraController dengan library pemrosesan gambar eksternal. Misalnya, MLKit (I4ea71)

Perbaikan Bug

  • Memperbaiki masalah pratinjau yang menjadi miring di PreviewView saat aktivitas tidak dimulai ulang setelah memutar perangkat di multi-aplikasi. (I1ea36, b/223488673)
  • Memperbaiki masalah multi-aplikasi yang ketika fokus berubah kembali ke aplikasi, aplikasi gagal melanjutkan kamera saat (1) aplikasi prioritas tinggi lainnya membuka kamera lain (2) perangkatnya adalah perangkat Samsung Android 12. (I7e9f2)
  • Solusi disertakan untuk perangkat yang error saat memeriksa ketersediaan flash. Perangkat ini tidak akan memiliki flash yang tersedia. (If26a3, b/216667482)
  • Memperbaiki masalah AbstractMethodError yang terjadi saat aplikasi menggunakan ekstensi dan mengaktifkan proguard. (I7cbaf, b/222726805)
  • Memaksa menonaktifkan mode ekstensi bokeh di perangkat Motorola razr 5G yang akan menyebabkan masalah layar pratinjau berwarna hitam. (I35d49)
  • Memperbaiki audio/video yang tidak sinkron setelah dijeda dan dilanjutkan di beberapa perangkat Samsung sebelum API 29. (I64622, b/202798609, b/202798572)
  • Memperbaiki audio/video yang tidak sinkron setelah dijeda dan dilanjutkan di Sony G3125. (I2a1a5, b/202799148)
  • Memperbaiki error saat Perekam Suara menemukan InvalidConfigException. Namun, perbaikan ini hanya mencegah aplikasi mengalami error tanpa menyelesaikan penyebab InvalidConfigException. Jika Recorder tetap tidak dapat dikonfigurasi, aplikasi akan menerima callback error saat memulai perekaman. (I89c29, b/213617227)

Kontribusi Eksternal

  • diupdate :compose:ui:ui-test api (updateApi) karena migrasi test-coroutines-lib (I3366d)

Versi 1.1.0-beta02

23 Februari 2022

androidx.camera:camera-*:1.1.0-beta02 dirilis. Versi 1.1.0-beta02 berisi commit ini.

Perubahan API

  • Menambahkan kemampuan untuk menentukan ID kamera fisik melalui Camera2Interop. (I5aed8)

Perbaikan Bug

  • Memperbaiki masalah pratinjau yang dibentangkan di Oppo Find N (I7d004)
  • Memperbaiki masalah pada Galaxy J7 Prime dengan pratinjau yang terdistorsi. (I4c500)
  • Menggunakan kecepatan bit yang kompatibel untuk menemukan encoder video. (d969052)

Versi 1.1.0-beta01

26 Januari 2022

androidx.camera:camera-*:1.1.0-beta01 dirilis. Versi 1.1.0-beta01 berisi commit ini.

Fitur Baru

  • Dari 1.1.0-beta01, semua library CameraX akan menyelaraskan nomor versi yang sama. Hal ini akan membantu developer melacak versi dengan jauh lebih mudah dan mengurangi kompleksitas matriks kompatibilitas versi besar.

Perubahan API

  • Menambahkan Camera2CameraControl.clearCaptureRequestOptions untuk menghapus opsi permintaan pengambilan foto yang ada. (Ifa07d)

Perbaikan Bug

  • Memperbaiki error saat merekam video di beberapa perangkat sebelum Android O (API 26). (I88fdf, b/212328261)
  • Memperbaiki masalah area AF yang salah saat menggunakan cameraControl#startFocusAndMetering() pada kamera depan di perangkat Samsung (Ifbf59, b/210548792)
  • Menggunakan senter sebagai flash pada Pixel 3a/Pixel 3a XL untuk meningkatkan kecepatan pengambilan foto dan kualitas foto dalam gelap (Ib12b6, b/211474332)
  • Memungkinkan aplikasi melanjutkan kamera saat kamera diganggu oleh aplikasi berprioritas lebih tinggi lainnya dalam mode multi-aplikasi dan fokusnya kembali ke aplikasi. Perlu diketahui bahwa mungkin ada latensi (1 detik hingga 10 detik atau lebih) antara perubahan fokus dan kamera dibuka kembali karena beberapa masalah framework. (I4d092)

Versi 1.1.0-alpha12

15 Desember 2021

androidx.camera:camera-*:1.1.0-alpha12 dirilis. Versi 1.1.0-alpha12 berisi commit berikut ini.

Perubahan API

  • Menghapus anotasi @RequiresApi(21) yang tidak perlu dari class/antarmuka internal. (I8e286, b/204917951)
  • Konstanta kualitas dan konstanta strategi fallback QualitySelector telah diubah agar dapat diwakili oleh objek class. Misalnya, QualitySelector.QUALITY_HD diubah menjadi Quality.HD, dan QualitySelector.FALLBACK_STRATEGY_LOWER diubah menjadi instance yang ditampilkan oleh FallbackStrategy.lowerQualityOrHigherThan(Quality). API yang digunakan untuk membuat QualitySelector telah diubah menjadi API berbasis daftar. API QualitySelector.fromOrderedList(List<Quality>) baru akan merujuk ke urutan daftar kualitas input, bukan urutan yang dibuat oleh QualitySelector.Procedure. Class QualitySelector.Procedure telah dihapus. (I43343)
  • PendingRecording.withEventListener() telah dihapus dan pemroses peristiwa sekarang harus diteruskan ke PendingRecording.start(). Persyaratan pemroses peristiwa ini dimaksudkan untuk mendorong penanganan error asinkron yang dilaporkan dalam peristiwa VideoRecordEvent.Finalize. (I1e71d)
  • ActiveRecording diganti namanya menjadi Recording untuk mengurangi panjang. (I77ceb)

Perbaikan Bug

  • Memperbaiki masalah saat foto yang diambil dalam mode FLASH_AUTO kurang terang dalam kondisi gelap di Pixel 3a dan Pixel 3a XL (I13f19, b/205373142)
  • Selalu gunakan ukuran layar terbaru untuk menentukan pratinjau Resolution. (I4a694)
  • Memfilter kamera yang tidak memiliki REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE. Kamera dengan REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE memiliki rangkaian kemampuan minimal yang didukung setiap perangkat kamera. Kamera tanpa REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE mungkin menjadi kamera untuk mendukung fungsi khusus dan tidak mendukung output warna standar. CameraX tidak dapat mendukung kasus penggunaan Preview, ImageCapture, ImageAnalysis, atau VideoCapture untuk kamera tersebut. Oleh karena itu, kamera tersebut harus difilter untuk mencegah penggunaan yang salah. (Ib8cda)
  • CameraSelector#filter tidak lagi melemparkan IllegalArgumentException saat set hasil kosong. (I27804)
  • Heuristik yang lebih cerdas kini digunakan untuk memilih setelan encoder berdasarkan profil yang ditentukan oleh OEM. (Iaeef0)
  • Pratinjau Tetap akan memiliki garis warna yang bertautan setelah memulai perekaman video UHD di Pixel1. (I833c6, b/205340278)

Versi 1.1.0-alpha11

17 November 2021

androidx.camera:camera-*:1.1.0-alpha11 dirilis. Versi 1.1.0-alpha11 berisi commit ini.

Perubahan API

  • Menambahkan CameraSelector#filter ke API publik untuk memfilter daftar CameraInfo berdasarkan CameraSelector. (I105d0)
  • Menambahkan setOutputImageRotationEnabled API untuk konfigurasi ImageAnalysis. Pengguna dapat mengaktifkan rotasi untuk buffering gambar YUV/RGB. Derajat rotasi adalah rotasi relatif yang dihitung berdasarkan rotasi sensor dan rotasi target untuk memastikan gambar tetap mengarah ke depan.

  • Menambahkan setOutputImageRotationEnabled API untuk konfigurasi ImageAnalysis. Pengguna dapat mengaktifkan rotasi untuk buffering gambar YUV/RGB. Derajat rotasi adalah rotasi relatif yang dihitung berdasarkan rotasi sensor dan rotasi target untuk memastikan gambar tetap mengarah ke depan.

    Menambahkan getSensorToBufferTransformMatrix API di ImageInfo. Matriks yang ditampilkan adalah pemetaan dari koordinat sensor ke koordinat buffering, yaitu dari nilai CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE ke (0, 0, image.getWidth, image.getHeight). Matriks dapat digunakan untuk memetakan koordinat dari satu {UseCase} ke yang lain. Misalnya, memetakan koordinat wajah yang terdeteksi dengan ImageAnalysis ke Preview. (I9ff1e)

  • Menambahkan API ImageCapture.Builder#setJpegQuality baru untuk memungkinkan perubahan kualitas kompresi gambar JPEG output saat mengambil gambar. (I8dcf4)

  • Mengganti nama MediaStoreOutputOptions.getCollection menjadi MediaStoreOutputOptions.getCollectionUri. (I16639)

Perbaikan Bug

  • Memperbaiki masalah saat flash dipicu selama ketuk untuk memfokuskan (startFocusAndMetering) ketika mode flash otomatis atau always_on di lingkungan minim cahaya. (Id4c11)
  • Menonaktifkan HDR+ di Pixel 2 XL/Pixel 3 XL dalam mode MINIMIZE_LATENCY untuk mengurangi latensi. (Ib6270, b/203505523)

Kontribusi Eksternal

Versi 1.1.0-alpha10

13 Oktober 2021

androidx.camera:camera-*:1.1.0-alpha10 dirilis. Versi 1.1.0-alpha10 berisi commit berikut.

Fitur Baru

  • Merilis androidx.camera:camera-video:1.1.0-alpha10 sebagai Video versi alfa pertama secara resmi. Ada beberapa masalah umum yang harus diperbaiki dalam rilis selanjutnya.

Perubahan API

  • Menambahkan anotasi @RequiresApi(21) ke semua class CameraX dan menghapus minSdkVersion dari AndroidManifest.xml. Dengan begitu, camera-core dapat diintegrasikan dengan mudah ke dalam aplikasi yang memiliki minSdkVersion kurang dari 21, tetapi ingin menggunakan jalur kode secara bersyarat yang mengandalkan API 21 dan yang lebih tinggi. Untuk aplikasi apa pun yang memiliki minSdkVersion 21 atau yang lebih tinggi, perubahan ini tidak memerlukan tindakan. (Ie7f2e, b/200599470)

Perbaikan Bug

  • Menampilkan InitializationException untuk membuat aplikasi dapat dengan baik menangani AssertionError yang terjadi saat membuat CameraCharacteristics. (Ibec79)

Versi 1.1.0-alpha09

29 September 2021

androidx.camera:camera-camera2:1.1.0-alpha09, androidx.camera:camera-core:1.1.0-alpha09, dan androidx.camera:camera-lifecycle:1.1.0-alpha09 dirilis. Versi 1.1.0-alpha09 berisi commit ini.

Perubahan API

  • Anotasi ExperimentalUseCaseGroup dihapus karena sekarang API tidak lagi bersifat eksperimental. (I01ef5)

Perbaikan Bug

  • Memperbaiki masalah saat foto yang diambil menjadi blur dalam mode MAXIMIZE_QUALITY. (I173a9, b/193823892)
  • Memperbaiki masalah kamera Samsung Galaxy J5 yang terhenti setelah mengambil gambar dengan flash aktif/otomatis dalam lingkungan gelap (I3aab9)
  • Saat memangkas diperlukan untuk ImageCapture, gambar output yang dipangkas akan dikompresi dengan tingkat kualitas JPEG yang ditentukan sesuai dengan mode pengambilan yang disetel. Jika mode pengambilannya CAPTURE_MODE_MINIMIZE_LATENCY, kualitas kompresi JPEG akan menjadi 95. Jika mode pengambilannya CAPTURE_MODE_MAXIMIZE_QUALITY, kualitas kompresi JPEG akan menjadi 100. (Ieb37c, b/142856426)

Versi 1.1.0-alpha08

18 Agustus 2021

androidx.camera:camera-camera2:1.1.0-alpha08, androidx.camera:camera-core:1.1.0-alpha08, dan androidx.camera:camera-lifecycle:1.1.0-alpha08 dirilis. Versi 1.1.0-alpha08 berisi commit ini.

Fitur Baru

  • Menambahkan API setOutputImageFormat untuk konfigurasi analisis gambar. Pengguna dapat memilih ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 atau ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. Secara default, ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 akan dipilih. (I7902d)

Perubahan API

  • Anotasi ExperimentalUseCaseGroupLifecycle dihapus karena sekarang API tidak lagi bersifat eksperimental. (I17b85)

Perbaikan Bug

  • Layar Pratinjau Tetap terlalu terang di Huawei P20 Lite. Masalah ini hanya terjadi ketika resolusi Pratinjau khusus tertentu digunakan bersamaan dengan nilai perbesaran yang besar. (Idefce, b/192129158)
  • Memperbaiki masalah flash yang tidak berfungsi di beberapa perangkat saat menyetel mode flash ke FLASH_MODE_ON yang segera diikuti dengan pengambilan foto. (Ieb49b)
  • Memperbaiki masalah Pratinjau yang berhenti sementara saat mengambil gambar jika VideoCapture, ImageCapture, dan Pratinjau terikat. (I56197, b/193864120)
  • Mengizinkan ImageAnalysis untuk memilih resolusi yang lebih besar dari 1080p. Perangkat di atas level LIMITED dapat mendukung resolusi ukuran RECORD untuk ImageAnalysis saat diikat bersama Pratinjau dan ImageCapture. Konsekuensinya adalah resolusi yang dipilih untuk ImageCapture juga harus merupakan resolusi ukuran RECORD. Agar berhasil memilih resolusi ukuran RECORD untuk ImageAnalysis, resolusi target ukuran RECORD harus ditetapkan pada ImageCapture dan ImageAnalysis. Hal ini menunjukkan bahwa aplikasi memahami dengan jelas konsekuensinya dan lebih memilih ImageAnalysis untuk memiliki resolusi yang lebih besar daripada resolusi ImageCapture agar memiliki resolusi MAXIMUM. Untuk definisi RECORD, ukuran MAXIMUM, dan detail lainnya, lihat https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. Ukuran RECORD mengacu pada resolusi perekaman maksimum yang didukung perangkat kamera, sebagaimana ditentukan oleh CamcorderProfile. Ukuran MAXIMUM mengacu pada resolusi output maksimum perangkat kamera untuk format atau target tersebut dari StreamConfigurationMap.getOutputSizes(int). (I1ee97, b/192911449)
  • Menambahkan info Exif ke gambar yang diambil. (I01ff0, b/193342619)
  • Menampilkan URI gambar yang disimpan di ImageCapture jika lokasi penyimpanannya adalah File. (Ib5b49, b/149241379)
  • Memperbaiki masalah pengambilan gambar dengan flash yang gelap di banyak perangkat. (I4e510)

Versi 1.1.0-alpha07

21 Juli 2021

androidx.camera:camera-camera2:1.1.0-alpha07, androidx.camera:camera-core:1.1.0-alpha07, dan androidx.camera:camera-lifecycle:1.1.0-alpha07 dirilis. Versi 1.1.0-alpha07 berisi commit berikut ini.

Perbaikan Bug

  • Memperbaiki masalah kamera Samsung Galaxy Note 5 yang terhenti setelah mengambil gambar dengan flash aktif/otomatis dalam lingkungan gelap (If6871)
  • Memperbaiki masalah EOFException YuvToJpegProcessor saat mode ekstensi diaktifkan dan mode ImageCapture#CAPTURE_MODE_MAX_QUALITY disetel. (I538bd, b/192017012)

Versi 1.1.0-alpha06

30 Juni 2021

androidx.camera:camera-camera2:1.1.0-alpha06, androidx.camera:camera-core:1.1.0-alpha06, dan androidx.camera:camera-lifecycle:1.1.0-alpha06 dirilis. Versi 1.1.0-alpha06 berisi commit berikut ini.

Perubahan API

  • Mempromosikan exposure compensation API eksperimental untuk camera-core (I08ee8)
  • Menambahkan API isFocusMeteringSupported di CameraInfo yang memungkinkan aplikasi memeriksa apakah FocusMeteringAction tertentu didukung di kamera ini atau tidak. (Ib45ae, b/188606490)
  • Mengekspos getResolutionInfo API guna memberikan informasi resolusi untuk Pratinjau, ImageCapture, dan ImageAnalysis. (I2b613, b/188600718)
  • Mempromosikan API eksperimental berikut ke API resmi: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). (I2ade2)
  • Mengekspos antarmuka CameraProvider untuk memberikan akses ke sekumpulan kamera. (I1a7b1)
  • Mempromosikan UseCaseGroup API eksperimental untuk camera-core, camera-lifecycle, dan camera-video. Menambahkan ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection, dan ViewPort.Builder#setScaleType untuk menyesuaikan area pandang. (I7cee8)

Versi 1.1.0-alpha05

2 Juni 2021

androidx.camera:camera-camera2:1.1.0-alpha05, androidx.camera:camera-core:1.1.0-alpha05, dan androidx.camera:camera-lifecycle:1.1.0-alpha05 dirilis. Versi 1.1.0-alpha05 berisi commit ini.

Perubahan API

  • Menghapus class Camera2CameraFilter. Menyarankan untuk memilih kamera dengan CameraFilter dan mengambil informasi terkait CameraCharacteristics atau Camera2 lainnya melalui Camera2CameraInfo jika perlu. (Ib887c)
  • ExperimentalCameraFilter API kini sudah tidak berada dalam tahap eksperimental dan menjadi API formal. API ini dapat digunakan tanpa OptIn yang dianotasi. (I4bc94)
  • Menambahkan API status kamera yang ditampilkan melalui CameraInfo#getCameraState(). (Ia86b4)
  • Menambahkan API eksperimental CameraInfo#getCameraSelector() yang menampilkan CameraSelector unik kepada kameranya (I77f9f)

Perbaikan Bug

  • Memperbaiki masalah yang ditampilkan oleh ListenableFuture di setZoomRasio dan setLinearZoom yang tidak dapat diselesaikan di perangkat Android 11 tertentu (I716d7)
  • Mempercepat peralihan Kamera dan mengurangi frekuensi error perangkat kamera (I34c99)
  • Mengganti ExperimentalUseCaseGroupLifecycle dengan ExperimentalUseCaseGroup. (I3b2ef, b/159033688)

Versi 1.1.0-alpha04

21 April 2021

androidx.camera:camera-camera2:1.1.0-alpha04, androidx.camera:camera-core:1.1.0-alpha04, dan androidx.camera:camera-lifecycle:1.1.0-alpha04 dirilis. Versi 1.1.0-alpha04 berisi commit berikut ini.

Perbaikan Bug

  • Memperbaiki kebocoran memori yang disebabkan oleh beberapa thread yang secara serentak mengakses koleksi yang sama. Kebocoran memori dapat menyebabkan Aktivitas atau Fragmen dipertahankan oleh instance Pratinjau. (I7b4b8)
  • Mengganti anotasi @Experimental dengan @RequiresOptIn ke API eksperimental. Untuk memanggil API eksperimental, gunakan androidx.annotation.OptIn, bukan androidx.annotation.experimental.UseExperimental yang sudah tidak digunakan lagi. (Iff226)
  • Memperbaiki ImageCapture dengan flash Aktif/Otomatis yang mengambil foto pudar di Samsung Galaxy S7. (I30001)
  • Menambahkan CameraState API yang akan diekspos melalui CameraInfo. (I75392)

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 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)

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 ini.

Perubahan API

  • Menambahkan API ProcessCameraProvider.getAvailableCameraInfos() untuk langsung mengambil informasi tentang kamera yang tersedia, yang merupakan semua kamera perangkat, atau yang dipilih oleh CameraSelector yang tersedia di CameraXConfig.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)

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 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.2

Versi 1.0.2

29 September 2021

androidx.camera:camera-camera2:1.0.2, androidx.camera:camera-core:1.0.2, dan androidx.camera:camera-lifecycle:1.0.2 dirilis. Versi 1.0.2 berisi commit ini.

Perbaikan Bug

  • Memperbaiki masalah saat foto yang diambil menjadi blur dalam mode MAXIMIZE_QUALITY. (I173a9, b/193823892)
  • Memperbaiki masalah pengambilan gambar dengan flash menjadi gelap di banyak perangkat. (I4e510)

Camera-Camera2, Camera-Core, & Camera-Lifecycle Versi 1.0.1

Versi 1.0.1

21 Juli 2021

androidx.camera:camera-camera2:1.0.1, androidx.camera:camera-core:1.0.1, dan androidx.camera:camera-lifecycle:1.0.1 dirilis. Versi 1.0.1 berisi commit ini.

Perbaikan Bug

  • Memperbaiki masalah yang ditampilkan ListenableFuture di setZoomRatio dan setLinearZoom tidak dapat diselesaikan di beberapa perangkat Android 11 (I716d7)

  • Memperbaiki masalah kamera terhenti saat menutup status kamera di beberapa perangkat dan menyebabkan pratinjau berwarna hitam. (I34c99)

Camera-Camera2, Camera-Core, & Camera-Lifecycle Versi 1.0.0

Versi 1.0.0

5 Mei 2021

androidx.camera:camera-camera2:1.0.0, androidx.camera:camera-core:1.0.0, dan androidx.camera:camera-lifecycle:1.0.0 dirilis. Versi 1.0.0 berisi commit ini.

Fitur utama 1.0.0

  • CameraX mendukung Pratinjau, ImageCapture, dan Analisis
  • CameraX mengelola siklus proses kamera dalam API yang mudah digunakan
  • CameraX bertujuan menyediakan lapisan kompatibilitas yang memperbaiki banyak masalah dalam Ekosistem Kamera Android

Masalah Umum

Versi 1.0.0-rc05

21 April 2021

androidx.camera:camera-camera2:1.0.0-rc05, androidx.camera:camera-core:1.0.0-rc05, dan androidx.camera:camera-lifecycle:1.0.0-rc05 dirilis. Versi 1.0.0-rc05 berisi commit ini.

Perbaikan Bug

  • Memperbaiki ImageCapture dengan flash Aktif/Otomatis yang mengambil foto pudar di Samsung Galaxy S7. (I30001)

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 ini.

Perbaikan Bug

  • Memperbaiki kegagalan inisialisasi di perangkat UMIDIGI BISON (I57d9e, b/180818665)

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 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)

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 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)

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 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 adalah Log#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.0.0-beta12 berisi commit 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.0.0-beta11 berisi commit 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)
  • 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 menampilkan Surface.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.0.0-beta11 berisi commit 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 menampilkan Surface.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 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 ini.

Perbaikan Bug

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 ini.

Perubahan API

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

Perbaikan Bug

  • Memperbaiki masalah rasio lebar tinggi target di perangkat tablet. Ukuran 16:9 harus dipilih jika rasio aspek 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 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 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 lebar tinggi 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 ini.

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 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 ini.

Perubahan API

  • Gabungkan gaya FIT_CENTER, FIT_START, dan FIT_END dengan FIT. FIT berarti bahwa kotak pemangkasan 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 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 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 ini.

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 ini.

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 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 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 ini.

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 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 ini.

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 ini.

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 ini.

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 ini.

Perbaikan Bug

  • Mengganti nama SurfaceRequest.setSurface(Surface) menjadi SurfaceRequest.provideSurface(Surface), dan SurfaceRequest.setWillNotComplete() menjadi SurfaceRequest.willNotProvideSurface(). (I224fe)
  • Memperbaiki masalah dengan rasio lebar tinggi 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 ini.

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 lebar tinggi 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 ini.

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 ini.

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 ini.

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 ini.

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 lebar tinggi pemangkasan di perangkat yang tidak mendukung ukuran tersebut. Sekarang, ukuran yang tidak dipangkas 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 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 ini.

Masalah Umum

  • Aplikasi yang menggunakan PreviewView atau CameraView mungkin memiliki pratinjau rasio lebar tinggi 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 ini

  • 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 ini

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 grup Google 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 lebar tinggi setelan:

  • setTargetAspectRatioMode() telah ditambahkan dan menerima argumen enum. Penambahan ini menyetel Mode Rasio Lebar Tinggi dengan opsi RATIO_4_3 atau RATIO_16_9, bukan rasio lebar tinggi arbitrer. Hal ini lebih sesuai dengan fakta bahwa hanya rasio lebar tinggi 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 memangkas tampilan atau memproses subregion.
    • Rasio lebar tinggi ini diorientasikan untuk menggunakan area sensor maksimum.
  • getTargetAspectRatio() telah ditambahkan ke API konfigurasi kasus penggunaan, yang menampilkan rasio aspek yang ditargetkan oleh output kasus penggunaan.
  • Metode setTargetAspectRatio(Rational aspectRatio) telah diubah untuk ImageCapture menjadi setTargetAspectRatioCustom(Rational aspectRatio). Saat ditetapkan, output ImageCapture akan dipangkas sebagaimana sesuai.

Executor API

  • Fungsi berikut menerima parameter eksecutor, yang memungkinkan aplikasi mengontrol di eksecutor mana fungsi dijalankan.
    • 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 Lebar Tinggi: 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 ini.

Fitur Baru

Perubahan pada pemilihan Rasio Lebar Tinggi dan Resolusi

Sasaran CameraX adalah menginisialisasi sesi kamera dengan sukses. Artinya, CameraX menerima resolusi/rasio lebar tinggi 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 lebar tinggi tertentu
  • Preferensi "nearest mod16" untuk encoding JPEG atau 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 lebar tinggi, yang dimaksudkan untuk menjadikan API ini lebih jelas:

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

Camera-Lifecycle Versi 1.0.0-beta11

14 Oktober 2020

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

Perbaikan Bug

  • <UseCase>.getTargetRotation() akan menampilkan Surface.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 ini.

Perbaikan Bug

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 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 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 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 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 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 ini.

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 ini.

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 ini.

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 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 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 ini

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

Versi 1.0.0-alpha32

15 Desember 2021

androidx.camera:camera-extensions:1.0.0-alpha32 dan androidx.camera:camera-view:1.0.0-alpha32 dirilis. Versi 1.0.0-alpha32 berisi commit berikut ini.

Perubahan API

  • Menghapus anotasi @RequiresApi(21) yang tidak perlu dari class/antarmuka internal. (I8e286, b/204917951)
  • Memperbarui file API untuk artefak camera-extensions. (If683a, b/161377155)

Perbaikan Bug

  • Jangan izinkan aplikasi mengaktifkan mode ekstensi saat mengikat VideoCapture. Ekstensi CameraX hanya mendukung ImageCapture dan Preview. VideoCapture belum dapat didukung. Jika aplikasi mengikat VideoCapture dan mengaktifkan mode ekstensi apa pun, IllegalArgumentException akan ditampilkan. (I0d87b)
  • CameraSelector#filter tidak lagi melemparkan IllegalArgumentException saat set hasil kosong. (I27804)
  • Mengganti nama ExtensionsManager#getInstance API menjadi getInstanceAsync karena menampilkan ListenableFuture. Akhiran Async pada nama fungsi dapat dengan jelas menunjukkan bahwa fungsi tersebut adalah fungsi asinkron. (I279d2)
  • Menghapus parameter resolusi dari ExtensionsManager#getEstimatedCaptureLatencyRange API karena pengguna tidak dapat mengetahui ukuran yang didukung untuk kasus penggunaan ImageCapture dan tidak dapat membedakan apakah informasi latensi yang ditampilkan ditujukan untuk ukuran output pengambilan maksimum atau parameter resolusi input. (I74bb2)
  • Memindahkan parameter CameraProvider dari fungsi ExtensionsManager ke getInstance() API. Agar pengguna tidak perlu memasukkan parameter CameraProvider setiap kali memanggil fungsi ExtensionsManager. (Ic7e48)

Versi 1.0.0-alpha31

17 November 2021

androidx.camera:camera-extensions:1.0.0-alpha31 dan androidx.camera:camera-view:1.0.0-alpha31 dirilis. Versi 1.0.0-alpha31 berisi commit berikut ini.

Perubahan API

  • Menambahkan CameraSelector#filter ke API publik untuk memfilter daftar CameraInfo berdasarkan CameraSelector. (I105d0)

Perbaikan Bug

  • Memperbaiki error saat beralih mode ekstensi dengan cepat di perangkat tertentu. (Iebbef)

Versi 1.0.0-alpha30

13 Oktober 2021

androidx.camera:camera-extensions:1.0.0-alpha30 dan androidx.camera:camera-view:1.0.0-alpha30 dirilis. Versi 1.0.0-alpha30 berisi commit berikut ini.

Perubahan API

  • Menambahkan anotasi @RequiresApi(21) ke semua class CameraX dan menghapus minSdkVersion dari AndroidManifest.xml. Dengan begitu, camera-core dapat diintegrasikan dengan mudah ke dalam aplikasi yang memiliki minSdkVersion kurang dari 21, tetapi ingin menggunakan jalur kode secara bersyarat yang mengandalkan API 21 dan yang lebih tinggi. Untuk aplikasi apa pun yang memiliki minSdkVersion 21 atau yang lebih tinggi, perubahan ini tidak memerlukan tindakan. (Ie7f2e, b/200599470)

Perbaikan Bug

  • Memperbaiki masalah AbstractMethodError yang terjadi ketika proguard diaktifkan. (Iae468, b/201177844)

Versi 1.0.0-alpha29

29 September 2021

androidx.camera:camera-extensions:1.0.0-alpha29 dan androidx.camera:camera-view:1.0.0-alpha29 dirilis. Versi 1.0.0-alpha29 berisi commit berikut ini.

Perubahan API

  • Anotasi ExperimentalUseCaseGroup dihapus karena sekarang API tidak lagi bersifat eksperimental. (I01ef5)
  • Menghapus RotationProvider#removeAllListeners(). Sebagai gantinya, gunakan RotationProvider#removeListener(...). (Id9d4a)
  • Memperbarui class RotationReceiver: mengubah Pemroses set/clear menjadi add/remove/removeAll, menghapus variasi setListener yang menggunakan thread utama secara default dan menambahkan anotasi metode. (Ib1669)

Perbaikan Bug

  • Mengganti nama ExtensionMode#BEAUTY menjadi FACE_RETOUCH untuk menampilkan dengan benar tindakan yang dilakukan oleh mode ekstensi. (I61f54, b/198515274)
  • Memperbaiki masalah penutupan kamera secara tiba-tiba saat beberapa CameraController dan PreviewView digunakan dalam satu Aktivitas. (Ibfd18, b/197539358)

Versi 1.0.0-alpha28

18 Agustus 2021

androidx.camera:camera-extensions:1.0.0-alpha28 dan androidx.camera:camera-view:1.0.0-alpha28 dirilis. Versi 1.0.0-alpha028 berisi commit ini.

Perubahan API

  • Anotasi ExperimentalUseCaseGroupLifecycle dihapus karena sekarang API tidak lagi bersifat eksperimental. (I17b85)
  • RefactorListener telah difaktorkan ulang dan diganti nama menjadi RotationProvider. Solusi ini terus menyediakan fitur yang sama dengan API yang sedikit berbeda. (Idffc5)
  • Mengganti nama TAP_TO_FOCUS_UNSUCCESSFUL menjadi TAP_TO_FOCUS_NOT_FOCUSED dan TAP_TO_FOCUS_SUCCESSFUL menjadi TAP_TO_FOCUS_FOCUSED. Membuat final OutputSize (I099fa)

Perbaikan Bug

  • Menghapus class <EffectName><UseCase>Extender yang tidak digunakan lagi, ExtensionsErrorListener, dan API ExtensionsManager terkait. (I3b8c3)

Versi 1.0.0-alpha27

21 Juli 2021

androidx.camera:camera-extensions:1.0.0-alpha27 dan androidx.camera:camera-view:1.0.0-alpha27 dirilis. Versi 1.0.0-alpha27 berisi commit berikut ini.

Perubahan API

  • Mempromosikan API area pandang dari eksperimental. Hapus anotasi eksperimental API. (I717ea)
  • Mengganti nama CoordinateTransform#getTransform menjadi CoordinateTransform#transform, dan mengupdate JavaDoc (I864ae)

Perbaikan Bug

  • Memperbaiki masalah rentang mode PreviewView PERFORMANCE saat menggunakannya bersama dengan Compose UI. (Ie1137, b/183864890)

Versi 1.0.0-alpha26

30 Juni 2021

androidx.camera:camera-extensions:1.0.0-alpha26 dan androidx.camera:camera-view:1.0.0-alpha26 dirilis. Versi 1.0.0-alpha26 berisi commit ini.

Perubahan API

  • Menambahkan metode CameraController#getTapToFocusState() baru yang mengekspos hasil ketuk-untuk-fokus terbaru. (Iaccb0)
  • Menambahkan lebih banyak fitur camera-core untuk CameraController: pengambil/penyetel untuk rasio lebar tinggi target, resolusi target, mode pengambilan gambar, CameraControl, dan eksekutor kustom. (Iea8f2)
  • Menambahkan class RotationReceiver yang menerima perubahan rotasi Permukaan. Class ini dapat digunakan untuk menyetel rotasi target saat perangkat dalam mode potret/lanskap yang tetap. (Ib278f)
  • Mengekspos API publik getEstimatedCaptureLatencyRange baru di class ExtensionsManager. (I6a8ec)
  • Menghentikan penggunaan ExtensionsErrorListener. Saat ini, antarmuka ini hanya digunakan untuk memantau adanya Pratinjau atau ImageCapture saat mengaktifkan mode ekstensi. CameraX akan otomatis menambahkan Pratinjau atau ImageCapture tambahan agar fungsi ekstensi berfungsi dengan baik. Setelah itu, tidak ada error yang akan dilaporkan melalui antarmuka ini. (I47d9e)
  • Mengekspos API publik ExtensionsManager getInstance, isExtensionAvailable, dan getExtensionEnabledCameraSelector yang baru, serta menghentikan penggunaan class <EffectName><UseCase>Extender lama dan API terkait. (I329e6)

Versi 1.0.0-alpha25

2 Juni 2021

androidx.camera:camera-extensions:1.0.0-alpha25 dan androidx.camera:camera-view:1.0.0-alpha25 dirilis. Versi 1.0.0-alpha25 berisi commit berikut ini.

Perubahan API

  • ExperimentalCameraFilter API kini sudah tidak berada dalam tahap eksperimental dan menjadi API formal. API ini dapat digunakan tanpa OptIn yang dianotasi. (I4bc94)
  • Menambahkan aplikasi utilitas yang mengubah koordinat antar-kasus penggunaan. Contoh penggunaan: mengubah koordinat yang terdeteksi dalam kasus penggunaan mageAnalysis dan menandai objek yang terdeteksi dalam pratinjau. (I63ab1, b/137515129)
  • CameraView dihapus. CameraView telah diganti dengan CameraController. Lihat panduan migrasi untuk mengetahui cara bermigrasi. (Id5005)

Perbaikan Bug

  • Mengganti ExperimentalUseCaseGroupLifecycle dengan ExperimentalUseCaseGroup. (I3b2ef, b/159033688)

Versi 1.0.0-alpha24

21 April 2021

androidx.camera:camera-extensions:1.0.0-alpha24 dan androidx.camera:camera-view:1.0.0-alpha24 dirilis. Versi 1.0.0-alpha24 berisi commit berikut ini.

Perbaikan Bug

  • Mengganti anotasi @Experimental dengan @RequiresOptIn ke API eksperimental. Untuk memanggil API eksperimental, gunakan androidx.annotation.OptIn, bukan androidx.annotation.experimental.UseExperimental yang sudah tidak digunakan lagi. (Iff226)
  • Memperbaiki masalah PreviewView yang belum selesai di Samsung J5 Premium (Ib10b6)

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.0.0-alpha22 berisi commit berikut ini.

Perubahan API

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 dengan ExperimentalVideo sebagai markerClass. (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 ini.

Perbaikan Bug

  • Meningkatkan latensi inisialisasi CameraX dan bindToLifecycle (I61dc5)
  • <UseCase>.getTargetRotation() akan menampilkan Surface.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 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 ini.

Perbaikan Bug

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 ini.

Perbaikan Bug

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 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 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 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 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)
  • TextureViewMeteringPointFactory dihapus. PreviewView menyediakan API publik (createMeteringPointFactory()) untuk membuat factory 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 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 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 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 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 ini.

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 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 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 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 ini.

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 aspek 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 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 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, 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 ini.

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 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 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 ini.

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 ini.

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 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 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 lebar tinggi 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 ini

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 ini

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.