CameraX

CameraX là một phần bổ sung của Jetpack giúp việc thêm các tính năng của máy ảnh vào ứng dụng của bạn trở nên dễ dàng hơn. Thư viện này cung cấp một số bản sửa lỗi và phương án giải quyết về khả năng tương thích nhằm giúp trải nghiệm của nhà phát triển nhất quán trên nhiều thiết bị.

Bảng này liệt kê tất cả cấu phần phần mềm trong nhóm androidx.camera.

Cấu phần phần mềm Bản phát hành ổn định Bản phát hành dùng thử Bản phát hành beta Bản phát hành alpha
camera-camera2 1.4.0 - - 1.5.0-alpha03
camera-core 1.4.0 - - 1.5.0-alpha03
kết hợp máy ảnh - - - 1.5.0-alpha03
camera-effects 1.4.0 - - 1.5.0-alpha03
camera-extensions 1.4.0 - - 1.5.0-alpha03
camera-feature-combination-query - - - 1.5.0-alpha03
camera-feature-combination-query-play-services - - - 1.5.0-alpha03
camera-lifecycle 1.4.0 - - 1.5.0-alpha03
camera-mlkit-vision 1.4.0 - - 1.5.0-alpha03
camera-view 1.4.0 - - 1.5.0-alpha03
camera-viewfinder - - 1.3.0-beta02 1.4.0-alpha07
camera-video 1.4.0 - - 1.5.0-alpha03
Lần gần nhất cập nhật thư viện này: ngày 30 tháng 10 năm 2024

Kiểm thử trên thiết bị

CameraX được kiểm thử trên nhiều thiết bị trong phòng thí nghiệm của chúng tôi. Để xem danh sách các thiết bị hiện có trong phòng thí nghiệm, hãy xem phần Các thiết bị được dùng để kiểm thử CameraX.

Khai báo phần phụ thuộc

Để thêm một phần phụ thuộc trên CameraX, bạn phải thêm kho lưu trữ Google Maven vào dự án. Hãy đọc bài viết về kho lưu trữ Maven của Google để biết thêm thông tin.

Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle cho ứng dụng hoặc mô-đun của mình:

Groovy

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.5.0-alpha03"
  // 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.5.0-alpha03"
    // 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}")
}

Ý kiến phản hồi

Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.

Báo lỗi mới

Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.

Camera Viewfinder Compose Phiên bản 1.0

Phiên bản 1.0.0-alpha02

Ngày 12 tháng 6 năm 2024

Phát hành androidx.camera:camera-viewfinder-compose:1.0.0-alpha02. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.

Phiên bản 1.0.0-alpha01

Ngày 14 tháng 5 năm 2024

Phát hành androidx.camera:camera-viewfinder-compose:1.0.0-alpha01. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.

Tính năng mới

  • Thư viện mới. Thư viện này giới thiệu một thành phần kết hợp Kính ngắm gốc Compose có thể dùng được với CameraX và Camera2. Kính ngắm có thể kết hợp hỗ trợ nhiều tỷ lệ khung hình và xử lý các sự kiện chạm.

Camera Viewfinder Phiên bản 1.4

Phiên bản 1.4.0-alpha07

Ngày 12 tháng 6 năm 2024

Phát hành androidx.camera:camera-viewfinder:1.4.0-alpha07androidx.camera:camera-viewfinder-core:1.4.0-alpha07. Phiên bản 1.4.0-alpha07 bao gồm các thay đổi sau.

Phiên bản 1.4.0-alpha06

Ngày 14 tháng 5 năm 2024

Phát hành androidx.camera:camera-viewfinder:1.4.0-alpha06androidx.camera:camera-viewfinder-core:1.4.0-alpha06. Phiên bản 1.4.0-alpha06 bao gồm các thay đổi sau.

Thay đổi về API

  • Đổi tên Enum ImplementationMode của Viewfinder để phản ánh rõ hơn các phương thức triển khai cơ bản và thêm hằng số cố định cho TransformationInfo.sourceRotation. (Ic6149)
  • Thêm ZoomGestureDetector.ZoomEvent để đóng gói các trạng thái của cử chỉ thu phóng. (I84cdf)

Camera Phiên bản 1.5

Phiên bản 1.5.0-alpha03

Ngày 30 tháng 10 năm 2024

Phát hành androidx.camera:camera-*:1.5.0-alpha03. Phiên bản 1.5.0-alpha03 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm API định dạng đầu ra cho RAW và RAW + JPEG ImageCapture, tính năng kiểm tra chức năng của thiết bị được hiển thị trong ImageCaptureCapabilities#getSupportedOutputFormats. OUTPUT_FORMAT_RAW dùng để chụp ảnh RAW ở định dạng Adobe DNG và OUTPUT_FORMAT_RAW_JPEG dùng để chụp đồng thời ảnh RAW và JPEG. API ImageCapture#takePicture mới được dùng để chụp ảnh đồng thời, API này cần cung cấp hai OutputFileOptions, OutputFileOptions đầu tiên là cho ảnh RAW và OutputFileOptions thứ hai là cho ảnh JPEG. (Ib0f3d)

Sửa lỗi

  • Khắc phục lỗi thiếu sáng đối với bản xem trước và video trên các thiết bị TCL khi bật VideoCapture. (Id7a64)
  • Khắc phục vấn đề khi gọi startFocusMetering bằng PreviewView.getMeteringPointFactory không nhận được toạ độ cảm biến chính xác khi một hiệu ứng được bật hoặc khi 4 trường hợp sử dụng được liên kết (chia sẻ luồng). (I916c5, b/345993685)
  • Khắc phục sự cố sự kiện VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE không được kích hoạt khi quay video và không đủ dung lượng lưu trữ. (I35779, b/356399842)

Phiên bản 1.5.0-alpha02

Ngày 2 tháng 10 năm 2024

Phát hành androidx.camera:camera-*:1.5.0-alpha02. Phiên bản 1.5.0-alpha02 bao gồm các thay đổi sau.

Tính năng mới

  • Các API mới để truy vấn các tính năng máy ảnh mà thiết bị hỗ trợ. Ví dụ: kiểm tra xem có thể bật HDR và 60FPS cùng lúc hay không. Tính năng này bao gồm 2 cấu phần phần mềm: camera-feature-results-query và camera-feature-results-query-play-services. Đây là phiên bản tương thích của API CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported của camera2 với dữ liệu bổ sung do Dịch vụ Google Play cung cấp.

Sửa lỗi

  • Khắc phục lỗi tốc độ khung hình mục tiêu Preview/VideoCapture trên các thiết bị cấp LEGACY. Tốc độ khung hình mục tiêu được đặt thông qua API setTargetFrameRate hoặc Camera2Interop luôn được ghi đè thành giá trị do AeFpsRangeLegacyQuirk cung cấp. Với bản sửa lỗi này, thư viện CameraX sẽ tuân theo giá trị được đặt thông qua API setTargetFrameRate hoặc Camera2Interop. (Ie2d32)
  • Thêm chức năng đèn flash/đèn pin/3A để chụp ảnh bằng CameraEffect. Giờ đây, ảnh được chụp bằng CameraEffect sẽ có cùng quy trình xử lý trước khi chụp và sau chụp (ví dụ: trình kích hoạt flash, hội tụ 3A, v.v.) như ảnh chụp mà không có CameraEffect. (I5ff30)
  • Loại trừ các kích thước đầu ra có vấn đề cho ImageAnalysis trên thiết bị Samsung SM-A057G. Khi ImageAnalysis sử dụng độ phân giải lớn hơn hoặc bằng 1920x1440, thì sẽ gây ra vấn đề bản xem trước màu đen. Áp dụng ExcludedSupportedSizesQuirk cho thiết bị SM-A057G để tránh vấn đề. (I63dfe, b/365877975)
  • Khắc phục vấn đề về tốc độ khung hình mục tiêu Preview/VideoCapture khi bật cơ chế chia sẻ luồng nội bộ để chia sẻ luồng với PreviewVideoCapture. (I4fdac)
  • Bật giải pháp để khắc phục vấn đề siêu dữ liệu hình ảnh JPEG không chính xác trên các thiết bị Samsung S10e và S10+. Với bản sửa lỗi này, CameraX có thể lưu thành công hình ảnh JPEG hoặc trả về các đối tượng Bitmap chính xác khi gọi hàm ImageProxy.toBitmap() trên các thiết bị này nếu xảy ra lỗi siêu dữ liệu hình ảnh JPEG không chính xác. (Iae493, b/356428987)
  • Tắt các tiện ích cho máy ảnh sau của Samsung A52s có mã nhận dạng là 0, vì các sự cố gốc có thể xảy ra khi chụp ảnh HDR và việc định cấu hình các phiên chụp có thể không thành công đối với chế độ BOKEH hoặc FACE_RETOUCH. (I03ec9, b/364152642)
  • Khắc phục sự cố sự kiện VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE không được kích hoạt khi quay video và không đủ dung lượng lưu trữ. (Ia5b4f, b/356399842)
  • Khắc phục sự cố không ghi được video lần thứ hai trên Oppo A5 (CPH1931). (I181d6)

Phiên bản 1.5.0-alpha01

Ngày 4 tháng 9 năm 2024

Phát hành androidx.camera:camera-*:1.5.0-alpha01. Phiên bản 1.5.0-alpha01 bao gồm các thay đổi sau.

Thay đổi về API

  • Cung cấp API để đặt chế độ cài đặt bố cục cho tính năng quay video đồng thời bằng hai máy ảnh. Các chế độ cài đặt bao gồm giá trị alpha để kết hợp, độ lệch theo toạ độ x, y, tỷ lệ chiều rộng và chiều cao của cửa sổ hiển thị khung hình máy ảnh. Độ dời, chiều rộng và chiều cao được chỉ định theo toạ độ thiết bị đã chuẩn hoá. (Ia2b8a)
  • Đã hiển thị CameraProvider.getCameraInfo dưới dạng một API chính thức. (I901cd)
  • Thêm API PendingRecording.withAudioEnabled(boolean initialMuted) để kiểm soát trạng thái tắt tiếng ban đầu. (I635c3, b/354829267)

Sửa lỗi

  • Khắc phục sự cố khi bindToLifecycle được gọi bằng một LifecycleOwner đã huỷ. (I6e6d8)
  • Khắc phục lỗi màn hình xem trước bị đen trong camera trước khi liên kết với VideoCapture trên Motorola Edge 20 Fusion. (I1fe88)
  • Tối ưu hoá cấu hình để phát hiện cử chỉ thu phóng trong PreviewView nhằm cải thiện độ mượt. (I04ffc)

Camera Phiên bản 1.4

Phiên bản 1.4.0

Ngày 30 tháng 10 năm 2024

Phát hành androidx.camera:camera-*:1.4.0. Phiên bản 1.4.0 bao gồm các thay đổi sau.

Thay đổi quan trọng kể từ phiên bản 1.3.0

CameraX 1.4.0 có nhiều nội dung cập nhật thú vị! Sau đây là bản tóm tắt:

Tính năng tiêu đề: HDR 10-bit:

  • Dễ dàng chụp ảnh và quay video HDR tuyệt đẹp.
  • Hỗ trợ mã hoá HLG và HEVC 10 bit.
  • Tận hưởng bản xem trước HDR 10-bit và các chức năng truy vấn thiết bị.
  • Hoạt động với hình ảnh UltraHDR và video HDR trên nhiều thiết bị.

Các tính năng thú vị khác:

  • Tiện ích Kotlin: Thêm các hàm tạm ngưng takePictureawaitInstance.
  • Hiệu ứng theo thời gian thực: Áp dụng các hiệu ứng như hình mờ và làm nổi bật đối tượng.
  • CameraController API: Các chế độ điều khiển mới cho cấu hình quay video.
  • Chống rung khi xem trước: Truy vấn chức năng của thiết bị và bật tính năng chống rung.
  • Cải tiến VideoCapture: Kiểm soát chất lượng tốt hơn và truy cập vào độ phân giải cao hơn.
  • Tích hợp tiện ích CameraX: Tích hợp liền mạch với VideoCapture và các tính năng ImageCapture mới.
  • API Âm thanh màn trập: Dễ dàng kiểm tra các yêu cầu về âm thanh màn trập theo khu vực.
  • Đèn flash màn hình: Cải thiện ảnh chụp trong điều kiện thiếu sáng cho máy ảnh mặt trước.
  • API siêu dữ liệu của tiện ích máy ảnh: Các API hỗ trợ điều chỉnh cường độ của tiện ích và nhận thông báo về chế độ Tiện ích hiện tại trong ExtensionMode#AUTO. Bạn có thể tìm thấy các bản sửa lỗi khác trong thông báo BetaRC.

Phiên bản 1.4.0-rc04

Ngày 16 tháng 10 năm 2024

Phát hành androidx.camera:camera-*:1.4.0-rc04. Phiên bản 1.4.0-rc04 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề khi gọi startFocusMetering bằng PreviewView.getMeteringPointFactory không nhận được toạ độ cảm biến chính xác khi bật một hiệu ứng hoặc khi 4 trường hợp sử dụng được liên kết (chia sẻ luồng). (I916c5, b/345993685)

Phiên bản 1.4.0-rc03

Ngày 2 tháng 10 năm 2024

Phát hành androidx.camera:camera-*:1.4.0-rc03. Phiên bản 1.4.0-rc03 bao gồm các thay đổi sau.

Sửa lỗi

  • Thêm chức năng đèn flash/đèn pin/3A để chụp ảnh bằng CameraEffect. Giờ đây, các ảnh chụp bằng CameraEffect sẽ có cùng quy trình xử lý trước và sau khi chụp (ví dụ: kích hoạt đèn flash, hội tụ 3A, v.v. khi có) như ảnh chụp không có CameraEffect. (I5ff30)
  • Tối ưu hoá độ mượt khi chụm để thu phóng trong PreviewView (I04ffc)
  • Tách Ultra HDR khỏi khả năng đầu ra 10 bit, vì tính năng hỗ trợ Ultra HDR không còn yêu cầu thiết bị phải có khả năng đầu ra 10 bit. (I96ff2, I0c3b3)

Phiên bản 1.4.0-rc02

Ngày 18 tháng 9 năm 2024

Phát hành androidx.camera:camera-*:1.4.0-rc02. Phiên bản 1.4.0-rc02 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục sự cố khi bindToLifecycle được gọi bằng LifecycleOwner đã bị huỷ. (I6e6d8)
  • Thêm ảnh động chế độ hiển thị trong ScreenFlashView cho ScreenFlash#apply. Thao tác này cũng khắc phục các lỗi do việc thay đổi độ sáng hoàn tất không đồng bộ sau một khoảng thời gian. (I37cdb)
  • Cải thiện độ mượt khi thu phóng bằng cách ghi đè chế độ cài đặt thu phóng trong khung trên các thiết bị được hỗ trợ.

Phiên bản 1.4.0-rc01

Ngày 7 tháng 8 năm 2024

Phát hành androidx.camera:camera-*:1.4.0-rc01. Phiên bản 1.4.0-rc01 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm CameraInfo.getCameraInfo thử nghiệm để cung cấp thông tin cụ thể về máy ảnh mà không cần liên kết các trường hợp sử dụng với máy ảnh. (I550d1)

Thay đổi về API

  • Thêm API PreviewView.getScreenFlashPreviewView.setScreenFlashOverlayColor cho các trường hợp không thêm ScreenFlashView một cách rõ ràng. (I43945)

Sửa lỗi

  • Khắc phục các vấn đề về độ phơi sáng và phủ màu khi ảnh chụp bằng đèn flash bật trong điều kiện ánh sáng yếu và liên kết trường hợp sử dụng VideoCapture. (Ic9814)
  • Hãy khắc phục vấn đề làm gián đoạn yêu cầu takePicture khi đang bật Tiện ích có thể không nhận được kết quả và yêu cầu takePicture tiếp theo có thể không còn hoạt động nữa. (Iae78f)
  • Khắc phục sự cố rò rỉ bộ nhớ xảy ra khi bật Tiện ích. (Iab276)
  • Khắc phục sự cố tiện ích CameraX trên các thiết bị như Pixel 7/8 và dòng Samsung Galaxy S24. Vấn đề này bắt nguồn từ vấn đề chuyển đổi Camera2OutputConfigImpl ở chế độ phát hành, xuất hiện sau khi nâng cấp AGP lên 8.5.1 và bật tính năng rút gọn. (I99598, b/354824993)

Phiên bản 1.4.0-beta02

Ngày 12 tháng 6 năm 2024

Phát hành androidx.camera:camera-*:1.4.0-beta02. Phiên bản 1.4.0-beta02 bao gồm các thay đổi sau.

Thay đổi về API

  • Tương tự như VideoCapture, hãy thêm setMirrorMode cho trường hợp sử dụng Xem trước. Tính năng này sẽ hỗ trợ chế độ phản chiếu BẬT và TẮT cho luồng Xem trước thông qua OutputConfiguration.setMirrorMode từ API 33 trở lên, đối với các API cũ, tính năng này sẽ không hoạt động. (I821f4)

Sửa lỗi

  • Khắc phục lỗi ứng dụng không thể chụp ảnh thành công trên Samsung Tab A8 khi ImageCapture chọn 1920x1080 trong tổ hợp Preview + VideoCapture + ImageCapture UseCase. (I5a463, b/336925549)
  • Khắc phục lỗi chế độ quay video liên tục có thể không tiếp tục quay sau khi chuyển đổi máy ảnh. (Icb0a1)

Phiên bản 1.4.0-beta01

Ngày 14 tháng 5 năm 2024

Phát hành androidx.camera:camera-*:1.4.0-beta01. Phiên bản 1.4.0-beta01 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm ZoomGestureDetector.ZoomEvent để đóng gói các trạng thái của cử chỉ thu phóng. (I84cdf)

Sửa lỗi

  • Khắc phục lỗi vẫn chụp và nhấn để lấy nét không sử dụng các giá trị chế độ FPS/chống rung lặp lại của yêu cầu có thể tạo lại phiên chụp và gây ra các vấn đề về độ trễ hoặc tính năng Xem trước bị treo trên một số thiết bị. (I7dc0b)
  • Khắc phục lỗi không thể chọn Độ phân giải cao khi bật CameraEffect trên một số thiết bị. (ví dụ: 4000x3000 trên Samsung A32 5G). (Ie3ed3, b/337336152)
  • Khắc phục sự cố khi chụp ảnh bằng tính năng Xem trước, ImageCaptureVideoCapture(UHD) được liên kết trên Pixel 4XL API29. (I5b288)
  • Hỗ trợ thiết bị ảo: Ngữ cảnh được truyền vào ProcessCameraProvider sẽ lưu giữ mã thiết bị để đảm bảo chức năng trong môi trường thiết bị ảo. (I5ba48)

Phiên bản 1.4.0-alpha05

Ngày 17 tháng 4 năm 2024

Phát hành androidx.camera:camera-*:1.4.0-alpha05. Phiên bản 1.4.0-alpha05 bao gồm các thay đổi sau.

Tính năng mới

  • Chuyển đổi ProcessCameraProvider thành cách triển khai Kotlin. (I46d4f)
  • Thêm các hàm tạm ngưng ImageCapture.takePicture để cho phép gọi hàm theo cách thông thường của Kotlin. (I920be)

Thay đổi về API

  • Thêm các API định dạng đầu ra vào ImageCapture và thêm phương thức getSupportedOutputFormats vào ImageCaptureCapabilities để truy vấn chức năng của thiết bị. Giá trị định dạng đầu ra mặc định là OUTPUT_FORMAT_JPEG, dùng để chụp ảnh SDR ở định dạng JPEG. Khi thiết bị hỗ trợ Ultra HDR và định dạng đầu ra được đặt thành OUTPUT_FORMAT_JPEG_ULTRA_HDR, CameraX sẽ chụp hình ảnh nén Ultra HDR bằng định dạng hình ảnh JPEG/R. Định dạng này tương thích ngược với định dạng JPEG SDR và hỗ trợ kết xuất nội dung HDR. Điều này có nghĩa là trên các ứng dụng hoặc thiết bị cũ, hình ảnh sẽ xuất hiện liền mạch dưới dạng JPEG thông thường; trên các ứng dụng và thiết bị đã được cập nhật để hỗ trợ đầy đủ định dạng này, hình ảnh sẽ xuất hiện dưới dạng HDR. (I5de50)
  • Thêm PhysicalCameraInfo trong CameraInfo để truy vấn thông tin về máy ảnh thực và thêm phương thức setter/getter mã nhận dạng máy ảnh thực trong CameraSelector (Ic5b90)
  • Thay thế CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED với ImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. Giá trị của hằng số vẫn giữ nguyên. Mục đích của việc này là để hợp nhất tất cả các hằng số vào một nơi. (I890bb)
  • API RetryPolicy mới giúp nhà phát triển tuỳ chỉnh hành vi thử lại để khởi chạy CameraX. (I36dd2)
  • Cho phép tạo đối tượng ImageCaptureLatencyEstimate để hỗ trợ khả năng kiểm thử (Iaba99)
  • Thêm ImageAnalysis#COORDINATE_SYSTEM_SENSOR. Khi được sử dụng, MlKitAnalyzer sẽ trả về toạ độ trong hệ toạ độ cảm biến máy ảnh. (I3ec61)
  • API siêu dữ liệu tiện ích được hiển thị. Giao diện CameraExtensionsInfoCameraExtensionsControl mới cho phép các ứng dụng theo dõi và điều chỉnh chế độ cài đặt độ mạnh của tiện ích. Các ứng dụng có thể lấy thực thể CameraExtensionsInfo hoặc CameraExtensionsControl thông qua các phương thức ExtensionsManager#getCameraExtensionsInfo() hoặc ExtensionsManager#getCameraExtensionsControl() mới thêm. (I28e1a)
  • Thêm ProcessCameraProvider.awaitInstance là phiên bản tạm ngưng của ProcessCameraProvider.getInstance (Ib22b9)
  • Thêm PreviewView#getSensorToViewTransform() API. Ma trận này thể hiện phép biến đổi từ toạ độ cảm biến máy ảnh sang toạ độ của PreviewView. Bạn có thể dùng tính năng này để biến đổi toạ độ từ một UseCase sang một UseCase khác. Ví dụ: chuyển đổi toạ độ của các đối tượng được phát hiện trong ImageAnalysis thành lớp phủ PreviewView. (I947ab)
  • Tạo API camera-viewfinder-core tổng quát hơn để camera-viewfindercamera-viewfinder-compose có thể sử dụng. (I1e295)
  • Thêm hàm getSurface vào ViewfinderSurfaceRequest. (I781a0)
  • Sử dụng camera-viewfinder-core trong camera-viewfinder và ngừng sử dụng ViewfinderSurfaceRequestCameraViewfinder. (I6198c)
  • Thêm ZoomGestureDetector để diễn giải các cử chỉ điều chỉnh theo tỷ lệ được định cấu hình cụ thể cho hoạt động chụm để thu phóng. (Ifafbf)

Sửa lỗi

  • Khắc phục vấn đề lựa chọn độ phân giải của ImageAnalysis liên quan đến chế độ cài đặt độ phân giải mục tiêu mặc định của trình phân tích: độ phân giải mục tiêu được giữ không chính xác là 640x480, ngay cả khi các ứng dụng đã đặt một chế độ cài đặt độ phân giải mặc định khác của trình phân tích. Nếu ứng dụng gặp phải vấn đề này (1.3.0 ~ 1.3.2) và không thể nâng cấp để sử dụng các bản phát hành phiên bản mới hơn có chứa giải pháp, thì bạn có thể giải quyết vấn đề này bằng cách trực tiếp đặt ResolutionSelector với độ phân giải ưu tiên và AspectRatioStrategy phù hợp với ImageAnalysis UseCase. (I81f72, b/330091012)
  • Khắc phục lỗi yêu cầu takePicture đã xếp hàng có thể không chạy được nếu yêu cầu hiện tại không thành công. (Ie0801)
  • Áp dụng tính năng kiểm tra dữ liệu JPEG không hợp lệ cho các thiết bị Vivo X60 và X60 Pro. Việc này có thể khắc phục vấn đề hình ảnh quá lớn trên các thiết bị này. (I82247, b/288828159)
  • Khắc phục lỗi siêu dữ liệu hình ảnh JPEG không chính xác trên các thiết bị Samsung A24. Với bản sửa lỗi này, CameraX có thể lưu thành công hình ảnh JPEG hoặc trả về các đối tượng Bitmap chính xác khi gọi hàm ImageProxy.toBitmap() trên các thiết bị Samsung A24. (I8d6eb, b/309005680)
  • Áp dụng chế độ kiểm tra dữ liệu JPEG không hợp lệ cho tất cả thiết bị Samsung nếu ảnh đã chụp lớn hơn 10 MB. Thao tác này có thể khắc phục vấn đề hình ảnh có kích thước lớn bất thường trên các thiết bị Samsung. (Ic2a65, b/288828159)
  • Xoá tính năng hỗ trợ ImageAnalysis trên Tiện ích CameraX vì nhiều phương thức triển khai Tiện ích của Nhà sản xuất thiết bị gốc (OEM) không hoạt động tốt với ImageAnalysis và có thể gây ra các vấn đề không nhất quán. (I2d926)

Phiên bản 1.4.0-alpha04

Ngày 24 tháng 1 năm 2024

Phát hành androidx.camera:camera-*:1.4.0-alpha04. Phiên bản 1.4.0-alpha04 bao gồm các thay đổi sau.

Tính năng mới

  • Cấu phần phần mềm mới: camera-effects: Thư viện để áp dụng hiệu ứng theo thời gian thực cho đầu ra CameraX, bao gồm Preview, VideoCapture và/hoặc ImageCapture. Cấu phần phần mềm này chứa các phương thức triển khai OpenGL của API CameraEffect, giúp thao tác kết quả đầu ra của máy ảnh một cách hiệu quả.
  • OverlayEffect: để vẽ lớp phủ bằng API Canvas của Android. Điều này cho phép ứng dụng áp dụng hình mờ hoặc làm nổi bật các đối tượng được phát hiện trên đầu ra của máy ảnh.
  • API DynamicRange cho Trường hợp sử dụng bản xem trước: Giờ đây, bạn có thể đặt phạm vi động trong Trường hợp sử dụng bản xem trước một cách độc lập với Trường hợp sử dụng video. Điều này cho phép các dải động HDR như HLG10 chỉ dành cho Bản xem trước. Các API mới cũng có trong CameraInfo để truy vấn phạm vi động mà mỗi máy ảnh hỗ trợ.

Thay đổi về API

  • Đổi tên ScreenFlashUiCompleter thành ScreenFlashListener và di chuyển ScreenFlashUiCompleter#getExpirationTimeMillis sang tham số expirationTimeMillis của ScreenFlash#apply. (I13944)
  • Thêm các API mới để cho phép đặt dải động trong trường hợp sử dụng Bản xem trước và để truy vấn dải động mà mỗi máy ảnh hỗ trợ. Điều này cho phép bạn chỉ sử dụng dải động HDR (chẳng hạn như HLG10) với trường hợp sử dụng Bản xem trước, không còn yêu cầu liên kết VideoCapture cùng một lúc. (If25e3)
  • Đổi tên getMirroring() thành isMirroring() (I47063)
  • Thêm tính năng hỗ trợ ước tính độ trễ chụp ảnh tĩnh theo thời gian thực trong CameraX. Các tiện ích máy ảnh cho phép các ứng dụng sử dụng API cung cấp thông tin ước tính về thời gian chụp. Thời gian ước tính này tính đến các điều kiện môi trường hiện tại, trạng thái máy ảnh và bao gồm thời gian xử lý các yêu cầu chụp nhiều khung hình cùng với mọi thời gian bổ sung để mã hoá vùng đệm đã xử lý nếu cần. (I05c3a)
  • Đổi tên ScreenFlashUiControl thành ScreenFlash, ScreenFlashUiControl#applyScreenFlashUi thành ScreenFlash#apply, ScreenFlashUiControl#clearScreenFlashUi thành ScreenFlash#clear và thêm phương thức getScreenFlashUiApplyTimeoutSeconds thay vì hiển thị trực tiếp SCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS. (Iccdd0)

Sửa lỗi

  • Khắc phục sự cố rò rỉ bộ nhớ dẫn đến các hoạt động hoặc mảnh không được phát hành khi Tiện ích được bật (I14215)
  • Khắc phục vấn đề getZoomRatio trả về không chính xác giá trị giảm khi áp dụng tỷ lệ thu phóng tăng dần. (I4aa0d, b/317543616)
  • Sự kiện ImageCapture#ScreenFlash#clear được gọi ngay lập tức khi ImageCapture bị huỷ liên kết hoặc camera bị đóng, đồng thời khắc phục một số lỗi mà sự kiện này không bao giờ được gọi do quá trình chụp trong các trường hợp này không hoàn tất đúng cách. (If99f9)
  • Khắc phục sự cố xảy ra khi vòng đời bị dừng trước khi yêu cầu takePicture hoàn tất (Idf017, b/306202751)
  • Khắc phục lỗi bản xem trước của máy ảnh chuyển sang màu đen khi bật Tiện ích trên một số thiết bị (I1ffd0)
  • Khắc phục thời lượng ghi video không chính xác trên các thiết bị sử dụng SoC Snapdragon 778G. (If6aa7, b/316057919)

Phiên bản 1.4.0-alpha03

Ngày 13 tháng 12 năm 2023

Phát hành androidx.camera:camera-*:1.4.0-alpha03. Phiên bản 1.4.0-alpha03 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm CameraInfo.mustPlayShutterSound để cung cấp thông tin về việc có phải phát âm thanh chụp theo các quy định hạn chế theo khu vực hay không. (Ifda84)
  • Thêm OnImageCapturedCallback.onCaptureStartedOnImageSavedCallback.onCaptureStarted để thông báo khi máy ảnh bắt đầu phơi sáng một khung hình. Bạn nên phát âm thanh màn trập hoặc ảnh động màn trập tại thời điểm này. (Ic49b3)
  • Thêm tuỳ chọn hỗ trợ tính năng Screen Flash trong CameraX để chụp ảnh bằng camera trước. CameraX sẽ xử lý việc xử lý API phía khung và đồng bộ hoá thời gian với các thay đổi về giao diện người dùng của ứng dụng nếu cần (ví dụ: điều kiện kích hoạt trước khi chụp AE sau khi thay đổi màu/độ sáng màn hình ứng dụng). Ứng dụng sẽ chỉ cần thêm các phương thức triển khai giao diện người dùng trong giao diện ScreenFlashUiControl được cung cấp cho CameraX. (I8ae84)
  • Bổ sung tính năng hỗ trợ triển khai phía giao diện người dùng của tính năng Screen Flash trong CameraX. Các ứng dụng sẽ có thể triển khai ImageCapture.ScreenFlashUiControl cơ bản từ PreviewView hoặc ScreenFlashView mới được thêm vào. Chế độ xem này sẽ thêm chế độ xem lớp phủ đơn sắc và tối đa hoá độ sáng màn hình trong khi chụp ảnh bằng đèn flash của màn hình. (I1810e)

Thay đổi về API

  • Hỗ trợ các tính năng mới của Tiện ích(bản xem sau và tiến trình chụp): Thêm API ImageCapture#getImageCaptureCapabilities() để các ứng dụng truy vấn các chức năng của lệnh gọi lại tiến trình chụp và bản xem sau. Các ứng dụng có thể bật chế độ xem sau bằng ImageCapture.Builder#setPostviewEnabled(). Bạn có thể chọn kích thước sau khi xem bằng ImageCapture.Builder#setPostviewResolutionSelector(). Khi gọi takePicture(), bạn có thể triển khai onPostviewBitmapAvailableonCaptureProcessProgressed trong OnImageSavedCallback hoặc OnImageCapturedCallback để nhận được thông báo về tiến trình xử lý và hậu kỳ nếu được hỗ trợ. (I5cd88)
  • Các API để tính toán phép biến đổi toạ độ từ cảm biến sang vùng đệm hiện tại, với một cờ cho biết liệu Surface có chứa thông tin về hướng máy ảnh hay không. (I59096)
  • Hiển thị API để truy vấn PreviewCapabitlity trong Bản xem trước UseCase. (Ie5b6c)
  • Thêm các API để hỗ trợ nhiều chất lượng hơn cho VideoCapture. Bạn có thể sử dụng Recorder.Builder#setVideoCapabilitiesSource(int) với VIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES để tạo một thực thể Recorder hỗ trợ nhiều chất lượng hơn VIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE. Một trường hợp sử dụng phổ biến là khi ứng dụng cố gắng quay video UHD bất cứ khi nào có thể, nhưng CamcorderProfile của thiết bị không bao gồm chế độ cài đặt UHD, mặc dù bộ mã hoá và giải mã có thể quay video UHD. (Iedbe2, b/263961771)
  • Thêm phương thức getter/setter định dạng đầu ra ImageAnalysis vào CameraController. (I9a96c, b/308240643)

Sửa lỗi

  • Từ Camera 1.3.1: Cải thiện hiệu suất của ProcessCameraProvider#bindToLifecycle(). Thay đổi lớn nhất là tối ưu hoá quy trình xác định các tổ hợp kích thước phù hợp nhất cho UseCases. Kết quả tối ưu sẽ khác nhau tuỳ theo các tổ hợp UseCase cụ thể và số lượng kích thước đầu ra được hỗ trợ đối với thiết bị mục tiêu. (I454f2)
  • Cho phép sử dụng VideoCapture khi Tiện ích được bật. (I91f32)
  • Khắc phục lỗi hình ảnh JPEG chụp có kích thước lớn trên các thiết bị dòng Samsung A71 và M51. Hình ảnh JPEG được chụp chứa dữ liệu khoảng đệm 0 thừa trong phân đoạn dữ liệu nén JFIF. Điều này khiến hình ảnh được chụp có kích thước tệp cực lớn. Dữ liệu khoảng đệm 0 thừa đó sẽ bị xoá để hình ảnh được chụp có kích thước tệp hình ảnh bình thường. (I01AAP, b/288828159)
  • Tắt tính năng hỗ trợ ImageAnalysis trên Pixel để tránh lỗi trên Pixel vô tình trả về các kích thước được hỗ trợ ImageAnalysis không trống. (I7ec31)
  • Khắc phục vấn đề về hiệu suất, trong đó mức tải CPU và mức tiêu thụ điện năng tăng lên khi bật Tiện ích. (Ibdccb)
  • Thêm Snapdragon 480 vào CameraUseInconsistentTimebaseQuirk. Điều này khắc phục sự cố trên Android 12 đối với các thiết bị sử dụng chipset này, trong đó âm thanh trong bản ghi bị chênh lệch so với thời lượng thiết bị ở trạng thái tạm ngưng. (I58010)

Phiên bản 1.4.0-alpha02

Ngày 18 tháng 10 năm 2023

Phát hành androidx.camera:camera-*:1.4.0-alpha02. Phiên bản 1.4.0-alpha02 bao gồm các thay đổi sau.

Thay đổi về API

  • Đổi tên API thành setCameraOpenRetryMaxTimeoutInMillisWhileResuming và đổi tên đối số. (I72370)
  • Thêm API để truy vấn chức năng của thiết bị và bật tính năng ổn định video/bản xem trước. (I87544)
  • Cung cấp API để tuỳ chỉnh thời gian chờ tối đa khi mở lại máy ảnh. (I0c642)
  • Phát hành ProcessCameraProvider.shutdownAsync dưới dạng API kiểm thử công khai để cho phép sử dụng nhà cung cấp camera xử lý trong các bộ kiểm thử. Các bộ kiểm thử có thể cần khởi chạy CameraX theo nhiều cách giữa các lần kiểm thử. (I9eca7)
  • Thêm API để định cấu hình dải tương phản động, tốc độ khung hình và chế độ phản chiếu khi quay video. (Ifb8f7)
  • Ngừng sử dụng OutputSize và thay thế bằng ResolutionSelector. ResolutionSelector là một cách toàn diện hơn để chọn độ phân giải và nhất quán với API camera-core. (I93abd, b/286801438)

Sửa lỗi

  • Khắc phục lỗi bản xem trước bị đen trên Samsung Galaxy S23 Ultra 5G khi bật tiện ích Bokeh hoặc Làm đẹp khuôn mặt bằng ImageAnalysis trên camera sau. (I2e8b1)
  • Khắc phục lỗi Bản xem trước và VideoCapture bị giãn trên Moto E5 Play. (73dce2)

Phiên bản 1.4.0-alpha01

Ngày 20 tháng 9 năm 2023

Phát hành androidx.camera:camera-*:1.4.0-alpha01. Phiên bản 1.4.0-alpha01 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm API mới để truy cập thông tin về biên độ âm thanh trong khi ghi. (Id4925)

Sửa lỗi

  • Cải thiện độ ổn định của tiện ích bằng cách đảm bảo rằng các sự kiện khởi chạy và huỷ khởi chạy được kích hoạt theo đúng thứ tự. (Ib3b8e)
  • Khắc phục lỗi cấu hình phiên chụp vượt quá tổ hợp bề mặt được hỗ trợ do thêm bề mặt lặp lại bổ sung trong nội bộ. (Id718c)
  • Khắc phục lỗi lớn khi chụp ảnh JPEG trên thiết bị Vivo S16. Hình ảnh JPEG chụp có chứa dữ liệu khoảng đệm của 0 thừa trong phân đoạn dữ liệu nén JFIF. Điều này khiến hình ảnh được chụp có kích thước tệp lớn. Dữ liệu khoảng đệm 0 thừa đó sẽ bị xoá để hình ảnh được chụp có kích thước tệp hình ảnh bình thường. (I79505, b/299069235)
  • Khắc phục vấn đề không thể liên kết ImageAnalysis với ImageCapture và Xem trước khi bật một số chế độ tiện ích trên một số thiết bị. Bản sửa lỗi sẽ trả về giá trị chính xác khi ứng dụng truy vấn tình trạng có sẵn của ImageAnalysis qua ExtensionsManager#isImageAnalysisSupported(). (I7d538)
  • Cập nhật JavaDoc cho phù hợp với hành vi. Thay vì hoàn tất ngay lập tức, #setZoomRatio, #setLinearZoom#enableTorch sẽ chờ cho đến khi máy ảnh sẵn sàng. Đồng thời, bổ sung thông tin về cách lấy FOV tối đa bằng API #takePicture. (I23588)

Phiên bản 1.3

Phiên bản 1.3.4

Ngày 12 tháng 6 năm 2024

Phát hành androidx.camera:camera-*:1.3.4. Phiên bản 1.3.4 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề getZoomRatio trả về giá trị giảm không chính xác khi áp dụng tỷ lệ thu phóng tăng dần. (I4aa0d, b/317543616)
  • Khắc phục lỗi chụp ảnh tĩnh/chạm để lấy nét không sử dụng các giá trị chế độ ổn định/FPS yêu cầu lặp lại. Điều này có thể tạo lại phiên chụp và gây ra các vấn đề về độ trễ hoặc khiến tính năng Xem trước bị treo trên một số thiết bị. (I7dc0b)
  • Khắc phục vấn đề tốc độ khung hình được đặt thành giá trị thấp hơn khi gọi setTargetFrameRate bằng FRAME_RATE_RANGE_UNSPECIFIED. (I78c61)

Phiên bản 1.3.3

Ngày 17 tháng 4 năm 2024

Phát hành androidx.camera:camera-*:1.3.3. Phiên bản 1.3.3 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề lựa chọn độ phân giải của ImageAnalysis liên quan đến chế độ cài đặt độ phân giải mục tiêu mặc định của trình phân tích: độ phân giải mục tiêu được giữ không chính xác là 640x480 ngay cả khi các ứng dụng đã đặt chế độ cài đặt độ phân giải mặc định khác cho trình phân tích. Nếu các ứng dụng gặp phải vấn đề này (1.3.0 ~ 1.3.2) và không thể nâng cấp để sử dụng các bản phát hành phiên bản mới hơn có chứa giải pháp, thì bạn có thể trực tiếp đặt ResolutionSelector theo độ phân giải ưu tiên và AspectRatioStrategy phù hợp với ImageAnalysis UseCase có thể giải quyết vấn đề này. (I81f72, b/330091012)

Phiên bản 1.3.2

Ngày 6 tháng 3 năm 2024

Phát hành androidx.camera:camera-*:1.3.2. Phiên bản 1.3.2 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi siêu dữ liệu JPEG trên các thiết bị Samsung A24. CameraX hiện lưu hình ảnh chính xác và hàm ImageProxy.toBitmap() trả về các đối tượng Bitmap chính xác. (I8d6eb, b/309005680)
  • Xoá tuỳ chọn độ phân giải 9280x6944 trên các thiết bị Redmi Note 9 Pro do gặp vấn đề. (Ia23da)

Phiên bản 1.3.1

Ngày 13 tháng 12 năm 2023

Phát hành androidx.camera:camera-*:1.3.1. Phiên bản 1.3.1 bao gồm các thay đổi sau.

Sửa lỗi

Cải thiện hiệu suất ProcessCameraProvider#bindToLifecycle(). Thay đổi lớn nhất là tối ưu hoá quy trình xác định các tổ hợp kích thước phù hợp nhất cho UseCases. Kết quả tối ưu sẽ khác nhau tuỳ theo các tổ hợp UseCase cụ thể và số lượng kích thước đầu ra được hỗ trợ đối với thiết bị mục tiêu. (I454f2)

Dưới đây là một số kết quả tham khảo cho nhiều trường hợp:

  • Bốn UseCases: Preview + ImageCapture + ImageAnalysis + VideoCapture

    • Google Pixel 7: Khoảng 430 mili giây đến 60 mili giây
    • Samsung Galaxy S23 Ultra: Khoảng 540 mili giây đến 45 mili giây
    • Samsung A53 5G: Khoảng 115 mili giây đến 70 mili giây
  • Ba UseCases: Preview + ImageCapture + ImageAnalysis

    • Google Pixel 7: Khoảng 9 mili giây đến 7 mili giây
    • Samsung Galaxy S23 Ultra: Khoảng 6 mili giây đến 5 mili giây
    • Samsung A53 5G: Khoảng 32 mili giây đến 12 mili giây
  • Thêm Snapdragon 480 vào CameraUseInconsistentTimebaseQuirk. Điều này khắc phục sự cố trên Android 12 đối với các thiết bị sử dụng chipset này, trong đó âm thanh trong bản ghi bị chênh lệch so với thời lượng thiết bị ở trạng thái tạm ngưng. (I58010)

Phiên bản 1.3.0

Ngày 18 tháng 10 năm 2023

Phát hành androidx.camera:camera-*:1.3.0. Phiên bản 1.3.0 bao gồm các thay đổi sau.

Những thay đổi quan trọng kể từ phiên bản 1.2.0

Phiên bản 1.3.0-rc02

Ngày 20 tháng 9 năm 2023

Phát hành androidx.camera:camera-*:1.3.0-rc02. Phiên bản 1.3.0-rc02 bao gồm các thay đổi sau.

Sửa lỗi

  • Cải thiện độ ổn định của tiện ích bằng cách đảm bảo rằng các sự kiện khởi chạy và huỷ khởi chạy được kích hoạt theo đúng thứ tự. Điều này đã khắc phục một số vấn đề về bản xem trước bị đen khi chuyển đổi chế độ Tiện ích hoặc chuyển đổi máy ảnh. (Iddaac)
  • Khắc phục lỗi không thể liên kết ImageAnalysis với ImageCapture và Bản xem trước khi bật một số chế độ tiện ích trên một số thiết bị. Bản sửa lỗi sẽ trả về giá trị chính xác khi ứng dụng truy vấn tình trạng có sẵn của ImageAnalysis qua ExtensionsManager#isImageAnalysisSupported(). (I7d538)
  • Khắc phục vấn đề âm thanh và video của video đã quay không đồng bộ khi bật chế độ phản chiếu trên Xiaomi Poco X3 NFC. (I20b4c)

Phiên bản 1.3.0-rc01

Ngày 23 tháng 8 năm 2023

Phát hành androidx.camera:camera-*:1.3.0-rc01. Phiên bản 1.3.0-rc01 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm PendingRecording.asPersistentRecording để cho phép một bản ghi quay liên tục trong khi VideoCapture mà Máy ghi âm đính kèm vào đó được chuyển lại. (I517c6)

Sửa lỗi

  • Khắc phục sự cố khi một luồng được chia sẻ với cả VideoCapture và Bản xem trước. Ngoài ra, đã khắc phục lỗi màn hình đen trên các thiết bị LEGACY khi bật tính năng chia sẻ luồng.
  • Khắc phục lỗi hình ảnh JPEG chụp được có kích thước lớn trên các thiết bị dòng Samsung S7 (SM-G930T, SM-G930V). Hình ảnh JPEG đã chụp chứa dữ liệu khoảng đệm 0 thừa trong phân đoạn dữ liệu nén JFIF. Điều này khiến hình ảnh được chụp có kích thước tệp lớn. Dữ liệu khoảng đệm 0 thừa đó sẽ bị xoá để hình ảnh được chụp có kích thước tệp hình ảnh bình thường. (I407b0, b/288828159)
  • Khắc phục lỗi hình ảnh JPEG chụp có kích thước lớn trên các thiết bị dòng Samsung S22 (SM-S901B, SM-S901B/DS) và S22+ (SM-S906B). Hình ảnh JPEG đã chụp chứa dữ liệu khoảng đệm 0 thừa trong phân đoạn dữ liệu nén JFIF. Điều này khiến hình ảnh được chụp có kích thước tệp lớn khoảng 13 MB trên thiết bị S22 SM-S901B/DS. Dữ liệu khoảng đệm 0 thừa đó sẽ bị xoá để hình ảnh được chụp có kích thước tệp hình ảnh bình thường. (I73be9, b/288828159)
  • Sửa lỗi ảnh JPEG chụp cỡ lớn trên các thiết bị dòng Samsung A5, A52, A70 và A72. Hình ảnh JPEG chụp có chứa dữ liệu khoảng đệm của 0 thừa trong phân đoạn dữ liệu nén JFIF. Phần mềm này khiến ảnh được chụp có kích thước tệp quá lớn (ví dụ: khoảng 32 MB hoặc thậm chí 96 MB). Dữ liệu khoảng đệm 0 thừa đó sẽ bị xoá để làm cho hình ảnh đã chụp có kích thước tệp hình ảnh bình thường. (I97c4d, b/288828159)
  • Khắc phục sự cố gốc khi chụp ảnh khi bật Tiện ích (I698f5)

Phiên bản 1.3.0-beta02

Ngày 26 tháng 7 năm 2023

Phát hành androidx.camera:camera-*:1.3.0-beta02. Phiên bản 1.3.0-beta02 bao gồm các thay đổi sau.

Sửa lỗi

  • Dùng đèn pin làm đèn flash cho các biến thể của điện thoại Pixel 4 và 5 để cải thiện chất lượng ảnh chụp trong điều kiện ánh sáng yếu (I56ff5, b/280221967)
  • Khắc phục lỗi lớn chụp ảnh JPEG trên các thiết bị dòng Samsung A5 (2017). Hình ảnh JPEG được chụp chứa dữ liệu đệm 0 thừa trong phân đoạn dữ liệu nén JFIF. Điều này khiến hình ảnh được chụp có kích thước tệp khoảng 32 MB. Dữ liệu khoảng đệm 0 thừa đó sẽ bị xoá để hình ảnh được chụp có kích thước tệp hình ảnh bình thường. (I29837, b/288828159)
  • Khắc phục lỗi thử lại không kích hoạt đúng cách trong trường hợp chụp không thành công trên các thiết bị có vấn đề được đề cập trong CaptureFailedRetryQuirk. (I7b589)

Phiên bản 1.3.0-beta01

Ngày 21 tháng 6 năm 2023

Phát hành androidx.camera:camera-*:1.3.0-beta01. Phiên bản 1.3.0-beta01 bao gồm các thay đổi sau.

Thay đổi về API

  • Đổi tên hàm ResolutionSelector.Builder#setHighResolutionEnabledFlag(int) thành setAllowedResolutionMode và đổi tên hằng số ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON thành PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE. (If84e8)
  • Xoá API ImageAnalysis.setTargetRotationDegrees(int), ImageCapture.setTargetRotationDegrees(int)VideoCapture.setTargetRotationDegrees(int) không dùng nữa. (Id8e77)
  • Lớp DynamicRange đại diện cho dải động của hình ảnh. Bạn có thể dùng hàm này để chọn định dạng Dải động cao làm đầu ra của VideoCapture thông qua VideoCapture.Builder#setDynamicRange(). (Ib0377)
  • Thêm API isImageAnalysisSupported vào ExtensionsManager để các ứng dụng có thể xác định xem có thể liên kết trường hợp sử dụng ImageAnalysis cùng với Bản xem trước và ImageCapture khi bật Tiện ích hay không. (I1bc63)
  • Bạn có thể dùng lớp VideoCapabilities mới lấy từ Recorder để truy vấn các mức chất lượng và dải động được hỗ trợ cho video quay trên thiết bị. Phương thức getSupportedQualities()isQualitySupported() của QualitySelector sẽ ngừng hoạt động. Thay vào đó, vui lòng sử dụng phương thức getSupportedQualities()isQualitySupported() của VideoCapabilities. (I04014)
  • CameraController#setVideoCaptureTargetQuality() được đổi tên thành setVideoCaptureQualitySelector và lấy đối số QualitySelector, giúp linh hoạt hơn trong việc thiết lập chất lượng video. CameraController#getVideoCaptureTargetQuality() được thay đổi thành getVideoCaptureQualitySelector cho phù hợp. (I520ed)
  • Xoá chú thích thử nghiệm cho các tính năng video. Các tính năng cho video hiện đã ổn định. (I1a113)

Sửa lỗi

  • Sử dụng đèn pin làm đèn flash trên các mẫu Samsung SM-A320 để cải thiện tốc độ và chất lượng hình ảnh chụp trong điều kiện ánh sáng yếu. (I6a022, b/286190938)
  • Thêm tính năng hỗ trợ định dạng ImageFormat.JPEG cho ImageProxy.toBitmap(). Nếu không thể giải mã mảng byte JPEG, hệ thống sẽ gửi một UnsupportedOperationException. (I81958, b/282057603)

Phiên bản 1.3.0-alpha07

Ngày 24 tháng 5 năm 2023

Phát hành androidx.camera:camera-*:1.3.0-alpha07. Phiên bản 1.3.0-alpha07 bao gồm các thay đổi sau.

Tính năng mới

  • API VideoCapture.Builder# setTargetFrameRate(Range) mới cho phép quay video ở các tốc độ khung hình khác ngoài tốc độ mặc định của thiết bị. Bạn có thể truy vấn tốc độ khung hình hiện có cho bản ghi thông qua API CameraInfo#getSupportedFrameRates() mới.

Thay đổi về API

  • Đổi tên hằng số ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON thành ALLOWED_RESOLUTIONS_NORMAL/SLOW và đổi tên hàm setHighResolutionEnabledFlag của trình tạo thành setAllowedResolutionMode. (Iae817)
  • CameraInfo#getSupportedFrameRateRanges() hiện trả về Set thay vì List để thể hiện rõ hơn rằng các dải ô không theo thứ tự. (I02f43)
  • Thêm trình nghe lỗi vào CameraEffect để xử lý các lỗi không thể khôi phục (Ice471)
  • Thêm hàm khởi tạo công khai trong ResolutionInfo để tăng khả năng kiểm thử (If6d1c)
  • Cung cấp API UseCase.snapToSurfaceRotation(int) để thay thế việc sử dụng setTargetRotationDegrees và ngừng sử dụng API ImageAnalysis.setTargetRotationDegrees(int), ImageCapture.setTargetRotationDegrees(int)VideoCapture.setTargetRotationDegrees(int). (Ia9010)
  • Thêm API mới Preview#getTargetFrameRatePreview.Builder#setTargetFrameRate để có thể đặt và truy xuất tốc độ khung hình mục tiêu cho trường hợp sử dụng Bản xem trước (If4f22)
  • VideoRecordEvent.Finalize hiện sẽ hoàn tất với mã lỗi ERROR_RECORDING_GARBAGE_COLLECTED khi đối tượng Recording bị dừng do thu gom rác. (Iba974)

Sửa lỗi

  • Sửa NullPointerException khi kích thước đầu ra được lưu vào bộ nhớ đệm trong StreamConfigurationMapCompat là rỗng. (Idf124, b/282025204)
  • Khắc phục vấn đề Preview.setSurfaceProvider(null) không tạm dừng bản xem trước trong Tiện ích (Ia903e)
  • Khắc phục lỗi ConcurrentModificationException được gửi trong quá trình mở máy ảnh khi VideoCapture được liên kết. (Ic8ac4)

Phiên bản 1.3.0-alpha06

Ngày 19 tháng 4 năm 2023

Phát hành androidx.camera:camera-*:1.3.0-alpha06. Phiên bản 1.3.0-alpha06 bao gồm các thay đổi sau.

Tính năng mới

  • Máy ảnh đồng thời là một tính năng mới được giới thiệu từ Android 11, hỗ trợ truyền trực tuyến đồng thời các thiết bị máy ảnh, ví dụ: cho phép một thiết bị có cả máy ảnh trước và sau hoạt động cùng lúc. CameraX hiện chỉ hỗ trợ máy ảnh đồng thời kép, cho phép hai máy ảnh hoạt động cùng lúc, với tối đa hai {@link UseCase} được liên kết cho mỗi máy ảnh. Độ phân giải tối đa là 720p hoặc 1440p, xem thêm thông tin chi tiết trong đường liên kết sau, hãy xem CameraManager#getConcurrentCameraIds()
  • Giới thiệu API ResolutionSelector mới bao gồm các tính năng sau:
    • Các ứng dụng có thể chỉ định tỷ lệ khung hình và chiến lược độ phân giải để chọn độ phân giải phù hợp nhất với nhu cầu của chúng.
    • Tất cả các thông số kích thước và tỷ lệ khung hình đều được thể hiện trong toạ độ của cảm biến trên thiết bị máy ảnh.
    • Các ứng dụng có thể triển khai bộ lọc độ phân giải tuỳ chỉnh để sắp xếp các kích thước được hỗ trợ theo thứ tự mong muốn.
    • Các ứng dụng cũng có thể bật tính năng chụp ảnh có độ phân giải cao để có được hình ảnh có độ phân giải cao hơn. Tuy nhiên, xin lưu ý rằng việc sử dụng độ phân giải cao có thể làm thời gian chụp chậm hơn.
    • Thêm các API phản chiếu VideoCapture. Theo mặc định, video do VideoCapture quay sẽ không được phản chiếu. Tuy nhiên, bản xem trước của máy ảnh được phản chiếu trên camera trước theo mặc định. API phản chiếu VideoCapture cho phép căn chỉnh với bản xem trước của máy ảnh khi sử dụng camera trước. Có ba MirrorMode, OFF, ONON_FRONT_ONLY. Để phù hợp với bản xem trước của máy ảnh, bạn nên sử dụng ON_FRONT_ONLY, tức là tính năng phản chiếu không được bật cho máy ảnh sau nhưng lại được bật cho máy ảnh trước.

Thay đổi về API

  • Đã hiển thị API ResolutionSelector mới. Các ứng dụng có thể chỉ định tỷ lệ khung hình và chiến lược độ phân giải bằng các quy tắc dự phòng hoặc bộ lọc độ phân giải tuỳ chỉnh để đạt được kết quả mong muốn. Các ứng dụng có thể chỉ định một cờ để bật tính năng chụp ở độ phân giải cao. Điều này sẽ cho phép CameraX chọn độ phân giải cao hơn khi chụp ảnh hoặc quay video. Tuy nhiên, xin lưu ý rằng việc sử dụng độ phân giải cao có thể làm chậm thời gian chụp. (Ibed95)
  • Bạn hiện có thể truy vấn các dải FPS được thuật toán AE hỗ trợ thông qua CameraInfo#getSupportedFrameRateRanges(). (Iaa67f)
  • Hợp nhất tên của tất cả các phương thức tốc độ khung hình thành "FrameRate". Sửa lỗi javadoc trong VideoCapture#getTargetFrameRate() (I83304)
  • Không dùng API setTargetAspectRatiosetTargetResolution cũ nữa. Thay vào đó, vui lòng sử dụng API ResolutionSelector mới. (I542c3)
  • Thêm các API công khai cho máy ảnh kép đồng thời, bao gồm
    1. List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
    2. ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
    3. boolean isConcurrentCameraModeOn()ConcurrentCameraConfig, SingleCameraConfigConcurrentCamera (Iab1c1)
  • Đặt ImageProcessor.Response#getOutputImage là NonNull (Ib9c60)
  • Thêm các API phản chiếu VideoCapture, bao gồm VideoCapture.Builder.setMirrorMode(int)VideoCapture.getMirrorMode(). Các API này hữu ích cho các ứng dụng yêu cầu tính năng quay video phải nhất quán với hành vi xem trước thông thường của máy ảnh, tức là bản xem trước của máy ảnh sau không được phản chiếu nhưng bản xem trước của máy ảnh trước được phản chiếu. (I713b6, b/194634656)
  • Thêm API setTargetFrameRate() trong API VideoCapture.BuildergetTargetFramerate() trong VideoCapture (I109d4)
  • Đặt SurfaceOutput mở rộng Closable và ẩn hàm khởi tạo công khai của SurfaceOutput.Event. (I60ea8)
  • Thêm Recording.mute để tự động tắt hoặc bật tiếng bản ghi đang xử lý. RecordingStats sẽ chứa AudioStats.AUDIO_STATE_MUTED khi bản ghi đang xử lý bị tắt tiếng một cách rõ ràng. (Ie17fc)
  • Đặt tham số #setEffects() không phải là giá trị rỗng. Thêm API #clearEffects() để xoá hiệu ứng. Ứng dụng sẽ gọi #clearEffects() để xoá hiệu ứng. (I4b4d9)
  • Thêm một hàm khởi tạo thứ hai cho ViewfinderSurfaceRequest.Builder để sử dụng trình tạo cho hàm khởi tạo sao chép (I621a7)

Sửa lỗi

  • Khắc phục vấn đề các ứng dụng gọi API Extensions có thể gặp sự cố khi đóng camera (Ib27e5)
  • Khắc phục vấn đề VideoCapture không thể hoạt động với máy ảnh trước trên một số thiết bị. Ví dụ: trên Samsung Galaxy S23 và Xiaomi 2107113SG. (Ibec7e, b/270656244)
  • Khắc phục lỗi chụp ảnh bằng Tệp trong thư mục công khai của bộ nhớ ngoài sẽ luôn không chụp được trong Android 10 trở lên. Xin lưu ý rằng trong Android 10, việc chụp ảnh bằng Tệp trong thư mục công khai của bộ nhớ ngoài cũng yêu cầu đặt requestLegacyExternalStorage thành true trong thẻ ứng dụng. (I11b2c)
  • Khắc phục sự cố RejectedExecutionException trong DefaultSurfaceProcessor. Sự cố có thể xảy ra khi VideoCapture được liên kết và hoạt động bị tạm dừng. (Idb46a, b/273713906)

Phiên bản 1.3.0-alpha05

Ngày 22 tháng 3 năm 2023

Phát hành androidx.camera:camera-*:1.3.0-alpha05. Phiên bản 1.3.0-alpha05 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm các API xoay VideoCapture, bao gồm VideoCapture.Builder.setTargetRotation(int), VideoCapture.setTargetRotation(int), VideoCapture.setTargetRotationDegrees(int)VideoCapture.getTargetRotation(). Các API này hữu ích cho các ứng dụng khoá hướng thiết bị. ImageCapture.setTargetRotationDegrees(int)ImageAnalysis.setTargetRotationDegrees(int) cũng được thêm vào. (Id3ffe, b/205242781)
  • Cho phép VIDEO_CAPTUREPREVIEW|VIDEO_CAPTURE làm mục tiêu hiệu ứng. Các hiệu ứng nhắm đến VIDEO_CAPTURE sẽ được áp dụng cho UseCase VideoCapture; Các hiệu ứng nhắm đến PREVIEW|VIDEO_CAPTURE sẽ được áp dụng cho một luồng dùng chung trước khi sao chép vào luồng Xem trước và VideoCapture. (Iee6f3)

Sửa lỗi

  • Từ Máy ảnh 1.2.2: Khắc phục vấn đề Tiện ích CameraX không hoạt động đúng cách khi bật proguard trên một số thiết bị như Pixel (I90aa2)
  • Khắc phục lỗi PreviewView nếu ứng dụng tự xử lý hướng màn hình, thì bản xem trước có thể bị méo khi xoay. Điều này chỉ xảy ra trên một số thiết bị. Lỗi này có thể tái hiện trên Pixel a4, Pixel 5 và Pixel 6a. (I14340, b/223488673)

Phiên bản 1.3.0-alpha04

Ngày 22 tháng 2 năm 2023

Phát hành androidx.camera:camera-*:1.3.0-alpha04. Phiên bản 1.3.0-alpha04 bao gồm các thay đổi sau.

Tính năng mới

Một tính năng mới để hỗ trợ các tổ hợp Surface không được hỗ trợ trước đó bằng cách chia sẻ một luồng cho nhiều UseCase.

  • Trước đây, khi liên kết "Preview, VideoCapture, ImageAnalysis" ở cấp độ phần cứng máy ảnh FULL trở xuống hoặc liên kết "Preview, VideoCapture, ImageCapture" ở cấp độ phần cứng LEGACY, CameraX sẽ gửi IllegalArgumentException.
  • Hành vi mới là các liên kết sẽ hoạt động mà không cần gửi ngoại lệ. Thay vào đó, CameraX sử dụng OpenGL để sao chép một luồng dùng chung vào cả Preview và VideoCapture.
  • Do có bản sao vùng đệm nên ứng dụng có thể có độ trễ lớn hơn và tiêu thụ nhiều điện năng hơn.

Các thay đổi về API

  • Thêm API để chuyển đổi ImageProxy thành Bitmap. Định dạng ImageProxy được hỗ trợ là ImageFormat.YUV_420_888PixelFormat.RGBA_8888. Nếu định dạng không hợp lệ, IllegalArgumentException sẽ được gửi. (Ic7110)
  • Thêm CoroutineCameraViewfinder để hỗ trợ việc định cấu hình kính ngắm bằng cách sử dụng các hàm tạm ngưng trong Kotlin. (I657bc)
  • Thêm hàm khởi tạo công khai mới cho ViewfinderSurfaceRequest. Điều này mang lại sự linh hoạt khi người dùng không thể cung cấp CameraCharacteristics. (Ie6549)

Sửa lỗi

  • Khắc phục sự cố Tiện ích xảy ra trên một số thiết bị Samsung khi tạm dừng/tiếp tục ứng dụng quá nhanh (Iaca26)

Phiên bản 1.3.0-alpha03

Ngày 25 tháng 1 năm 2023

Phát hành androidx.camera:camera-*:1.3.0-alpha03. Phiên bản 1.3.0-alpha03 bao gồm các thay đổi sau.

Những thay đổi về API

  • Thêm CameraInfo.getIntrinsicZoomRatio để cung cấp thông tin về góc xem so với máy ảnh mặc định. (Ib300c)
  • Thêm CameraInfo.getLensFacing để cung cấp thông tin về ống kính mặt trước. Thêm CameraSelector#LENS_FACING_EXTERNAL làm tính năng thử nghiệm để chọn các máy ảnh ngoài. (Icaf3e)
  • Thêm #setEffect() vào CameraController để thêm hiệu ứng vào đầu ra của máy ảnh. (I1d21f)
  • Thêm phương thức invalidate() vào SurfaceRequest. Nhà cung cấp Surface có thể thông báo rằng surface cung cấp trước đó không còn hợp lệ nữa. (Idc649)
  • Thêm ImageProcessor API. Giao diện này dùng để chèn hiệu ứng xử lý hậu kỳ vào quy trình ImageCapture. (I575c6)
  • Thêm Recorder.Builder.setAspectRatio() API có thể kết hợp với QualitySelector để hỗ trợ thêm nhiều độ phân giải video. (I8a082)
  • Thêm Recorder.Builder#setTargetVideoEncodingBitRate để thiết lập BitRate mã hoá video mục tiêu và Recorder#getTargetVideoEncodingBitRate để nhận Tốc độ bit mã hoá video mục tiêu. (I5984d)

Sửa lỗi

  • Khắc phục lỗi ImageCapture không thành công khi không có đơn vị flash và chế độ flash đang bật. (I9e8b4, b/263391112)
  • Khắc phục lỗi hỏng hình ảnh JPEG nếu ghi dữ liệu vị trí Exif trên một số thiết bị Samsung Android 12. (Ib7086, b/263747161, b/263289024)
  • Khi bạn cài đặt đèn pin/thiết bị thu phóng trước khi khởi chạy máy ảnh (chẳng hạn như gọi CameraController#enableTorch), hành động đang chờ xử lý sẽ được lưu vào bộ nhớ đệm và được gửi sau khi quá trình khởi chạy hoàn tất. (I11e92, b/264157663)

Phiên bản 1.3.0-alpha02

Ngày 7 tháng 12 năm 2022

Phát hành androidx.camera:camera-*:1.3.0-alpha02. Phiên bản 1.3.0-alpha02 bao gồm các thay đổi sau.

Các thay đổi về API

  • Thêm API mới để áp dụng hiệu ứng xử lý hậu kỳ cho kết quả Preview (Bản xem trước). (Ic17d5)
  • Đổi tên OutputOptions.getDurationLimit thành OutputOptions.getDurationLimitMillisOutputOptions.setDurationLimit thành OutputOptions.setDurationLimitMillis. (I91f0c)
  • Thêm lớp (class) AudioConfig để xử lý chế độ cài đặt liên quan đến âm thanh trong khi quay video. Chú thích @RequiresPermission được di chuyển từ các hàm startRecording sang AudioConfig để tránh các yêu cầu cấp quyền không cần thiết trong trường hợp không cần âm thanh. (I28755)
  • Xoá các lớp Siêu dữ liệu, ngừng sử dụng OnVideoSavedCallback, OutputFileOptionsOutputFileResults sau khi áp dụng API quay video mới. (I38cd8)
  • Áp dụng API quay video mới. Phương thức getVideoCaptureTargetSizesetVideoCaptureTargetSize được thay thế bằng phương thức getVideoCaptureTargetQualitysetVideoCaptureTargetQuality tương ứng, vì setTargetResolution không còn được hỗ trợ. (I2a1d5)

Sửa lỗi

  • Xoá API core.VideoCapture không dùng nữa. (I531e0)
  • Sửa lỗi lệnh gọi lại onError không được gọi khi chụp ảnh mà không có quyền lưu trữ.(I936db, b/244807669)
  • Cải thiện chất lượng và độ tin cậy của các tiện ích máy ảnh. Các tiện ích máy ảnh bị tắt trên các thiết bị Motorola sử dụng Tiện ích máy ảnh phiên bản 1.1.0 trở xuống do các vấn đề về hỗ trợ Bokeh, chụp ảnh và bản xem trước không tiếp tục. (Id3ce3)
  • Khắc phục sự cố trục trặc mã gốc khi bật tính năng cắt video qua ViewPort trên các thiết bị cũ. (I16b8a, b/251357665)

Phiên bản 1.3.0-alpha01

Ngày 9 tháng 11 năm 2022

Phát hành androidx.camera:camera-*:1.3.0-alpha01. Phiên bản 1.3.0-alpha01 bao gồm các thay đổi sau.

Tính năng mới

  • Camera-viewfinder đã được xuất bản chính thức. Camera-viewfinder cung cấp một tiện ích kính ngắm cơ sở có thể hiển thị nguồn cấp dữ liệu camera cho Camera2. Vui lòng xem mã mẫu để biết ví dụ.

Các thay đổi về API

  • Thêm OutputOptions.setDurationLimit để cho phép đặt giới hạn thời lượng video. Bản ghi sẽ tự động hoàn tất khi vượt quá giới hạn thời lượng đã chỉ định. (I902a0)
  • Thêm trạng thái lỗi âm thanh khi quay video AudioStats.AUDIO_STATE_SOURCE_ERROR. Gửi khi không thiết lập được nguồn âm thanh hoặc xảy ra một số lỗi. (I37410)

Sửa lỗi

  • Thêm quirk để cho phép một số thiết bị có vấn đề thử chụp lại một lần khi gặp lỗi chụp. (Id4795)
  • Khắc phục lỗi màn hình đen khi triển khai PreviewView SurfaceView trên ViewPager2. Trong quá trình khắc phục, PreviewView sẽ sử dụng lại SurfaceView của nó nếu độ phân giải yêu cầu không được thay đổi. (Ib3f27)
  • Hỗ trợ cắt video (tính năng WYSIWYG) khi sử dụng API ViewPort hoặc CameraController. (Ifbba8, b/201085351)
  • Video đã sửa quay bằng camera trước không quay được trên Huawei P40 lite. (I87c57, b/250807400)

Phiên bản 1.2

Phiên bản 1.2.3

Ngày 24 tháng 5 năm 2023

Phát hành androidx.camera:camera-*:1.2.3. Phiên bản 1.2.3 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề VideoCapture không hoạt động với camera trước trên một số thiết bị. Ví dụ: trên Samsung Galaxy S23 và Xiaomi 2107113SG. (Ibec7e, b/270656244)

Phiên bản 1.2.2

Ngày 22 tháng 3 năm 2023

Phát hành androidx.camera:camera-*:1.2.2. Phiên bản 1.2.2 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề Tiện ích CameraX không hoạt động đúng cách khi bật Proguard trên một số thiết bị như Pixel (I90aa2)

Phiên bản 1.2.1

Ngày 25 tháng 1 năm 2023

Phát hành androidx.camera:camera-*:1.2.1. Phiên bản 1.2.1 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi hỏng hình ảnh JPEG nếu ghi dữ liệu vị trí Exif trên một số thiết bị Samsung Android 12. (b/263289024)

Phiên bản 1.2.0

Ngày 7 tháng 12 năm 2022

Phát hành androidx.camera:camera-*:1.2.0. Phiên bản 1.2.0 bao gồm các thay đổi sau.

Các thay đổi quan trọng kể từ phiên bản 1.1.0

  • Thư viện mới camera-mlkit-vision. Dễ dàng tích hợp CameraX với nhiều tính năng của MLKit, bao gồm quét mã vạch, phát hiện khuôn mặt, phát hiện văn bản và nhiều tính năng khác. Thêm MLKitAnalyzer làm API mới.
  • Zero-Shutter Lag API mới dưới dạng thử nghiệm. Tối ưu hoá quy trình chụp để giảm độ trễ mà vẫn duy trì được chất lượng cao cho ảnh. Khi chế độ chụp được đặt thành CAPTURE_MODE_ZERO_SHUTTER_LAG, độ trễ từ lúc nhấp nút chụp đến lúc chụp được ảnh sẽ giảm, so với các chế độ chụp khác. Trên các thiết bị không hỗ trợ ZERO_SHUTTER_LAG, chế độ dự phòng sẽ là CAPTURE_MODE_MINIMIZE_LATENCY.
  • Ngừng sử dụng android.camera.core.VideoCapture.
  • Thêm setStreamUseCase() làm API Camera2Interop công khai.
  • Thêm yêu cầu về cấp độ API đối với setOutputImageRotationEnabled.
  • Đổi tên ImageAnalysis.Analyzer#getTargetResolutionOverride() thành ImageAnalysis.Analyzer#getDefaultTargetResolution().
  • Thêm API để đặt siêu dữ liệu vị trí cho video đã lưu.
  • Khắc phục vấn đề tốc độ khung hình thấp khi dùng các trường hợp sử dụng Preview (Bản xem trước) và VideoCapture với tỷ lệ khung hình 16:9
  • Sửa lỗi màn hình xem trước bị đen khi bật tiện ích BOKEH trên một số thiết bị Samsung và người dùng chuyển máy ảnh.
  • Sửa lỗi hình ảnh Preview/VideoCapture bị kéo giãn của Samsung J7 Prime (SM-G610M) và J7 (SM-J710MN) trên thiết bị API cấp 27.
  • Tắt biện pháp lật vùng AF theo chiều ngang của các máy ảnh trước trên Samsung Android T vì sự cố này đã được khắc phục

Phiên bản 1.2.0-rc01

Ngày 24 tháng 10 năm 2022

Phát hành androidx.camera:camera-*:1.2.0-rc01. Phiên bản 1.2.0-rc01 bao gồm bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm API setStreamUseCase cho OutputConfiguration. Người dùng có thể chỉ định Trường hợp sử dụng phát trực tuyến cho phiên phát trực tuyến, ghi đè các logic nội bộ của CameraX để chọn Trường hợp sử dụng phát trực tuyến nhằm tối ưu hoá theo nhu cầu của họ. (Ib1a95)

Sửa lỗi

  • Sửa lỗi hình ảnh Preview/VideoCapture bị kéo giãn của Samsung J7 Prime (SM-G610M) và J7 (SM-J710MN) trên thiết bị API cấp 27. Độ phân giải 1920x1080 khiến hình ảnh Preview/VideoCapture bị kéo giãn. Thêm giải pháp không chọn độ phân giải 1920x1080 cho Preview hoặc VideoCapture để tránh vấn đề kéo giãn hình ảnh. (I0e04e)
  • Khắc phục vấn đề tốc độ khung hình thấp khi dùng các trường hợp sử dụng Preview và VideoCapture với tỷ lệ khung hình 16:9 trên một số thiết bị Huawei. (If8c88, b/223643510)
  • Sửa lỗi mở máy ảnh khi chưa đặt SurfaceProvider của Preview. Nhờ sửa lỗi này, trường hợp sử dụng Preview không đặt SurfaceProvider sẽ không được định cấu hình vào phiên chụp ảnh. (I99681)

Phiên bản 1.2.0-beta02

Ngày 21 tháng 9 năm 2022

Phát hành androidx.camera:camera-*:1.2.0-beta02. Phiên bản 1.2.0-beta02 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm yêu cầu đối với cấp độ API cho setOutputImageRotationEnabled (I26e3e, b/240993561)

Sửa lỗi

  • Tắt biện pháp lật vùng AF theo chiều ngang của các máy ảnh trước trên Samsung Android T vì sự cố này đã được khắc phục. (I05f69)
  • Khắc phục lỗi bản xem trước bị đen xảy ra khi bật tiện ích BOKEH trên một số thiết bị Samsung và người dùng chuyển máy ảnh. (If6168)

Phiên bản 1.2.0-beta01

Ngày 24 tháng 8 năm 2022

Phát hành androidx.camera:camera-*:1.2.0-beta01. Phiên bản 1.2.0-beta01 bao gồm các thay đổi sau.

Tính năng mới

  • Thư viện camera-mlkit-vision mới. Dễ dàng tích hợp CameraX với nhiều tính năng của MLKit, bao gồm quét mã vạch, phát hiện khuôn mặt, phát hiện văn bản và nhiều tính năng khác. Vui lòng tìm mã mẫu tại đây.
  • Zero-Shutter Lag API mới dưới dạng thử nghiệm. Tối ưu hoá quy trình chụp để giảm độ trễ mà vẫn duy trì được chất lượng cao cho ảnh. Khi chế độ chụp được đặt thành CAPTURE_MODE_ZERO_SHUTTER_LAG, độ trễ từ lúc nhấp nút chụp đến lúc chụp được ảnh sẽ giảm, so với các chế độ chụp khác. Trên các thiết bị không hỗ trợ chế độ ZERO_SHUTTER_LAG, chế độ dự phòng sẽ là CAPTURE_MODE_MINIMIM_LATENCY.
  • Đặt ImageAnalysis.AnalyzerMLKitAnalyzer làm API chính thức.
  • Cấp quyền truy cập API để đặt siêu dữ liệu vị trí cho video đã lưu.
  • Đổi tên ImageAnalysis.Analyzer#getTargetResolutionOverride() thành ImageAnalysis.Analyzer#getDefaultTargetResolution().

Sửa lỗi

  • Khắc phục lỗi chụp ảnh Alps k61v1_basic_ref. Hình ảnh JPEG chụp bằng HAL (Lớp trừu tượng phần cứng) có siêu dữ liệu Exif không chính xác. Siêu dữ liệu Exif không có thẻ 0xffd9 hoặc 0xffda để giúp ExifInterface phân tích cú pháp các thuộc tính một cách chính xác. Hãy chụp ảnh ở định dạng YUV rồi nén ảnh thành ảnh đầu ra JPEG để xử lý lỗi này. (I45abb)

Phiên bản 1.2.0-alpha04

Ngày 27 tháng 7 năm 2022

Phát hành androidx.camera:camera-*:1.2.0-alpha04. Phiên bản 1.2.0-alpha04 bao gồm các thay đổi sau.

Thay đổi về API

  • Đổi tên ImageAnalysis.Analyzer#getTargetResolutionOverride() thành ImageAnalysis.Analyzer#getDefaultTargetResolution(). Hành vi này cũng được thay đổi để giá trị trả về của phương thức này có thể được ghi đè bằng giá trị ImageAnalysis#setTargetResolution(). (If1d36)
  • Cấp quyền truy cập API để đặt siêu dữ liệu vị trí cho video đã lưu. Bạn có thể đặt đối tượng android.location.Location qua API androidx.camera.video.OutputOptions.Builder.setLocation(Location) mới. (I313a0, b/204197544)

Sửa lỗi

  • Khắc phục sự cố để chụp ảnh bằng tính năng xem trước chưa liên kết (Ie70b6, b/235119898)
  • Khắc phục sự cố trong Recorder khi cố gắng ghi mà không có nguồn âm thanh. (I9f652)

Phiên bản 1.2.0-alpha03

Ngày 29 tháng 6 năm 2022

Phát hành androidx.camera:camera-*:1.2.0-alpha03. Phiên bản 1.2.0-alpha03 bao gồm các thay đổi sau.

Thay đổi về API

  • Đã xoá chú thích thử nghiệm cho ImageAnalysis.AnalyzerMLKitAnalyzer. (I0ff22)

Sửa lỗi

  • Đã thêm thời gian chờ mặc định tự động lấy nét 5000 mili giây sẽ hoàn thành phần AF với isFocusSuccessful false nếu FocusMeteringAction không bị huỷ và phần AF không được hội tụ trong khoảng thời gian. (Ibc2e3)
  • Khắc phục sự cố để chụp ảnh bằng tính năng xem trước chưa liên kết (I1d3a2, b/235119898)
  • Bật tính năng triển khai bộ mở rộng nâng cao và cập nhật phiên bản giao diện mở rộng hỗ trợ Máy ảnh lên 1.2 (I92256)

Phiên bản 1.2.0-alpha02

Ngày 1 tháng 6 năm 2022

Phát hành androidx.camera:camera-*:1.2.0-alpha02. Phiên bản 1.2.0-alpha02 bao gồm các thay đổi sau.

Tính năng mới

  • Dùng API CameraX Zero-Shutter Lag dưới dạng thử nghiệm.

Thay đổi về API

  • Thêm chế độ chụp mới CAPTURE_MODE_ZERO_SHUTTER_LAG trong ImageCapture và thêm isZslSupported trong CameraInfo để truy vấn khả năng của thiết bị. Chế độ CAPTURE_MODE_ZERO_SHUTTER_LAG hướng đến việc cung cấp độ trễ tối thiểu để chụp ảnh tức thì. Chế độ này được triển khai dựa trên bộ đệm vòng, lưu trữ các kết quả chụp trung gian vào bộ nhớ đệm (để xử lý lại về sau) khi người dùng nhấn nút để chụp ảnh. Nếu {@link VideoGhi} được liên kết hoặc chế độ flash không TẮT hoặc Tiện ích OEM đang BẬT, chế độ này sẽ tự động bị tắt. (I9ae74)
  • Thêm phương thức ImageAnalysis.getBackgroundExecutor() (Icc945)

Sửa lỗi

  • Cập nhật phương thức takePicture ImageCapture để tắt đèn pin trên các thiết bị đã báo cáo. (Ib5eb5, b/228272227)
  • Đã khắc phục lỗi AssertionError không được xử lý khi nhận đặc tính CONTROL_ZOOM_RATIO_RANGE. (/Ia248a, b/231701345)

Phiên bản 1.2.0-alpha01

Ngày 18 tháng 5 năm 2022

Phát hành androidx.camera:camera-*:1.2.0-alpha01. Phiên bản 1.2.0-alpha01 bao gồm các thay đổi sau.

Tính năng mới

  • Ra mắt thư viện mới – camera-mlkit-vision

Sửa lỗi

  • Đã khắc phục QualitySelector không thể quay video UHD khi bật chiến lược dự phòng. Lỗi xảy ra khi VideoCapture được liên kết với ImageCapture và Preview (Xem trước) trên một thiết bị camera có cấp độ phần cứng đầy đủ hoặc cao hơn. Chiến lược dự phòng QualitySelector khiến VideoCapture nhận được độ phân giải FHD không chính xác. Cần áp dụng độ phân giải UHD được hỗ trợ cho trường hợp sử dụng kết hợp này. (I0e788, b/230651237)
  • Khắc phục NullPointerException trên ImageCapture.takePicture(). (I92366, b/230454568, b/229766155)
  • Khắc phục hành vi tạm dừng không đồng bộ của androidx.camera.video.Recorder (Ia8ce8)

Camera-Camera2, Camera-Core, Camera-Lifecycle, & Camera-Video Phiên bản 1.1.0

Phiên bản 1.1.0

Ngày 29 tháng 6 năm 2022

Phát hành androidx.camera:camera-*:1.1.0. Phiên bản 1.1.0 bao gồm các thay đổi sau.

Thay đổi quan trọng kể từ phiên bản 1.0.0

  • Các thư viện Chế độ xem, Phần mở rộng và Quay video đã được hạ cấp làm phiên bản RC đầu tiên. Từ phiên bản 1.1.0-beta01, tất cả thư viện CameraX sẽ sử dụng cùng một số phiên bản. Điều này sẽ giúp nhà phát triển theo dõi các phiên bản dễ dàng hơn và giảm độ phức tạp của ma trận tương thích phiên bản lớn.
  • Ra mắt các API và tính năng công khai mới, bao gồm:
  • Thêm thư viện video máy ảnh chính thức để hỗ trợ các trường hợp sử dụng tính năng quay video.
  • Khả năng xoay và chuyển đổi YUV sang RGB (ImageAnalysis.Builder.setOutputImageRotationEnabledsetOutputImageFormat)
  • Hỗ trợ chế độ nhiều cửa sổ bằng cách cho phép các ứng dụng Máy ảnh X tiếp tục máy ảnh khi máy ảnh bị gián đoạn bởi một ứng dụng khác và lấy nét lại.
  • Đảm bảo Máy ảnh X hoạt động tốt trong các thiết bị có thể gập lại bằng cách khắc phục một số sự cố xem trước.
  • Thêm API CameraState này sẽ được cấp quyền truy cập thông qua CameraInfo.
  • Đã thêm API ProcessCameraProvider.getAvailableCameraInfos() để trực tiếp truy xuất thông tin về các máy ảnh có sẵn
  • Đầu ra định dạng JPEG cho ImageCapture#OnImageCapturedCallback khi Tiện ích được bật.
  • Đã thêm API isFocusMeteringSupported trong CameraInfo để các ứng dụng có thể kiểm tra xem FocusMeteringAction đã cho có được hỗ trợ trên máy ảnh hiện tại hay không.
  • Cung cấp API getResolutionInfo để cung cấp thông tin giải pháp cho Bản xem trước, ImageCaptureImageAnalysis.
  • Thêm API mới ImageCapture.Builder#setJpegQuality để cho phép thay đổi chất lượng nén hình ảnh JPEG đầu ra khi chụp ảnh.
  • Đã thêm CameraSelector#filter vào API công khai để lọc danh sách CameraInfos dựa trên CameraSelector.
  • Thêm Camera2CameraControl.clearCaptureRequestOptions để xoá các tuỳ chọn yêu cầu chụp hiện có.
  • Thêm API thử nghiệm để sử dụng CameraController với các thư viện xử lý hình ảnh bên ngoài. Ví dụ: MLKit
  • Đã thêm API thử nghiệm CameraInfo#getCameraSelector() để trả về CameraSelector duy nhất cho máy ảnh
  • Đã quảng bá một số API thử nghiệm cho các API công khai chính thức
  • Thay thế chú thích @Experimental bằng @RequiresOptIn thành API thử nghiệm. Để gọi API thử nghiệm, hãy sử dụng androidx.annotation.OptIn thay vì androidx.annotation.experimental.UseExperimental đã ngừng sử dụng.
  • Đã quảng cáo các API thử nghiệm sau đây đến các API chính thức: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(),
  • Các API @ExperimentalCameraFilter
  • API thử nghiệm tiếp xúc thử nghiệm.
  • Quảng bá API UseCaseGroup thử nghiệm cho lõi máy ảnh, vòng đời máy ảnh và video máy ảnh. Thêm ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirectionViewPort.Builder#setScaleType để tuỳ chỉnh khung nhìn.
  • Đã quảng bá ExperimentalUseCaseGroupLifecycle lên các API công khai chính thức.
  • Thay đổi đối với các API hiện có
  • Renamed MediaStoreOutputOptions.getCollection đến MediaStoreOutputOptions.getCollectionUri.
  • ActiveRecording đã được đổi tên thành "Ghi lại" để giảm độ chi tiết.
  • Thay đổi API trình tạo QualitySelector thành API dựa trên danh sách

Sửa lỗi

  • Khắc phục lỗi YuvToJpegProcessor EOFException khi bật chế độ tiện ích và đặt chế độ ImageCapture#CAPTURE_MODE_MAX_QUALITY.
  • Không định cấu hình được codec đã sửa do quá trình quay video đang đóng
  • Tỷ lệ khung hình xem trước/video được kéo dài cố định khi ghi ở FHD
  • Khắc phục sự cố âm thanh/video không đồng bộ hoá sau khi tạm dừng và tiếp tục trên một số thiết bị
  • Khắc phục lỗi đèn flash bị kích hoạt trong khi nhấn để lấy nét (startFocusAndMetering) khi chế độ flash đang tự động hoặc luôn bật trong môi trường ánh sáng yếu.

Phiên bản 1.1.0-rc02

Ngày 1 tháng 6 năm 2022

Phát hành androidx.camera:camera-*:1.1.0-rc02. Phiên bản 1.1.0-rc02 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục NullPointerException trên ImageCapture.takePicture(). (I92366, b/230454568, b/229766155)
  • Đã khắc phục lỗi AssertionError không được xử lý khi nhận đặc tính CONTROL_ZOOM_RATIO_RANGE. (Ia248a, b/231701345)

Phiên bản 1.1.0-rc01

Ngày 11 tháng 5 năm 2022

Phát hành androidx.camera:camera-*:1.1.0-rc01. Phiên bản 1.1.0-rc01 bao gồm các thay đổi sau.

Tính năng mới

  • Phát hành phiên bản RC đầu tiên cho video máy ảnh, chế độ xem máy ảnh và tiện ích máy ảnh

Sửa lỗi

  • Sửa lỗi codec video (bộ mã hoá và giải mã video) không được phát hành khi VideoCapture<Recorder> chưa được liên kết, khiến các lần sử dụng VideoCapture<Recorder> tiếp theo không thể ghi bằng MediaCodec.CodecException, đặc biệt là trên các thiết bị API 21-22. (Ie7f68)
  • Sửa hình ảnh đã chụp của CameraExtensionsActivity không bị xoá trong ImageCaptureTest

Phiên bản 1.1.0-beta03

Ngày 6 tháng 4 năm 2022

Phát hành androidx.camera:camera-*:1.1.0-beta03. Phiên bản 1.1.0-beta03 bao gồm các thay đổi sau.

Thay đổi về API

  • Đã giới hạn hàm khởi tạo CaptureRequestOptions. (I261b6)
  • Thêm API thử nghiệm để sử dụng CameraController với các thư viện xử lý hình ảnh bên ngoài. Ví dụ: MLKit (I4ea71)

Sửa lỗi

  • Đã khắc phục sự cố khiến bản xem trước trở nên lỗi trong PreviewView khi hoạt động không khởi động lại sau khi xoay thiết bị trong nhiều cửa sổ. (I1ea36, b/223488673)
  • Khắc phục sự cố nhiều cửa sổ khi tiêu điểm thay đổi trở lại ứng dụng, nó sẽ không thể tiếp tục máy ảnh khi (1) ứng dụng có mức độ ưu tiên cao khác mở một máy ảnh khác, (2) thiết bị là thiết bị Samsung chạy Android 12. (I7e9f2)
  • Giải pháp cho các thiết bị gặp sự cố khi kiểm tra tình trạng hoạt động của đèn flash. Các thiết bị này sẽ không có đèn pin. (If26a3, b/216667482)
  • Khắc phục sự cố AbstractMethodError xảy ra khi các ứng dụng sử dụng tiện ích và bật tính năng bảo vệ. (I7cbaf, b/222726805)
  • Buộc tắt chế độ tiện ích bokeh trên thiết bị Motorola razr 5G sẽ gây ra sự cố màn hình xem trước màu đen. (I35d49)
  • Khắc phục sự cố âm thanh/video không đồng bộ sau khi tạm dừng và tiếp tục trên một số thiết bị Samsung trước API 29. (I64622, b/202798609, b/202798572)
  • Khắc phục sự cố âm thanh/video không đồng bộ sau khi tạm dừng và tiếp tục trên Sony G3125. (I2a1a5, b/202799148)
  • Khắc phục sự cố khi Máy ghi âm gặp lỗi InvalidConfigException. Tuy nhiên, cách khắc phục này chỉ ngăn ứng dụng gặp lỗi chứ không giải quyết được nguyên nhân gây ra InvalidConfigException. Nếu Recorder vẫn không thể định cấu hình, thì các ứng dụng sẽ nhận được lệnh gọi lại lỗi khi bắt đầu ghi. (I89c29, b/213617227)

Đóng góp bên ngoài

  • cập nhật :compose:ui:ui-test api (updateApi) do kiểm tra coroutines-lib migration (I3366d)

Phiên bản 1.1.0-beta02

Ngày 23 tháng 2 năm 2022

Phát hành androidx.camera:camera-*:1.1.0-beta02. Phiên bản 1.1.0-beta02 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm khả năng chỉ định mã nhận dạng máy ảnh thực thông qua Camera2Interop. (I5aed8)

Sửa lỗi

  • Khắc phục lỗi hình ảnh xem trước bị giãn trên Oppo Find N (I7d004)
  • Khắc phục lỗi trên Galaxy J7 Prime khiến bản xem trước bị méo. (I4c500)
  • Sử dụng tốc độ bit tương thích để tìm bộ mã hoá video. (d969052)

Phiên bản 1.1.0-beta01

Ngày 26 tháng 1 năm 2022

Phát hành androidx.camera:camera-*:1.1.0-beta01. Phiên bản 1.1.0-beta01 bao gồm các thay đổi sau.

Tính năng mới

  • Từ phiên bản 1.1.0-beta01, tất cả thư viện CameraX sẽ sử dụng cùng một số phiên bản. Điều này sẽ giúp nhà phát triển theo dõi các phiên bản dễ dàng hơn và giảm độ phức tạp của ma trận tương thích phiên bản lớn.

Thay đổi về API

  • Thêm Camera2CameraControl.clearCaptureRequestOptions để xoá các tuỳ chọn yêu cầu chụp hiện có. (Ifa07d)

Sửa lỗi

  • Khắc phục sự cố khi quay video trên một số thiết bị sử dụng phiên bản trước phiên bản Android O(API 26). (I88fdf, b/212328261)
  • Khắc phục lỗi vùng lấy nét tự động không chính xác khi sử dụng cameraControl#startFocusAndMetering() trong máy ảnh có ống kính mặt trước trên thiết bị Samsung (Ifbf59, b/210548792)
  • Sử dụng đèn pin làm đèn flash trên Pixel 3a/Pixel 3a XL để cải thiện tốc độ và chất lượng hình ảnh chụp ban đêm (Ib12b6, b/211474332)
  • Cho phép các ứng dụng tiếp tục sử dụng máy ảnh khi máy ảnh bị ứng dụng khác có mức độ ưu tiên cao hơn làm gián đoạn trong chế độ nhiều cửa sổ và tiêu điểm lấy nét sẽ chuyển về ứng dụng đó. Lưu ý rằng có thể xảy ra độ trễ (từ 1 giây đến 10 giây trở lên) giữa các lần thay đổi tiêu điểm lấy nét và mở lại máy ảnh do một số vấn đề về khung. (I4d092)

Phiên bản 1.1.0-alpha12

Ngày 15 tháng 12 năm 2021

Phát hành androidx.camera:camera-*:1.1.0-alpha12. Phiên bản 1.1.0-alpha12 bao gồm các thay đổi sau.

Thay đổi về API

  • Xoá chú thích @RequiresApi(21) không cần thiết khỏi các lớp/giao diện bên trong. (I8e286, b/204917951)
  • Các hằng số chất lượng và hằng số chiến lược dự phòng của QualitySelector đã được thay đổi để biểu thị bằng các đối tượng lớp. Ví dụ: QualitySelector.QUALITY_HD được thay đổi thành Quality.HDQualitySelector.FALLBACK_STRATEGY_LOWER được thay đổi thành thực thể (instance) được FallbackStrategy.lowerQualityOrHigherThan(Quality) trả về. API dùng để tạo QualitySelector được thay đổi thành API dạng danh sách. API QualitySelector.fromOrderedList(List<Quality>) mới sẽ tham chiếu đến thứ tự của danh sách chất lượng đầu vào thay vì thứ tự do QualitySelector.Procedure tạo. Xoá lớp QualitySelector.Procedure. (I43343)
  • Xoá PendingRecording.withEventListener() và trình lắng nghe sự kiện (event listener) hiện phải được chuyển cho PendingRecording.start(). Yêu cầu về trình nghe sự kiện (event listener) này nhằm khuyến khích việc xử lý các lỗi không đồng bộ hoá được báo cáo trong sự kiện VideoRecordEvent.Finalize. (I1e71d)
  • Đổi tên ActiveRecording thành Recording để giảm độ chi tiết. (I77ceb)

Sửa lỗi

  • Khắc phục lỗi ảnh chụp ở chế độ FLASH_AUTO bị thiếu sáng trong môi trường ban đêm trên Pixel 3a và Pixel 3a XL (I13f19, b/205373142)
  • Luôn sử dụng kích thước hiển thị mới nhất để xác định Resolution của bản xem trước. (I4a694)
  • Lọc ra các máy ảnh không có REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE. Máy ảnh có REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE sở hữu số lượng tính năng tối thiểu mà mọi thiết bị máy ảnh hỗ trợ. Máy ảnh không có REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE có thể là máy ảnh hỗ trợ chức năng đặc biệt và không hỗ trợ đầu ra màu chuẩn. CameraX không hỗ trợ các trường hợp sử dụng Preview, ImageCapture, ImageAnalysis hoặc VideoCapture cho các máy ảnh đó. Vì vậy, hãy lọc ra các máy ảnh đó để tránh sử dụng sai. (Ib8cda)
  • CameraSelector#filter không còn gửi IllegalArgumentException khi không có kết quả nào. (I27804)
  • Các phương thức thông minh hơn hiện được dùng để chọn cài đặt bộ mã hoá dựa trên hồ sơ do OEM chỉ định. (Iaeef0)
  • Khắc phục lỗi trong đó trường hợp sử dụng Preview (xem trước) có các đường màu xen kẽ sau khi bắt đầu quay video UHD trên Pixel1. (I833c6, b/205340278)

Phiên bản 1.1.0-alpha11

Ngày 17 tháng 11 năm 2021

Phát hành androidx.camera:camera-*:1.1.0-alpha11. Phiên bản 1.1.0-alpha11 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm CameraSelector#filter vào API công khai để lọc danh sách CameraInfos dựa trên CameraSelector. (I105d0)
  • Thêm API setOutputImageRotationEnabled cho cấu hình ImageAnalysis. Người dùng có thể bật tính năng xoay cho vùng đệm hình ảnh YUV/RGB. Độ xoay là một chế độ xoay tương đối được tính toán dựa trên chế độ xoay cảm biến và xoay phương hướng để hình ảnh nổi bật.

  • Thêm API setOutputImageRotationEnabled cho cấu hình ImageAnalysis. Người dùng có thể bật tính năng xoay cho vùng đệm hình ảnh YUV/RGB. Độ xoay là một chế độ xoay tương đối được tính toán dựa trên chế độ xoay cảm biến và xoay phương hướng để hình ảnh nổi bật.

    Thêm API getSensorToBufferTransformMatrix trong ImageInfo. Ma trận được trả về chính là bản đồ ánh xạ toạ độ cảm biến với toạ độ vùng đệm, cụ thể là từ giá trị của CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE đến (0, 0, image.getWidth, image.getHeight). Bạn có thể sử dụng ma trận để ánh xạ toạ độ từ một {UseCase} này sang một {UseCase} khác. Ví dụ: bản đồ ánh xạ thể hiện toạ độ của khuôn mặt được phát hiện bằng ImageAnalysis tới Preview (Bản xem trước). (I9ff1e)

  • Thêm một API ImageImage.Builder#setJpegquality mới cho phép thay đổi chất lượng nén ảnh đầu ra dưới định dạng JPEG khi chụp ảnh. (I8dcf4)

  • Đổi tên MediaStoreOutputOptions.getCollection thành MediaStoreOutputOptions.getCollectionUri. (I16639)

Sửa lỗi

  • Sửa lỗi đèn flash bị kích hoạt trong khi nhấn để lấy nét (startFocusAndMetering) khi chế độ flash đang tự động hoặc luôn bật trong môi trường ánh sáng yếu. (Id4c11)
  • Đã tắt HDR+ trên Pixel 2 XL/Pixel 3 XL ở chế độ MINIMIZE_LATENCY để giảm độ trễ. (Ib6270, b/203505523)

Đóng góp bên ngoài

Phiên bản 1.1.0-alpha10

Ngày 13 tháng 10 năm 2021

Phát hành androidx.camera:camera-*:1.1.0-alpha10. Phiên bản 1.1.0-alpha10 bao gồm các thay đổi sau.

Tính năng mới

  • Chính thức phát hành androidx.camera:camera-video:1.1.0-alpha10 dưới dạng phiên bản alpha đầu tiên cho Video. Vẫn tồn tại một số lỗi đã biết cần khắc phục trong các bản phát hành về sau.

Thay đổi về API

  • Thêm chú thích @RequiresApi(21) vào mọi lớp CameraX và xoá minSdkVersion khỏi AndroidManifest.xml. Điều này sẽ cho phép dễ dàng tích hợp camera-core vào các ứng dụng có minSdkVersion phiên bản 21 trở xuống nhưng muốn sử dụng đường dẫn mã có điều kiện dựa trên API 21 trở lên. Không cần thực hiện thao tác gì đối với mọi ứng dụng có minSdkVersion phiên bản 21 trở lên. (Ie7f2e, b/200599470)

Sửa lỗi

  • Khai báo ngoại lệ InitializationException để ứng dụng có thể xử lý lỗi AssertionError xảy ra khi tạo CameraCharacteristics. (Ibec79)

Phiên bản 1.1.0-alpha09

Ngày 29 tháng 9 năm 2021

Phát hành androidx.camera:camera-camera2:1.1.0-alpha09, androidx.camera:camera-core:1.1.0-alpha09androidx.camera:camera-lifecycle:1.1.0-alpha09. Phiên bản 1.1.0-alpha09 bao gồm các thay đổi sau.

Thay đổi về API

  • Xoá chú thích ExperimentalUseCaseGroup do các API không còn là API thử nghiệm nữa. (I01ef5)

Sửa lỗi

  • Khắc phục lỗi ảnh bị mờ ở chế độ MAXIMIZE_QUALITY. (I173a9, b/193823892)
  • Khắc phục lỗi trên Samsung Galaxy J5 khiến máy ảnh bị treo sau khi chụp ảnh bằng đèn flash ở chế độ bật/tự động trong môi trường tối (I3aab9)
  • Khi cần cắt ảnh cho tính năng ImageCapture, hãy nén hình ảnh đã cắt với mức chất lượng JPEG đã chỉ định theo chế độ chụp đã đặt. Nếu chế độ chụp là CAPTURE_MODE_MINIMIZE_LATENCY, chất lượng nén ảnh JPEG là 95. Nếu chế độ chụp là CAPTURE_MODE_MAXIMIZE_QUALITY, chất lượng nén ảnh JPEG là 100. (Ieb37c, b/142856426)

Phiên bản 1.1.0-alpha08

Ngày 18 tháng 8 năm 2021

Phát hành androidx.camera:camera-camera2:1.1.0-alpha08, androidx.camera:camera-core:1.1.0-alpha08androidx.camera:camera-lifecycle:1.1.0-alpha08. Phiên bản 1.1.0-alpha08 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm API setOutputImageFormat để định cấu hình chức năng phân tích hình ảnh. Người dùng có thể chọn ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 hoặc ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. Theo mặc định, ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 sẽ được chọn. (I7902d)

Thay đổi về API

  • Xoá chú thích ExperimentalUseCaseGroupLifecycle do các API không còn là API thử nghiệm nữa. (I17b85)

Sửa lỗi

  • Sửa lỗi Màn hình xem trước quá sáng trên Huawei P20 Lite. Vấn đề này chỉ xảy ra khi dùng một số độ phân giải Preview đặc biệt và phóng ảnh quá lớn. (Idefce, b/192129158)
  • Khắc phục lỗi đèn flash không hoạt động trên một số thiết bị khi đặt chế độ đèn flash sang FLASH_MODE_ON ngay sau khi chụp ảnh. (Ieb49b)
  • Sửa lỗi trong đó Preview (Bản xem trước) sẽ tạm dừng trong một khoảng thời gian khi chụp ảnh nếu VideoCapture, ImageCapture và Preview được liên kết. (I56197, b/193864120)
  • Cho phép công cụ ImageAnalysis chọn độ phân giải lớn hơn 1080p. Thiết bị LIMITED hoặc trở lên có thể hỗ trợ độ phân giải RECORD cho tính năng ImageAnalysis nếu được liên kết với Preview và ImageCapture. Đổi lại là độ phân giải đã chọn cho ImageCapture cũng cần phải tương đương với độ phân giải RECORD. Để chọn thành công độ phân giải RECORD cho ImageAnalysis, bạn phải đặt độ phân giải RECORD mục tiêu cho cả ImageCapture và ImageAnalysis. Điều này cho thấy rằng ứng dụng hiểu rõ sự đánh đổi và ưu tiên độ phân giải lớn hơn cho ImageAnalysis thay vì để độ phân giải MAXIMUM cho ImageCapture. Để biết định nghĩa về RECORD, MAXIMUM và thông tin chi tiết, hãy truy cập vào https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. RECORD dùng để chỉ độ phân giải video tối đa được hỗ trợ trên thiết bị máy ảnh, do CamcorderProfile quyết định. MAXIMUM là độ phân giải đầu ra tối đa của thiết bị máy ảnh cho định dạng hoặc mục tiêu đó từ StreamConfiguration Map.getOutputSizes(int). (I1ee97, b/192911449)
  • Thêm thông tin Exif vào hình ảnh đã chụp. (I01ff0, b/193342619)
  • Trong ImageCapture, trả về URI của hình ảnh đã lưu nếu vị trí lưu là Tệp. (Ib5b49, b/149241379)
  • Khắc phục lỗi ảnh chụp bằng đèn flash bị tối trên nhiều thiết bị. (I4e510)

Phiên bản 1.1.0-alpha07

Ngày 21 tháng 7 năm 2021

Phát hành androidx.camera:camera-camera2:1.1.0-alpha07, androidx.camera:camera-core:1.1.0-alpha07androidx.camera:camera-lifecycle:1.1.0-alpha07. Phiên bản 1.1.0-alpha07 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi trên Samsung Galaxy Note 5 khiến máy ảnh bị treo sau khi chụp ảnh bằng đèn flash ở chế độ bật/tự động trong môi trường tối (If6871)
  • Khắc phục lỗi EOFException YuvToJpegProcessor khi bật chế độ tiện ích và đặt chế độ ImageCapture#CAPTURE_MODE_MAX_QUALITY. (I538bd, b/192017012)

Phiên bản 1.1.0-alpha06

Ngày 30 tháng 6 năm 2021

Phát hành androidx.camera:camera-camera2:1.1.0-alpha06, androidx.camera:camera-core:1.1.0-alpha06androidx.camera:camera-lifecycle:1.1.0-alpha06. Phiên bản 1.1.0-alpha06 bao gồm các thay đổi sau.

Thay đổi về API

  • Quảng cáo API bù phơi sáng thử nghiệm cho camera-core (I08ee8)
  • Thêm API is FocusMeteringsupported trong CameraInfo. API này cho phép các ứng dụng kiểm tra xem FocusMeteringAction có được hỗ trợ trên máy ảnh hiện tại hay không. (Ib45ae, b/188606490)
  • Cấp quyền truy cập API getResolutionInfo để cung cấp thông tin về độ phân giải cho Preview (Bản xem trước), ImageCapture và ImageAnalysis. (I2b613, b/188600718)
  • Đưa các API thử nghiệm sau đây thành các API chính thức: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). (I2ade2)
  • Cấp quyền truy cập giao diện CameraProvider để truy cập vào một nhóm máy ảnh. (I1a7b1)
  • Quảng bá UseCaseGroup API thử nghiệm cho camera-core, camera-lifecycle và camera-video. Thêm ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirectionViewPort.Builder#setScaleType để tuỳ chỉnh khung nhìn. (I7cee8)

Phiên bản 1.1.0-alpha05

Ngày 2 tháng 6 năm 2021

Phát hành androidx.camera:camera-camera2:1.1.0-alpha05, androidx.camera:camera-core:1.1.0-alpha05androidx.camera:camera-lifecycle:1.1.0-alpha05. Phiên bản 1.1.0-alpha05 bao gồm các thay đổi sau.

Thay đổi về API

  • Xoá lớp Camera2CameraFilter. Đề xuất chọn máy ảnh bằng CameraFilter và truy xuất CameraCharacteristics hoặc các thông tin khác có liên quan đến Camera2 thông qua Camera2CameraInfo nếu cần. (Ib887c)
  • API ExperimentalCameraFilter hiện không còn trong giai đoạn thử nghiệm và trở thành API chính thức. Bạn có thể sử dụng các API này mà không cần chú thích đến OptIn. (I4bc94)
  • Thêm API trạng thái máy ảnh được cấp quyền truy cập qua CameraInfo#getCameraState(). (Ia86b4)
  • Thêm API thử nghiệm CameraInfo#getCameraSelector(). API này trả về một CameraSelector riêng biệt cho máy ảnh (I77f9f)

Sửa lỗi

  • Khắc phục lỗi ListenableFuture trả về trong setZoomZoom và setLinearZoom không thể hoàn tất trên một số thiết bị Android 11 (I716d7)
  • Tăng tốc độ chuyển đổi Camera và giảm tỷ lệ xảy ra lỗi của thiết bị máy ảnh (I34c99)
  • Thay thế ExperimentalUseCaseGroupLifecycle với ExperimentalUseCaseGroup. (I3b2ef, b/159033688)

Phiên bản 1.1.0-alpha04

Ngày 21 tháng 4 năm 2021

Phát hành androidx.camera:camera-camera2:1.1.0-alpha04, androidx.camera:camera-core:1.1.0-alpha04androidx.camera:camera-lifecycle:1.1.0-alpha04. Phiên bản 1.1.0-alpha04 bao gồm các thay đổi sau.

Sửa lỗi

  • Sửa lỗi rò rỉ bộ nhớ do nhiều thread (luồng) đồng thời truy cập vào cùng một bộ sưu tập. Việc rò rỉ bộ nhớ có thể khiến thực thể Preview giữ lại thành phần giao diện tương tác (Activity) hoặc mảnh (Fragment). (I7b4b8)
  • Thay thế chú thích @Experimental bằng @RequiresOptIn thành API thử nghiệm. Để gọi các API thử nghiệm, hãy dùng androidx.annotation.OptIn thay vì androidx.annotation.experimental.UseExperimental không được dùng nữa. (Iff226)
  • Sửa lỗi ImageCapture sử dụng đèn flash ở chế độ bật/tự động làm hình ảnh chụp trên Samsung Galaxy S7 bị mờ. (I30001)
  • Thêm API CameraState. API này sẽ được cấp quyền truy cập thông qua CameraInfo. (I75392)

Phiên bản 1.1.0-alpha03

Ngày 24 tháng 3 năm 2021

Phát hành androidx.camera:camera-camera2:1.1.0-alpha03, androidx.camera:camera-core:1.1.0-alpha03androidx.camera:camera-lifecycle:1.1.0-alpha03. Phiên bản 1.1.0-alpha03 bao gồm các thay đổi sau.

Sửa lỗi

  • Xuất định dạng JPEG cho ImageCapture#OnImageCapturedCallback khi bật chế độ Tiện ích. (I0d7b1)
  • Khắc phục lỗi khởi chạy trên các thiết bị UMIDIGI BISON (I57d9e, b/180818665)
  • Sửa lỗi hình ảnh xem trước bị giãn trong PreviewView trên Samsung A3. (Iacb30, b/180121821)

Phiên bản 1.1.0-alpha02

Ngày 24 tháng 2 năm 2021

Phát hành androidx.camera:camera-camera2:1.1.0-alpha02, androidx.camera:camera-core:1.1.0-alpha02androidx.camera:camera-lifecycle:1.1.0-alpha02. Phiên bản 1.1.0-alpha02 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm API ProcessCameraProvider.getAvailableCameraInfos() để truy xuất trực tiếp thông tin về các máy ảnh có sẵn, cụ thể là thông tin về tất cả máy ảnh của thiết bị hoặc các máy ảnh do CameraSelector lựa chọn được cung cấp trong CameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector). (Ieac08)

Sửa lỗi

  • Hiện tại, CameraX cố gắng buộc mở một máy ảnh trong lần thử đầu tiên. Việc này có thể khiến CameraX đánh cắp máy ảnh của các ứng dụng máy ảnh khác khi ứng dụng có mức độ ưu tiên cao hơn. (Iab069, b/175820568)
  • Khắc phục lỗi kiểm thử Robolectric khi setAvailableCamerasLimiter được sử dụng trong CameraXConfig. (Ice307)
  • Thay đổi này có thể xảy ra ngoại lệ khi hàng đợi hình ảnh đạt số lượng tối đa trong ImageAnalysis. Vì vậy, thay vì gặp sự cố, bạn có thể nhận thấy các trường hợp sử dụng khác bị treo hoặc chậm, ví dụ như bản xem trước bị treo/bị chậm. (Ic12da, b/175851631)
  • Khắc phục lỗi ExtensionErrorListener để báo cáo lỗi khi chỉ liên kết Preview hoặc ImageCapture. (I5ae39)
  • Khắc phục hồi quy hiệu suất của ImageCapture bằng cách xoá thông tin xác thực vị trí lưu hình ảnh trước khi chụp ảnh. Sau khi thực hiện thay đổi này, nếu vị trí lưu không hợp lệ, sẽ mất thêm nhiều thời gian để nhận được phản hồi lỗi vì hệ thống sẽ cố lưu hình ảnh sau khi chụp ảnh. (I1fd4e, b/177061560)
  • Khắc phục hồi quy hiệu suất của ImageCapture bằng loại "Tệp" OutputFileOptions (I5164a, b/177061560)
  • Cập nhật tài liệu để đề xuất không sử dụng ProcessCameraProvider.configureInstance(...) trong mã thư viện. (Ib8a9f)

Phiên bản 1.1.0-alpha01

Ngày 27 tháng 1 năm 2021

Phát hành androidx.camera:camera-camera2:1.1.0-alpha01, androidx.camera:camera-core:1.1.0-alpha01androidx.camera:camera-lifecycle:1.1.0-alpha01. Phiên bản 1.1.0-alpha01 bao gồm các thay đổi sau.

Sửa lỗi

  • Giải pháp tạm thời cho dữ liệu hình ảnh định dạng JPEG bị hỏng gián đoạn trên máy ảnh mặt sau SM-G930T. (I52001, b/159831206)
  • Sửa lỗi IllegalArgumentException xảy ra khi mọi kích thước được hỗ trợ của bản xem trước đều nhỏ hơn 640 x 480 và kích thước hiển thị lớn hơn 640 x 480. (I2a63c, b/150506192)
  • Theo mặc định, các tài nguyên trong thư viện chưa được khai báo rõ ràng (ví dụ: qua public.xml) sẽ ở chế độ riêng tư. (Ia1dcc, b/170882230)

Camera-Camera2, Camera-Core, & Camera-Lifecycle Phiên bản 1.0.2

Phiên bản 1.0.2

Ngày 29 tháng 9 năm 2021

Phát hành androidx.camera:camera-camera2:1.0.2, androidx.camera:camera-core:1.0.2androidx.camera:camera-lifecycle:1.0.2. Phiên bản 1.0.2 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi ảnh bị mờ ở chế độ MAXIMIZE_QUALITY. (I173a9, b/193823892)
  • Khắc phục lỗi khi chụp ảnh bằng đèn flash bị tối trên nhiều thiết bị. (I4e510)

Camera-Camera2, Camera-Core, & Camera-Lifecycle Phiên bản 1.0.1

Phiên bản 1.0.1

Ngày 21 tháng 7 năm 2021

Phát hành androidx.camera:camera-camera2:1.0.1, androidx.camera:camera-core:1.0.1androidx.camera:camera-lifecycle:1.0.1. Phiên bản 1.0.1 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi ListenableFuture trả về trong setZoomRatiosetLinearZoom không thể hoàn tất trên một số thiết bị Android 11 (I716d7)

  • Khắc phục lỗi máy ảnh bị treo khi đóng trạng thái máy ảnh trên một số thiết bị và gây ra hiện tượng chế độ xem trước hiển thị màn hình đen. (I34c99)

Camera-Camera2, Camera-Core, & Camera-Lifecycle Phiên bản 1.0.0

Phiên bản 1.0.0

Ngày 5 tháng 5 năm 2021

Phát hành androidx.camera:camera-camera2:1.0.0, androidx.camera:camera-core:1.0.0androidx.camera:camera-lifecycle:1.0.0. Phiên bản 1.0.0 bao gồm các thay đổi sau.

Các tính năng chính của phiên bản 1.0.0

  • CameraX hỗ trợ tính năng Preview, ImageCaptureImageAnalysis
  • CameraX quản lý vòng đời của máy ảnh trong một API dễ dàng sử dụng
  • CameraX hướng đến cung cấp tầng tương thích giúp khắc phục nhiều lỗi trong Hệ sinh thái máy ảnh của Android

Lỗi đã biết

Phiên bản 1.0.0-rc05

Ngày 21 tháng 4 năm 2021

Phát hành androidx.camera:camera-camera2:1.0.0-rc05, androidx.camera:camera-core:1.0.0-rc05androidx.camera:camera-lifecycle:1.0.0-rc05. Phiên bản 1.0.0-rc05 bao gồm các thay đổi sau.

Sửa lỗi

  • Sửa lỗi ImageCapture sử dụng đèn flash ở chế độ bật/tự động làm hình ảnh chụp trên Samsung Galaxy S7 bị mờ. (I30001)

Phiên bản 1.0.0-rc04

Ngày 24 tháng 3 năm 2021

Phát hành androidx.camera:camera-camera2:1.0.0-rc04, androidx.camera:camera-core:1.0.0-rc04androidx.camera:camera-lifecycle:1.0.0-rc04. Phiên bản 1.0.0-rc04 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi khởi chạy trên các thiết bị UMIDIGI BISON (I57d9e, b/180818665)

Phiên bản 1.0.0-rc03

Ngày 24 tháng 2 năm 2021

Phát hành androidx.camera:camera-camera2:1.0.0-rc03, androidx.camera:camera-core:1.0.0-rc03androidx.camera:camera-lifecycle:1.0.0-rc03. Phiên bản 1.0.0-rc03 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi định dạng trong tài liệu của ProcessCameraProvider#getInstance
  • Khắc phục lỗi kiểm thử Robolectric khi setAvailableCamerasLimiter được sử dụng trong CameraXConfig.
  • Khắc phục hồi quy hiệu suất của ImageCapture bằng cách xoá thông tin xác thực vị trí lưu hình ảnh trước khi chụp ảnh. Sau khi thực hiện thay đổi này, nếu vị trí lưu không hợp lệ, sẽ mất nhiều thời gian hơn để nhận được phản hồi lỗi vì hệ thống sẽ cố lưu hình ảnh sau khi được chụp vào vị trí lưu không hợp lệ đó
  • Thay đổi này có thể xảy ra ngoại lệ khi hàng đợi hình ảnh đạt số lượng tối đa trong ImageAnalysis. Vì vậy, thay vì gặp sự cố, bạn có thể nhận thấy các trường hợp sử dụng khác bị treo hoặc chậm, ví dụ như bản xem trước bị treo/bị chậm.
  • Giải pháp tạm thời cho dữ liệu hình ảnh định dạng JPEG bị hỏng gián đoạn trên máy ảnh mặt sau SM-G930T. (I52001, b/159831206)
  • Thay đổi này có thể xảy ra ngoại lệ khi hàng đợi hình ảnh đạt số lượng tối đa trong ImageAnalysis. Vì vậy, thay vì gặp sự cố, bạn có thể nhận thấy các trường hợp sử dụng khác bị treo hoặc chậm, ví dụ như bản xem trước bị treo/bị chậm. (Ic12da, b/175851631)
  • Khắc phục lỗi kiểm thử Robolectric khi setAvailableCamerasLimiter được sử dụng trong CameraXConfig. (Ice307)
  • Khắc phục hồi quy hiệu suất của ImageCapture bằng cách xoá thông tin xác thực vị trí lưu hình ảnh trước khi chụp ảnh. Sau khi thực hiện thay đổi này, nếu vị trí lưu không hợp lệ, sẽ mất thêm nhiều thời gian để nhận được phản hồi lỗi vì hệ thống sẽ cố lưu hình ảnh sau khi chụp ảnh. (I1fd4e, b/177061560)
  • Khắc phục hồi quy hiệu suất của ImageCapture bằng loại "Tệp" OutputFileOptions (I5164a, b/177061560)

Phiên bản 1.0.0-rc02

Ngày 27 tháng 1 năm 2021

Phát hành androidx.camera:camera-camera2:1.0.0-rc02, androidx.camera:camera-core:1.0.0-rc02androidx.camera:camera-lifecycle:1.0.0-rc02. Phiên bản 1.0.0-rc02 bao gồm các thay đổi sau.

Sửa lỗi

  • Sửa lỗi IllegalArgumentException xảy ra khi mọi kích thước được hỗ trợ của bản xem trước đều nhỏ hơn 640 x 480 và kích thước hiển thị lớn hơn 640 x 480. (b/150506192)
  • Giới hạn số lần thử mở lại máy ảnh. Mặc dù cố gắng khôi phục một số vấn đề nhất định xảy ra khi mở máy ảnh, CameraX sẽ không cố gắng mở lại máy ảnh liên tục mà thay vào đó sẽ dừng sau khi thử lại trong 10 giây.I435d2

  • Sửa lỗi IllegalArgumentException xảy ra khi mọi kích thước được hỗ trợ của bản xem trước đều nhỏ hơn 640 x 480 và kích thước hiển thị lớn hơn 640 x 480. (I2a63c, b/150506192)

Phiên bản 1.0.0-rc01

Ngày 16 tháng 12 năm 2020

Phát hành androidx.camera:camera-camera2:1.0.0-rc01, androidx.camera:camera-core:1.0.0-rc01androidx.camera:camera-lifecycle:1.0.0-rc01. Phiên bản 1.0.0-rc01 bao gồm các thay đổi sau.

Thay đổi về API

  • Thay đổi CameraFilter và Camera2Filter để lấy CameraInfo. (I6883d)
  • Thêm lớp thử nghiệm Camera2CameraControl để cho phép tương tác động với API Camera2. (I45cf3)
  • Đổi tên Camera2CameraInfo#fromCameraInfo thành #from. (Ia2bd6)
  • Thêm một API setAvailableCamerasLimiter thử nghiệm vào CameraXConfig để cho phép các ứng dụng tối ưu hoá độ trễ khởi chạy bằng cách tránh khởi chạy các máy ảnh không sử dụng. (I6cf88)
  • Thêm phương pháp thử nghiệm CameraXConfig.Builder#setMinimumLoggingLevel() để cho phép đặt mức ghi nhật ký tối thiểu cho nhật ký CameraX. Khi không được cài đặt, nó mặc định cài đặt Log#DEBUG. (Ic3245)

Sửa lỗi

  • Giải pháp tạm thời cho dữ liệu hình ảnh định dạng JPEG bị hỏng gián đoạn trên máy ảnh mặt sau SM-G930V. (I5aca5, b/159831206)
  • Khắc phục lỗi chụp ảnh không nhận được kết quả khi đèn flash ở chế độ luôn bật/bật và trong môi trường tối trên thiết bị Samsung SM-A716. (If98b2, b/172036589)
  • Khắc phục lỗi không thể dừng Preview bằng cách gọi Preview.setSurfaceProvider(null). (I3ac18)
  • Khắc phục lỗi phương hướng khi chụp ảnh 4:3 trên một số thiết bị. (I0e3fb, b/171492111)

Camera Camera2, Core, & Lifecycle Phiên bản 1.0.0-beta12

Ngày 11 tháng 11 năm 2020

Phát hành androidx.camera:camera-camera2:1.0.0-beta12, androidx.camera:camera-core:1.0.0-beta12androidx.camera:camera-lifecycle:1.0.0-beta12. Phiên bản 1.0.0-beta12 bao gồm các thay đổi sau.

Sửa lỗi

  • Tắt đèn flash tự động trên các thiết bị Samsung A3 để khắc phục sự cố chụp ảnh bằng chế độ AE tự động bật đèn flash trên các thiết bị Samsung A3. (Ia5fe3, b/157535165)
  • Sửa lỗi khiến hình ảnh xem trước bị giãn trên thiết bị Nexus 4 chạy Android L (API cấp 21 và 22). (I4d407, b/158749159)
  • Việc cài đặt lớp cơ sở OnImageCapturedCallback#onCaptureSuccess không còn đóng hình ảnh nữa. Điều này giúp các nhà phát triển ngăn chặn các hành vi không mong muốn. Các nhà phát triển không nên dựa vào super.onCaptureSuccess để đóng hình ảnh. (Ifbf9c)
  • Biến thể androidx của chú thích Experimental không còn được dùng để cung cấp tính năng tương đương cho Kotlin. Chúng tôi đã thay thế nó bằng chú thích RequiresOptIn và công cụ phân tích phát hiện lỗi sai (Linter) cho Java đã được cập nhật để hỗ trợ cả chú thích Kotlin mới và biến thể androidx mới. (I52495, b/151331381)

Camera-Camera2 Phiên bản 1.0.0-beta11

Ngày 14 tháng 10 năm 2020

Phát hành androidx.camera:camera-camera2:1.0.0-beta11. Phiên bản 1.0.0-beta11 bao gồm các thay đổi sau.

Tính năng mới

  • Hỗ trợ API Android 11 CONTROL_ZOOM_RATIO để thu phóng trên các thiết bị Android 11 trở lên có chứa CONTROL_ZOOM_RATIO_RANGE hợp lệ. (I62cc6)

Sửa lỗi

  • Sửa lỗi NumberFormatException xảy ra khi mã nhận dạng máy ảnh không phải là số nguyên. (Ib2228)
  • Cải thiện độ trễ khi khởi chạy CameraX và bindToLifecycle (I61dc5)
  • Không cần phải khởi chạy CameraX để hoàn tất quá trình tạo UseCase. Tất cả cấu hình cài đặt cụ thể được đặt trên UseCase sau khi được đính kèm vào một thực thể Camera dành cho API công khai ProcessCameraProvider.bindToLifecycle(). (Ia5411)
  • <UseCase>.getTargetRotation() sẽ trả về Surface.ROTATION_0 nếu được gọi trước khi được đính kèm vào một thực thể Camera trừ phi targetRotation đã được đặt trong Builder hoặc UseCase. (I80fcd)

Camera-Core Phiên bản 1.0.0-beta11

Ngày 14 tháng 10 năm 2020

Phát hành androidx.camera:camera-core:1.0.0-beta11. Phiên bản 1.0.0-beta11 bao gồm các thay đổi sau.

Tính năng mới – Hỗ trợ API CONTROL_ZOOM_RATIO Android 11 để thu phóng trên các thiết bị sử dụng phiên bản Android 11 trở lên có chứa CONTROL_ZOOM_RATIO_RANGE hợp lệ. (I62cc6)

Sửa lỗi

  • Sửa lỗi NumberFormatException xảy ra khi mã nhận dạng máy ảnh không phải là số nguyên. (Ib2228)
  • Không cần phải khởi chạy CameraX để hoàn tất quá trình tạo UseCase. Tất cả cấu hình cài đặt cụ thể được đặt trên UseCase sau khi được đính kèm vào một thực thể Camera dành cho API công khai ProcessCameraProvider.bindToLifecycle(). (Ia5411)
  • <UseCase>.getTargetRotation() sẽ trả về Surface.ROTATION_0 nếu được gọi trước khi được đính kèm vào một thực thể Camera trừ phi targetRotation đã được đặt trong Builder hoặc UseCase. (I80fcd)

Camera-Core phiên bản 1.0.0-beta10

Ngày 23 tháng 9 năm 2020

Phát hành androidx.camera:camera-core:1.0.0-beta10. Phiên bản 1.0.0-beta10 bao gồm các thay đổi sau.

Sửa lỗi

  • Sửa lỗi xác thực vị trí lưu tệp ảnh đã chụp (I8c565, b/167697553)

Camera-Camera2 Phiên bản 1.0.0-beta10

Ngày 23 tháng 9 năm 2020

Phát hành androidx.camera:camera-camera2:1.0.0-beta10. Phiên bản 1.0.0-beta10 bao gồm các thay đổi sau.

Sửa lỗi

Camera-Camera2 Phiên bản 1.0.0-beta09

Ngày 16 tháng 9 năm 2020

Phát hành androidx.camera:camera-camera2:1.0.0-beta09. Phiên bản 1.0.0-beta09 bao gồm các thay đổi sau.

Thay đổi về API

  • Thay vì cung cấp các phương thức tĩnh, Camera2CameraInfo lấy thực thể CameraInfo khi được tạo để truy xuất thông tin có liên quan đến Camera2. (I5b844)

Sửa lỗi

  • Khắc phục lỗi tỷ lệ khung hình mục tiêu trên thiết bị máy tính bảng. Chọn kích thước 16:9 khi đặt tỷ lệ khung hình mục tiêu là AspectRatio.RATIO_16_9. (Ib7fcf, b/151969438)
  • Khai báo ngoại lệ InitializationException để ứng dụng có thể xử lý lỗi AssertionError xảy ra khi tạo CameraCharacteristics. (I89c8c, b/160524721)
  • Thêm giao diện thử nghiệm cho ExposureCompensation (If96c7)

Camera-Core Phiên bản 1.0.0-beta09

Ngày 16 tháng 9 năm 2020

Phát hành androidx.camera:camera-core:1.0.0-beta09. Phiên bản 1.0.0-beta09 bao gồm các thay đổi sau.

Thay đổi về API

  • Khắc phục lỗi khung nhìn được đánh dấu là không rỗng trên UseCaseGroup. Nhà phát triển có thể tạo một khung nhìn khi không cần cài đặt khung nhìn. (Ie3d2e)
  • Thêm giao diện thử nghiệm cho ExposureCompensation (If96c7)
  • Cho phép xoay phương hướng tuỳ ý trong Preview. Thông tin chuyển đổi được tính toán và trả về cho người dùng ngay lập tức thông qua lệnh gọi lại TranformationInfoListener mới. (I21470)

Sửa lỗi

  • Khắc phục lỗi đèn flash không tắt trên một số thiết bị. Điều này xảy ra khi chế độ flash được đặt thành FLASH_MODE_ON để chụp ảnh và được thay đổi thành FLASH_MODE_OFF khi bật flash. Dấu hiệu này giống như đang bật chế độ đèn pin. (Ib4451, b/162568128)
  • Buộc PreviewView sử dụng TextureView nếu hiệu ứng tiện ích được bật và việc cài đặt thư viện nhà cung cấp cần phải thực hiện một quy trình đặc biệt trên khu vực đầu ra. (I0c3cc)
  • Khắc phục lỗi rò rỉ Activity/Fragment khi ngữ cảnh Activity/Fragment được truyền vào ProcessCameraProvider.getInstance(Context).

Lỗi đã biết

  • Khi cài đặt ViewPort (Khung nhìn), khung hình chữ nhật để cắt ảnh của ImageCapture có thể không chính xác trên các thiết bị xoay hình ảnh chụp lưu trữ tại vùng đệm trong HAL Lỗi này sẽ được khắc phục trong bản phát hành tiếp theo.

Camera-Camera2 Phiên bản 1.0.0-beta08

Ngày 19 tháng 8 năm 2020

Phát hành androidx.camera:camera-camera2:1.0.0-beta08. Phiên bản 1.0.0-beta08 bao gồm các thay đổi sau.

Sửa lỗi

  • Tối ưu hoá bindToLifecycle để chạy nhanh trên thread chính. (I1d57e)
  • DisplayOrientedMeteringPointFactory lấy một thực thể CameraInfo thay vì CameraSelector, nhờ đó, sẽ có ánh xạ trực tiếp đến Camera mà đối tượng nhà máy (factory) sẽ tạo điểm trên đó. Tất cả lớp sử dụng DisplayOrientedMeteringPointFactory cũng lấy một thực thể CameraInfo thay vì CameraSelector. (I400c1)
  • Sửa lỗi phân nhóm kích thước tỷ lệ khung hình với độ phân giải tự động khi chọn kích thước mod16 (864 x 480) với tỷ lệ khung hình 16:9 nếu cài đặt độ phân giải mục tiêu là 2016 x 1080 và kích thước 1920 x 1080 với tỷ lệ khung hình 16:9 được hỗ trợ. (I53167, b/159363774)
  • Khắc phục lỗi CameraControl không hoạt động trong trường hợp nhiều thread truy cập và thay đổi dữ liệu liên tục (I2279f, b/152333890, b/160714166)

Camera-Core Phiên bản 1.0.0-beta08

Ngày 19 tháng 8 năm 2020

Phát hành androidx.camera:camera-core:1.0.0-beta08. Phiên bản 1.0.0-beta08 bao gồm các thay đổi sau.

Thay đổi về API

  • DisplayOrientedMeteringPointFactory lấy thực thể CameraInfo thay vì CameraSelector, nhờ đó, sẽ có ánh xạ trực tiếp đến Camera mà đối tượng nhà máy (factory) sẽ tạo điểm trên đó. Tất cả lớp sử dụng DisplayOrientedMeteringPointFactory cũng đều lấy một thực thể CameraInfo thay vì CameraSelector. (I400c1)

Sửa lỗi

  • Đối với ảnh chụp, hãy ghi đè cờ lật hình theo chiều ngang trong siêu dữ liệu dựa trên hướng máy ảnh. (I28499)
  • Quá trình khởi chạy không còn gặp sự cố khi sử dụng một Context (Ngữ cảnh) không trả về đối tượng Application (Ứng dụng) qua Context.getApplicationContext(). (I3d3c9, b/160817073)

Camera-Camera2 Phiên bản 1.0.0-beta07

Ngày 22 tháng 7 năm 2020

Phát hành androidx.camera:camera-camera2:1.0.0-beta07. Phiên bản 1.0.0-beta07 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi bản xem trước bị giãn trên thiết bị Android 5.0 đời cũ. (I0c03a)
  • Loại trừ một số kích thước định dạng JPEG hỗ trợ mà sẽ gây ra lỗi WYSIWYG trên một số thiết bị. (Ib5128)

Camera-Core Phiên bản 1.0.0-beta07

Ngày 22 tháng 7 năm 2020

Phát hành androidx.camera:camera-core:1.0.0-beta07. Phiên bản 1.0.0-beta07 bao gồm các thay đổi sau.

Thay đổi về API

  • Hợp nhất kiểu điều chỉnh kích thước FIT_CENTER, FIT_STARTFIT_END với FIT. FITcó nghĩa là kích cỡ khuôn hình chữ nhật cắt ảnh sẽ tương đương với kích cỡ tối đa của khuôn hình chữ nhật cảm biến. (Ia73c3)
  • Bản xem trước khuôn hình chữ nhật cắt ảnh được cấu hình theo khung nhìn. Chỉ người dùng cuối mới thấy được khu vực che khuất của khuôn hình chữ nhật cắt ảnh. (I142a4)

Sửa lỗi

  • Khắc phục lỗi bản xem trước bị giãn trên thiết bị Android 5.0 đời cũ. (I0c03a)
  • Sửa lỗi ngoại lệ ConcurrentModificationException khi huỷ liên kết các trường hợp sử dụng. (I371c0)

Camera-Camera2 Phiên bản 1.0.0-beta06

Ngày 24 tháng 6 năm 2020

Phát hành androidx.camera:camera-camera2:1.0.0-beta06. Phiên bản 1.0.0-beta06 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm các giao diện thử nghiệm để lọc máy ảnh theo mã nhận dạng máy ảnh và CameraCharacteristics. (I28f61)

Sửa lỗi

  • Khắc phục lỗi khiến startFocusAndMetering không thể lấy nét thành công trên Samsung Galaxy S7. (If3be7, b/159039233)
  • Khắc phục lỗi không thể đóng máy ảnh sau khi thoát khỏi ứng dụng. (I7a7b3)
  • Sửa lỗi chế độ xem trước gặp sự cố do liên tục chuyển đổi máy ảnh khi sử dụng hoạt động triển khai SurfaceView của PreviewView (I920ce)
  • CameraControl#startFocusAndMetering sẽ không thành công nếu không có MeteringPoint được chỉ định có thể tạo các khuôn hình chữ nhật đo sáng hợp lệ. (Id53ce)

Camera-Core Phiên bản 1.0.0-beta06

Ngày 24 tháng 6 năm 2020

Phát hành androidx.camera:camera-core:1.0.0-beta06. Phiên bản 1.0.0-beta06 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm các giao diện thử nghiệm để lọc máy ảnh theo mã nhận dạng máy ảnh và CameraCharacteristics. (I28f61)

Sửa lỗi

  • CameraX hiện có thể được định cấu hình bằng ProcessCameraProvider#configureInstance() trước khi gọi ProcessCameraProvider#getInstance(). Thay đổi này cho phép tuỳ chỉnh CameraXConfig mà không yêu cầu cài đặt CameraXConfig.Provider trong lớp Application. (Ia1a8d)
  • CameraControl#startFocusAndMetering sẽ không thành công nếu không có MeteringPoint được chỉ định có thể tạo các khuôn hình chữ nhật đo sáng hợp lệ. (Id53ce)

Camera-Camera2 Phiên bản 1.0.0-beta05

Ngày 10 tháng 6 năm 2020

Phát hành androidx.camera:camera-camera2:1.0.0-beta05. Phiên bản 1.0.0-beta05 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục sự cố lúc khởi động ứng dụng khi khởi chạy CameraX trong lúc điện thoại đang ở chế độ Không làm phiền InitializationException chứa CameraUnavailableException mà sẽ được đặt thành ListenableFuture của kết quả khởi chạy thay vì khiến ứng dụng ngừng hoạt động. (I9909a, b/149413835)
  • Khắc phục lỗi khi gọi startFocusAndMetering trên các thiết bị mà CONTROL_AF_STATE là rỗng. (Ife55e, b/157084254)

Camera-Core Phiên bản 1.0.0-beta05

Ngày 10 tháng 6 năm 2020

Phát hành androidx.camera:camera-core:1.0.0-beta05. Phiên bản 1.0.0-beta05 bao gồm các thay đổi sau.

Thay đổi về API

  • Khắc phục sự cố lúc khởi động ứng dụng khi khởi chạy CameraX trong lúc điện thoại đang ở chế độ Không làm phiền InitializationException chứa CameraUnavailableException mà sẽ được đặt thành ListenableFuture của kết quả khởi chạy thay vì khiến ứng dụng ngừng hoạt động. (I9909a, b/149413835)

Sửa lỗi

  • Cập nhật javadocs cho setTargetResolutionsetTargetRotation. (Iae16f)

Camera-Camera2 Phiên bản 1.0.0-beta04

Ngày 27 tháng 5 năm 2020

Phát hành androidx.camera:camera-camera2:1.0.0-beta04. Phiên bản 1.0.0-beta04 bao gồm các thay đổi sau.

Sửa lỗi

  • Cho phép ứng dụng đặt tham số yêu cầu chụp ảnh camera2 bất kỳ qua Camera2Interop mà không gây ra sự cố. Lưu ý rằng nếu có vấn đề phát sinh là do việc ghi đè các tham số. Chúng tôi không đảm bảo về tính ổn định và hành vi khi ghi đè tham số bằng Camera2Interop. (Ibe5a1, b/149103700)
  • Khắc phục lỗi tự động khởi chạy khi dùng một ứng dụng trên thiết bị đang sử dụng bản địa hoá giả (pseudo-localization). (I3bef3, b/154767663)
  • Chuyển đổi nhật ký lỗi liên quan đến trường hợp sử dụng đã tách thành nhật ký gỡ lỗi trên Camera2CameraImpl. (I1a565, b/154422490)
  • Sửa lỗi hình ảnh được chụp đôi khi quá tối mặc dù đã bật flash. (I5d9fa, b/149729613)
  • Khắc phục lỗi vùng đệm trong ImageProxy từ ImageCapture không được đưa về 0 (I0c455, b/153249512)
  • Khắc phục các lỗi chỉ liên kết được ImageCapture: (1) Không chụp được ảnh MAX_QUALITY; (2) Chất lượng hình ảnh xấu do hệ thống tự động phơi sáng không hoạt động. (I17782, b/145326998)
  • Cải thiện độ tin cậy của việc mở lại máy ảnh khi CameraX bị ngắt kết nối do một quy trình khác hoặc đường dẫn mã đánh cắp máy ảnh (I1fbc3, b/153714651)

Camera-Core Phiên bản 1.0.0-beta04

Ngày 27 tháng 5 năm 2020

Phát hành androidx.camera:camera-core:1.0.0-beta04. Phiên bản 1.0.0-beta04 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm API thử nghiệm CameraXConfig.Builder#setSchedulerHandler() để đặt trình xử lý mà ngăn xếp máy ảnh CameraX sử dụng nội bộ. API mới này cùng với CameraXConfig.Builder#setCameraExecutor() sẽ cho phép toàn quyền kiểm soát các thread mà ngăn xếp máy ảnh CameraX sử dụng. (I7bf32, b/121160431)

Sửa lỗi

  • Khắc phục sự cố trong ImageAnalysis lúc truy cập ImageProxy sau khi ImageReaderProxy đóng. Lần lỗi này cũng làm cho tất cả ImageProxyAnalyzer nhận được phải được đóng trước khi đóng ImageReaderProxy. (I4b299, b/145956416, b/154155377, b/156357269)
  • Xoá tham số CameraInfo khỏi PreviewView#createSurfaceProvider(), PreviewView hiện sẽ truy xuất tham số này từ SurfaceRequest. (If18f0, b/154652477)
  • Khắc phục lỗi tự động khởi chạy khi dùng một ứng dụng trên thiết bị đang sử dụng bản địa hoá giả (pseudo-localization). (I3bef3, b/154767663)
  • Sửa lỗi hình ảnh được chụp đôi khi quá tối mặc dù đã bật flash. (I5d9fa, b/149729613)
  • Khắc phục lỗi liên quan đến ImageAnalysis, trong đó nhiều lệnh gọi đến setAnalyzer/clearAnalyzer sẽ dẫn đến việc trình phân tích không nhận được hình ảnh để phân tích. (I6169f, b/151605317, b/153514544)
  • Sửa lỗi vùng đệm trong ImageProxy từ ImageCapture không được đưa về 0 (I0c455, b/153249512)
  • Sửa lỗi máy ảnh đầu tiên trong danh sách được CameraManager hỗ trợ không phải lúc nào cũng được chọn để sử dụng. (I4c624, b/153418028)
  • Khắc phục sự cố gián đoạn do việc đặt Preview.SurfaceProvider không giải phóng được khu vực đã được yêu cầu trước đó. “java.lang.IllegalStateException: Camera surface session should only fail with request cancellation” (I8e4e7, b/155936225)

Camera-Camera2 Phiên bản 1.0.0-beta03

Ngày 15 tháng 4 năm 2020

Phát hành androidx.camera:camera-camera2:1.0.0-beta03. Phiên bản 1.0.0-beta03 bao gồm các thay đổi sau.

Sửa lỗi

  • Sửa lỗi để hỗ trợ việc phát hành camera-core

Camera-Core Phiên bản 1.0.0-beta03

Ngày 15 tháng 4 năm 2020

Phát hành androidx.camera:camera-core:1.0.0-beta03. Phiên bản 1.0.0-beta03 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi hồi quy từ beta03, trong đó lệnh gọi bindToLifecycle()UseCase bằng 0 sẽ dẫn đến trường hợp khai báo ngoại lệ. Việc này ngăn việc truy xuất Camera mà không cần liên kết với một UseCase.

Camera-Camera2 Phiên bản 1.0.0-beta02

Ngày 1 tháng 4 năm 2020

Phát hành androidx.camera:camera-camera2:1.0.0-beta02. Phiên bản 1.0.0-beta02 bao gồm các thay đổi sau.

Sửa lỗi

  • Sửa ImageInfo.getRotationDegrees() từ ImageProxy do ImageCapture tạo để khớp với giá trị xoay hướng EXIF. (Id4281, b/150802561)
  • Không cần phải sắp xếp rõ ràng thứ tự các phần phụ thuộc CameraX trong build.gradle để cài đặt CameraX/Camera2 mặc định nữa. Đối với các trường hợp bắt buộc phải khai báo các phần phụ thuộc nghiêm ngặt, mọi phần phụ thuộc CameraX giờ đây có thể được đưa vào tệp bản dựng. (I46e88)
  • Khắc phục lỗi IllegalArgumentException xảy ra trên các thiết bị có kích thước màn hình nhỏ hơn 640x480. (Ife3f2, b/150506192)
  • Sửa bindToLifecycle để chỉ điều chỉnh UseCase nếu liên kết thành công. Trước đây, khi gọi bindToLifecycle để tính toán độ phân giải thì sẽ cập nhật UseCase. Hiện không cần phải cập nhật UseCase để thực hiện các phép tính (I78d9e)

Camera-Core Phiên bản 1.0.0-beta02

Ngày 1 tháng 4 năm 2020

Phát hành androidx.camera:camera-core:1.0.0-beta02. Phiên bản 1.0.0-beta02 bao gồm các thay đổi sau.

Sửa lỗi

  • Sửa ImageInfo.getRotationDegrees() từ ImageProxy do ImageCapture tạo để khớp với giá trị xoay hướng EXIF. (Id4281, b/150802561)
  • Sửa bindToLifecycle để chỉ điều chỉnh UseCase nếu liên kết thành công. Trước đây, khi gọi bindToLifecycle để tính toán độ phân giải thì sẽ cập nhật UseCase. Hiện không cần phải cập nhật UseCase để thực hiện các phép tính (I78d9e)
  • Khắc phục lỗi không cập nhật phiên chụp ảnh của trường hợp sử dụng Preview khi khu vực xem trước thay đổi sau khi gọi Preview.setSurfaceProvider() nhiều hơn một lần.

Camera-Camera2 Phiên bản 1.0.0-beta01

Ngày 26 tháng 2 năm 2020

Phát hành androidx.camera:camera-camera2:1.0.0-beta01. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.

Sửa lỗi

  • Đổi tên SurfaceRequest.setSurface(Surface) thành SurfaceRequest.provideSurface(Surface)SurfaceRequest.setWillNotComplete() thành SurfaceRequest.willNotProvideSurface(). (I224fe)
  • Sửa lỗi tỷ lệ khung hình của hình ảnh đã lưu không chính xác sau khi thay đổi giá trị xoay phương hướng bằng ImageCapture.setTargetRotation(). (I474ea, b/148763432)
  • Sửa lỗi khởi chạy các biến thể ứng dụng đã bật ProGuard bằng cách duy trì cờ đặt trình cung cấp CameraXConfig mặc định. (I2d6c1)

Camera-Core Phiên bản 1.0.0-beta01

Ngày 26 tháng 2 năm 2020

Phát hành androidx.camera:camera-core:1.0.0-beta01. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.

Thay đổi về API

  • Thay thế ListenableFuture trên SurfaceRequest.provideSurface() bằng ExecutorCallback. Việc này sẽ đơn giản hoá API bằng cách không còn yêu cầu xử lý các trường hợp ngoại lệ trên provideSurface() và đảm bảo rằng không thể huỷ lệnh gọi lại provideSurface(). Mục đích là để tránh sự cố trên các thiết bị cũ do việc giải phóng sớm các khu vực. Đối tượng SurfaceRequest.Result hiện được dùng để theo dõi cách SurfaceRequest sử dụng Surface cho sẵn. (I7854b)
  • Đổi tên SurfaceRequest.setSurface(Surface) thành SurfaceRequest.provideSurface(Surface)SurfaceRequest.setWillNotComplete() thành SurfaceRequest.willNotProvideSurface(). (I224fe)

Sửa lỗi

  • Sửa lỗi tỷ lệ khung hình của hình ảnh đã lưu không chính xác sau khi thay đổi giá trị xoay phương hướng bằng ImageCapture.setTargetRotation(). (I474ea, b/148763432)
  • Sửa lỗi khởi chạy các biến thể ứng dụng đã bật ProGuard bằng cách duy trì cờ đặt trình cung cấp CameraXConfig mặc định. (I2d6c1)
  • Cập nhật tài liệu cho các API chế độ flash để bao gồm các giá trị có thể có. (I4a3ec)

Camera-Camera2 Phiên bản 1.0.0-alpha10

Ngày 10 tháng 2 năm 2020

Phát hành androidx.camera:camera-camera2:1.0.0-alpha10. Phiên bản 1.0.0-alpha10 bao gồm các thay đổi sau.

Sửa lỗi

  • Cải thiện độ ổn định trên các thiết bị INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY bằng cách đảm bảo Camera2 chỉ giữ lại Surface trong thời gian sử dụng. (I9dac2)
  • Sửa lỗi bản xem trước thiếu sáng trên các thiết bị LEGACY bằng cách điều chỉnh CONTROL_AE_TARGET_FPS_RANGE đúng cách. (1224638)

Camera-Core Phiên bản 1.0.0-alpha10

Ngày 10 tháng 2 năm 2020

Phát hành androidx.camera:camera-core:1.0.0-alpha10. Phiên bản 1.0.0-alpha10 bao gồm các thay đổi sau.

Thay đổi về API

  • Cập nhật ImageCapture để cho phép lưu hình ảnh vào UriOutputStream. Kết hợp nhiều phương thức nạp chồng takePicture thành một. Cập nhật ứng dụng kiểm thử để dùng Uri làm ví dụ chuẩn hoá. (Ia3bec)
  • Đổi tên Preview.PreviewSurfaceProvider thành Preview.SurfaceProvider. SurfaceProvider không còn yêu cầu nhà phát triển tạo ListenableFuture riêng và việc cung cấp Surface hiện đã được thực hiện thông qua đối tượng SurfaceRequest mới. Phương thức Preview.getPreviewSurfaceProvider() đã bị xoá do có khả năng sử dụng sai khi Preview được ghép nối với các lớp khác như PreviewView. (I20105)
  • Thêm getTargetRotation()getTargetName() vào Preview. (Iceee7)
  • Thêm getTargetRotation(), getBackpressureStrategy()getImageQueueDepth() trong ImageAnalysis. (I9d6d9)
  • Thêm getTargetRotation()getCaptureMode() trong ImageCapture() (I5bc17)
  • Các đối số trước đây đã được truyền vào ImageCapture.OnImageSavedCallback.onError()ImageCapture.OnImageCapturedCallback.onError() hiện đã được thay thế bằng một đối số duy nhất ImageCaptureException. Đối số này vẫn chứa mọi thông tin đã được truyền trước đó.
  • Xoá tệp mà đối số truyền trước đó trong ImageCapture.OnImageSavedCallback.onImageSaved(). (I750d2)
  • Các lớp PreviewImageCapture hiện được đánh dấu là cuối cùng. (I2500b)
  • API được cập nhật, với phương thức getZoomRatio() ,getMaxZoomRatio() ,getMinZoomRatio()getLinearZoom() củaCameraInfo hợp nhất vào phương thức getZoomState() mà sẽ trả về thực thể ZoomState. (Ib19fe)
  • Xoá các trường API OPTION_TARGET_CLASSOPTION_TARGET_NAME khỏi CameraXConfig vì các trường này chỉ dùng cho thư viện nội bộ. Xoá hàm constructor cho CameraXConfig.Builder. (I96912)
  • Xoá yêu cầu về việc ứng dụng phải kế thừa Application để khởi chạy CameraX. CameraX hiện sẽ được khởi chạy bằng cấu hình Camera2 mặc định, miễn là cấu phần phần mềm camera-camera2 đã có trong build.gradle của ứng dụng. (I58ff5) (b/146923574)

Camera-Camera2 Phiên bản 1.0.0-alpha09

Ngày 22 tháng 1 năm 2020

Phát hành androidx.camera:camera-camera2:1.0.0-alpha09. Phiên bản 1.0.0-alpha09 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm đường dẫn tương tác với camera2 để trích xuất mã nhận dạng máy ảnh Camera2. Bạn có thể trích xuất mã nhận dạng máy ảnh từ CameraInfo bằng Camera2CameraInfo.extractCameraId(). Mã mẫu sau đây cho biết cách sử dụng cách thức này:

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

    Lớp Camera2CameraInfo cần có markerClass ExperimentalCamera2Interop.

Camera-Core Phiên bản 1.0.0-alpha09

Ngày 22 tháng 1 năm 2020

Phát hành androidx.camera:camera-core:1.0.0-alpha09. Phiên bản 1.0.0-alpha09 bao gồm các thay đổi sau.

Thay đổi về API

  • Tham số SurfaceOrientedMeteringPointFactory useCaseForSurface đã được đổi tên thành useCaseForAspectRatio và tài liệu tham chiếu đã được mở rộng.
  • Thay thế phương thức FocusMeteringAction.Builder.from() bằng các hàm constructor FocusMeteringAction.Builder().
  • Xoá DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float). Các ứng dụng phải sử dụng hàm constructor lấy tham số Display và truyền vào màn hình hiện tại.
  • Cải thiện Javadoc cho API lấy nét và đo sáng liên quan đến MeteringMode và Cờ 3A cũng như cách sử dụng tham số Display.
  • Mở rộng tài liệu tham khảo cho setZoomRatiosetLinearZoom.

Sửa lỗi

  • Khắc phục các lỗi khi đóng rồi mở máy ảnh dẫn đến lỗi kiểm tra "Điều kiện tiên quyết".
  • Sửa lỗi ConcurrentModificationException có thể xảy ra khi sử dụng API của tính năng đèn pin và thu phóng.
  • Sửa lỗi để chọn độ phân giải gần với độ phân giải được yêu cầu hơn khi có kích thước mod16.
  • API startFocusMeteringcancelFocusMetering hiện hoạt động như trong tài liệu, với thời gian chính xác và có thể trả về lỗi khi xảy ra.
  • Khắc phục lỗi khi một độ phân giải mục tiêu cụ thể được yêu cầu với tỷ lệ khung hình cắt trên thiết bị không hỗ trợ các kích thước đó. Bây giờ, hệ thống sẽ chọn kích thước không bị cắt với độ phân giải đủ để liên kết với yêu cầu ban đầu nếu có.

Camera-Camera2 Phiên bản 1.0.0-alpha08

Ngày 18 tháng 12 năm 2019

Phát hành androidx.camera:camera-camera2:1.0.0-alpha08. Phiên bản 1.0.0-alpha08 bao gồm các thay đổi sau.

Lỗi đã biết

  • Không phải tất cả tuỳ chọn yêu cầu chụp Camera2 đều hoạt động khi sử dụng khả năng tương tác Camera2. Nếu tuỳ chọn đã yêu cầu không được hỗ trợ, phiên làm việc sẽ không bắt đầu và có thể xảy ra lỗi: 09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination

Sửa lỗi

  • Sửa lỗi màn hình xem trước bị đen sau khi xoay hoặc chuyển đổi máy ảnh cho API cấp 21 và 22.

Thay đổi về API

  • Thử nghiệm: Thêm đường dẫn tương tác camera2 để trích xuất Camera ID.

Camera-Core Phiên bản 1.0.0-alpha08

Ngày 18 tháng 12 năm 2019

Phát hành androidx.camera:camera-core:1.0.0-alpha08. Phiên bản 1.0.0-alpha08 bao gồm các thay đổi sau.

Lỗi đã biết

  • Các ứng dụng sử dụng PreviewView hoặc CameraView có thể có bản xem trước với tỷ lệ khung hình không chính xác. Điều này xảy ra sau khi tạm dừng hoặc tiếp tục trên một số thiết bị FULL, chẳng hạn như Pixel2.

Sửa lỗi

  • Cập nhật tài liệu cho FocusMeteringActionCameraControl.
  • Cài đặt TorchControl cho enableTorch()getTorchState().

Thay đổi về API

  • Ẩn IntDefs và di chuyển hằng số IntDef bên ngoài định nghĩa IntDef.
  • Chuyển rotationDegrees từ lớp OnImageCaptureCallback sang ImageInfo.
  • Chuyển rotationDegrees từ lớp Analyzer sang ImageInfo.

Camera-Camera2 Phiên bản 1.0.0-alpha07

Ngày 4 tháng 12 năm 2019

Phát hành androidx.camera:camera-camera2:1.0.0-alpha07. Phiên bản 1.0.0-alpha07 của camera-camera2 bao gồm các thay đổi sau

  • Camera2Config hiện có sẵn để sử dụng với tính năng khởi chạy và định cấu hình cài đặt dựa trên Camera2 cho CameraX. Bạn có thể xem thêm thông tin chi tiết về cách dùng lớp này trong quy trình khởi chạy trong phần camera-core của ghi chú phát hành.
  • Chức năng tương tác của Camera2 hiện được đánh dấu là thử nghiệm và chuyển sang một gói riêng, androidx.camera.camera2.interop.

Camera-Core Phiên bản 1.0.0-alpha07

Ngày 4 tháng 12 năm 2019

Phát hành androidx.camera:camera-core:1.0.0-alpha07. Phiên bản 1.0.0-alpha07 của camera-core bao gồm các thay đổi sau

Lưu ý rằng bản phát hành Alpha này có một số thay đổi đáng kể trong quá trình chuẩn bị cho bản Beta. Bạn nên xem lại các thay đổi và chia sẻ mọi phản hồi mà mình có trên nhóm Google của CameraX. Đối với những nhà phát triển sử dụng CameraX trong các ứng dụng trên Cửa hàng Play, bạn nên đợi bản phát hành Beta chính thức trước khi nâng cấp thư viện trong các ứng dụng của mình.

Thay đổi về API

  • Lưu ý quan trọng: Khởi tạo CameraX đã thay đổi. Các ứng dụng phải cài đặt CameraXConfig.Provider và sử dụng Camera2Config mặc định do androidx.camera.camera2 cung cấp. Cách sử dụng thông thường là:

    import androidx.camera.camera2.Camera2Config
    import androidx.camera.core.CameraXConfig
    
    public class MyCameraXApplication : Application(),  CameraXConfig.Provider {
        override fun getCameraXConfig(): CameraXConfig {
                return Camera2Config.defaultConfig(this)
        }
    }
    
  • Xoá lớp CameraX. bindToLifecycle(), unbind(), unbindAll(), isBound()hasCamera() do được cung cấp khi gọi lớp CameraX trước đây hiện có sẵn qua ProcessCameraProvider.

  • Một trình quản lý liên kết các thực thể quy trình (per-process instance) của ProcessCameraProvider được lấy không đồng bộ bằng phương thức tĩnh ProcessCameraProvider.getInstance(). Phương thức này sẽ trả về một kết quả có thể nghe được (listenable future) mà sẽ cung cấp ProcessCameraProvider khi hoàn tất. Nó được hiển thị ở onCreate() để sử dụng thông thường. Bạn có thể thực hiện các lệnh gọi đến getInstance() sau này trong vòng đời của activity (hoạt động) để trì hoãn thời gian khởi chạy cho một khoảng thời gian sau (ví dụ như khi người dùng thực hiện thao tác mở giao diện người dùng cho máy ảnh).

    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);
      }
    
  • Bạn có thể thêm một event listener vào ListenableFuture do getInstance() trả về. Việc này đảm bảo có thể truy xuất nhà cung cấp máy ảnh từ Future mà không cần chặn trên Future.get()

    cameraProviderFuture.addListener(Runnable {
      val cameraProvider = cameraProviderFuture.get()
      cameraProvider.bindToLifecycle(...)
    }, ContextCompat.getMainExecutor(this))
    
  • Bạn hiện có thể chọn máy ảnh bằng bộ chọn máy ảnh, thay vì theo từng trường hợp sử dụng

    val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
    
  • CameraProvider.bindToLifecycle được cấp cho chủ sở hữu vòng đời, bộ chọn máy ảnh và các trường hợp sử dụng mà được liên kết với chủ sở hữu vòng đời nhất định và chạy cho máy ảnh đã chọn.

    cameraProvider.bindToLifecycle(this as LifecycleOwner,
           cameraSelector, preview, imageAnalysis)
    
  • Xoá lớp "Config" trường hợp sử dụng. Thay vào đó, hãy trực tiếp tạo các trường hợp sử dụng và đặt tuỳ chọn cho từng trình tạo trường hợp sử dụng. Ví dụ:

    preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
    
  • Trường hợp sử dụng Preview đã được cập nhật để chấp nhận một surface do ứng dụng tạo và quản lý để đảm bảo các phương pháp hay nhất về Android. Bạn nên sử dụng lớp xem PreviewView được cung cấp trong gói camera-view.

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • Xem tài liệu để đính kèm một nền tảng do ứng dụng quản lý. Trong những trường hợp này, ứng dụng sẽ quản lý vòng đời của nền tảng.

  • Lưu ý quan trọng: Việc triển khai phương thức ImageAnalysis của Trình phân tích phải gọi image.close() cho hình ảnh đã nhận khi sử dụng xong các hình ảnh này. Nếu không, bạn có thể không nhận được những hình ảnh mới hoặc máy ảnh có thể trì hoãn, tuỳ thuộc vào chế độ cài đặt áp lực ngược (back pressure). Tham khảo tài liệu tham khảo để biết thêm thông tin chi tiết.

  • ImageAnalysis ImageReaderMode hiện đã đổi thành chiến lược backpressure intdef.

  • ImageProxy.getImage() đã được đánh dấu là thử nghiệm. Các ứng dụng phải chú thích việc sử dụng, ví dụ như qua @androidx.camera.core.ExperimentalGetImage

  • Xoá yêu cầu chú thích UIThread cho Analyzer.

  • Hàm ImageAnalysis.clearAnalyzer() được thêm để xoá một trình phân tích.

  • Trình lắng nghe sự kiện có nhiều phương thức đã được đổi tên thành Lệnh gọi lại:

    • ImageCapture.OnImageCapturedListener đổi tên thành ImageCapture.OnImageCapturedCallback
    • ImageCapture.OnImageSavedListener đổi tên thành ImageCapture.OnImageSavedCallback
    • VideoCapture.OnVideoSavedListener đổi tên thành VideoCapture.OnVideoSavedCallback
  • Enum đổi thành IntDef

  • Thêm các tuỳ chọn điều khiển thu phóng:

    • CameraControl.setLinearZoom()
    • CameraControl.setZoomRatio()
    • CameraInfo.getLinearZoom()
    • CameraInfo.getMaxZoomRatio()
    • CameraInfo.getZoomRatio()
  • Thêm CameraInfo.hasFlashUnit() để xác định xem có phần cứng đèn flash/đèn pin hay không.

  • Xoá CameraInfo.isFlashAvailable(). Đèn pin ghi đè chức năng đèn flash. Bạn có thể xem thêm thông tin chi tiết trong tài liệu tham khảo.

  • Các trường ImageCapture.Metadata được thay thế bằng trình truy cập get/set/is.

  • startFocusMeteringcancelFocusMetering hiện trả về ListenableFutures để thể hiện hoạt động không đồng bộ của lệnh gọi.

  • MeteringPoints hiện đang hoạt động như các trình xử lý đo sáng và do nhà máy (factory) tạo ra. Ứng dụng nên sử dụng các nhà máy hiện có thay vì nhà máy tuỳ chỉnh.

Lỗi đã được khắc phục

  • Khắc phục lỗi chụp ảnh khi tiếp tục chụp (sau khi tạm dừng trước đó do ảnh đã chụp đang chờ hoàn tất).
  • Lỗi đã biết: CameraControl.enableTorch() hoạt động nhưng ListenableFuture<Void> được trả về luôn là kết quảcomplete(success) ngay lập tức, cả khi không có đơn vị flash. Các phiên bản trong tương lai sẽ khắc phục lỗi này thành hành vi cuối cùng: Khi không có đơn vị flash, enableTorch(true) sẽ thất bại ngay lập tức (sẽ không gửi yêu cầu đến CaptureSession) và TorchState vẫn ở chế độ Tắt.
  • Vấn đề đã biết: startFocusAndMeteringcancelFocusAndMetering bắt đầu và huỷ việc lấy tiêu điểm, nhưng sẽ lập tức trả về một kết quả completed (success) không thể hiện hành vi được ghi nhận trong tài liệu. FocusMeteringResult từ ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering() là một kết quả giả mạo mà isFocusSuccessful() luôn luôn "sai" ("false") và khác với hành vi được ghi nhận trong tài liệu.
  • Lỗi đã biết: Đang phát triển một nhà máy điểm lấy sáng để sử dụng với các sự kiện chạm PreviewView. Hiện tại, các ứng dụng kết nối các bề mặt được quản lý tuỳ chỉnh có thể sử dụng các nhà máy điểm đo sáng hiện có và nếu không, PreviewView không có chức năng lấy nét không cần chạm.

Camera-Camera2 và Camera-Core Phiên bản 1.0.0-alpha06

Ngày 9 tháng 10 năm 2019

Phát hành androidx.camera:camera-camera2:1.0.0-alpha06androidx.camera:camera-core:1.0.0-alpha06. Đây là các thay đổi trong camera-camera2:1.0.0-alpha06các thay đổi trong camera-core:1.0.0-alpha06.

Tính năng mới

Các thay đổi về việc thiết lập tỷ lệ khung hình:

  • Thêm setTargetAspectRatioMode() và chấp nhận đối số enum. Việc này sẽ thiết lập Chế độ tỷ lệ khung hình với các tuỳ chọn RATIO_4_3 hoặc RATIO_16_9 thay vì tỷ lệ khung hình tuỳ ý. Điều này phản ánh thực tế là máy ảnh chỉ cung cấp một số tỷ lệ khung hình nhất định chứ không phải bất kỳ tỷ lệ tuỳ ý nào.
    • Hiện tại, tỷ lệ khung hình duy nhất hiện có là 16:9 và 4:3. Trong trường hợp 1:1, chỉ một số thiết bị có máy ảnh với tỷ lệ khung hình này và có độ phân giải giới hạn. Các ứng dụng thiết kế hoặc xử lý giao diện 1:1 nên sử dụng các tỷ lệ 16:9 hoặc 4:3 linh hoạt hơn và cắt màn hình hiển thị hoặc xử lý một vùng phụ.
    • Các tỷ lệ khung hình này được định hướng để sử dụng diện tích cảm biến tối đa.
  • Thêm getTargetAspectRatio() để sử dụng API cấu hình trường hợp sử dụng, qua đó trả về tỷ lệ khung hình mà đầu ra trường hợp sử dụng mong muốn.
  • Thay đổi phương thức setTargetAspectRatio(Rational aspectRatio) cho ImageCapture thành setTargetAspectRatioCustom(Rational aspectRatio). Khi đặt phương thức này, kết quả ImageCapture sẽ được cắt ra cho phù hợp.

API executor (thực hiện nhiệm vụ)

  • Các hàm sau đây chấp nhận tham số executor, cho phép ứng dụng kiểm soát việc hàm nào chạy trên executor nào.
    • API Preview.setOnPreviewOutputUpdateListener(). Nếu không có executor cho hàm đó, thì hàm sẽ thực thi trên thread chính.
    • Preview.setOnPreviewOutputUpdateListener
    • FocusMeteringAction.Builder.setAutoFocusCallback
    • ImageAnalysis.setAnalyzer
    • ImageCapture.takePicture
    • CameraView.takePicture
    • CameraView.startRecording
    • VideoCapture.startRecording

Thêm CameraInfo có API kiểm tra có Flash hay không và API xoay cảm biến

  • Thêm CameraInfo và phương thức getCameraInfo, cho phép các ứng dụng kiểm tra xem có CameraInfo về ống kính đối diện với máy ảnh và có đèn flash trên máy ảnh đó hay không. Ví dụ:

    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);
    }
    
  • Thêm CameraInfo.getSensorRotationDegrees(). Thành phần này cung cấp hướng cảm biến của máy ảnh theo hướng tương ứng với hướng tự nhiên của thiết bị, hoặc để thuận tiện, tương ứng với hướng do chế độ xoay Surface (Khu vực) mô tả (mô tả một hướng tương ứng với hướng tự nhiên).

Thay đổi API và sửa một số lỗi

  • Tỷ lệ khung hình: Đối với mỗi trường hợp sử dụng, ứng dụng chỉ nên gọi setTargetResolution() hoặc setTargetAspectRatio(). Gọi cả hai phương thức trong cùng một trình tạo sẽ trả về một lỗi.
    • Nhìn chung, bạn nên sử dụng setTargetAspectRatio() dựa trên thiết kế giao diện người dùng của ứng dụng. Độ phân giải cụ thể được dựa trên trường hợp sử dụng. Ví dụ: Bản xem trước gần bằng độ phân giải màn hình và ảnh chụp có độ phân giải cao. Xem bảng Độ phân giải tự động để biết thêm thông tin.
    • Sử dụng setTargetResolution() cho các trường hợp cụ thể hơn, chẳng hạn như khi cần độ phân giải tối thiểu (để lưu phép tính) hoặc tối đa (để xử lý chi tiết).
  • Executor API: Xoá lệnh gọi setCallbackHandler() khỏi API cấu hình trường hợp sử dụng. Thay vào đó, các ứng dụng có thể đặt executor dưới dạng tham số trong nhiều API khác nhau mà sẽ đặt lệnh gọi lại.
  • Cập nhật chú thích rỗng cho nhiều hàm.
  • Khắc phục lỗi khai báo ngoại lệ java.lang.IllegalStateException at Camera$StateCallback.onError khi mở máy ảnh.
  • Sửa lỗi chọn độ phân giải quá nhỏ (dưới 640x480) khi ứng dụng yêu cầu độ phân giải lớn hơn hoặc mặc định dẫn đến hình ảnh xem trước bị che lấp hoặc bị mờ. Những ứng dụng cần độ phân giải nhỏ hơn có thể yêu cầu rõ ràng.
  • Khắc phục lỗi máy ảnh hiển thị màn hình đen (không thể khởi động máy ảnh) sau khi khởi chạy một ứng dụng máy ảnh khác.
  • Khắc phục lỗi khi ứng dụng được khởi động hoặc dừng liên tục; java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
  • Khắc phục lỗi sau đây xảy ra khi tắt tính năng ImageAnalysis: java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
  • Thêm mã kiểm thử bổ sung cho quy trình ngắt kết nối máy ảnh.
  • Cải thiện khả năng hệ thống kiểm thử khi chạy kiểm thử máy ảnh liên tục.

Camera-Camera2 và Camera-Core Phiên bản 1.0.0-alpha05

Ngày 5 tháng 9 năm 2019

Phát hành androidx.camera:camera-camera2:1.0.0-alpha05androidx.camera:camera-core:1.0.0-alpha05. Đây là các thay đổi trong camera-camera2:1.0.0-alpha05 và đây là các thay đổi trong camera-core:1.0.0-alpha05.

  • Thay đổi API: Đổi tên các biến lỗi trường hợp sử dụng:

    • ImageCapture.UseCaseError đổi tên thành ImageCapture.ImageCaptureError
    • VideoCapture.UseCaseError đổi tên thành VideoCapture.VideoCaptureError
  • Thêm API CameraControl có API nhấn để lấy nét

    • Thêm API để nhận CameraControl từ CameraX cho máy ảnh, được chọn theo hướng ống kính:

      CameraX.getCameraControl(LensFacing lensFacing)

    • Thêm MeteringPointFactory, MeteringPoint, MeteringModeFocusMeteringAction để chạy API Nhấn để lấy nét:

      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();
      
    • Thêm API cho CameraControl để bắt đầu và huỷ đo sáng tập trung:

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

    • Thêm API cho các nhà máy điểm đo sáng (Metering Point Factories) hỗ trợ việc dịch toạ độ nhấn sang toạ độ cảm biến dựa trên các lớp khung hiển thị:

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

  • Thực thi lệnh gọi các phương thức sau trên thread chính (UI), khai báo ngoại lệ IllegalStateException khi không có phương thức nào. Các phiên bản trong tương lai sẽ cho phép sử dụng trên các thread khác và đảm bảo việc chuyển đổi tuần tự.

    • CameraX.bindToLifecycle()
    • CameraX.unbind()
    • CameraX.unbindAll()
    • ImageAnalysis.setAnalyzer()
    • ImageAnalysis.getAnalyzer()
    • ImageAnalysis.removeAnalyzer()
    • Preview.removePreviewOutputListener()
    • Preview.getOnPreviewOutputUpdateListener()
    • Preview.setOnPreviewOutputUpdateListener()
  • Nhiều tuỳ chọn cài đặt cấu hình khác nhau hiện chấp nhận các tham số rỗng và các phương thức getter tương ứng có thể trả về kết quả rỗng.

  • Sửa lỗi khi kiểm thử trên các trình mô phỏng không hỗ trợ tuỳ chọn cài đặt AF/AE/AWB.

  • Khắc phục lỗi xoay hình trong khi phân tích hình ảnh.

  • Sửa lỗi trong đó màn hình xem trước bị đen khi khởi động (không có dữ liệu về máy ảnh), sau khi xoay hoặc chuyển giữa máy ảnh trước và sau.

  • Xoá hoạt động kiểm thử cho nhiều trường hợp sử dụng phân tích hình ảnh đồng thời. Để đảm bảo khả năng tương thích, các ứng dụng chỉ nên đính kèm một trường hợp sử dụng phân tích hình ảnh.

  • Thêm các kiểm thử robolectric ban đầu của máy ảnh giả cho trong bộ camera-testing (WIP).

  • Xoá kiểm thử Camera2Inititalizer do phạm vi kiểm thử không rõ ràng/gây hiểu lầm.

Camera-Camera2 và Camera-Core Phiên bản 1.0.0-alpha04

Ngày 7 tháng 8 năm 2019

Phát hành androidx.camera:camera-camera2:1.0.0-alpha04androidx.camera:camera-core:1.0.0-alpha04. Phiên bản 1.0.0-alpha04 bao gồm các thay đổi sau.

Tính năng mới

Thay đổi lựa chọn Tỷ lệ khung hình và Độ phân giải

Mục tiêu của CameraX là khởi chạy thành công một phiên máy ảnh. Điều này có nghĩa là CameraX sẽ điều chỉnh độ phân giải/tỷ lệ khung hình dựa trên khả năng của thiết bị để bắt đầu phiên chụp - mục tiêu đầu tiên của CameraX, vì vậy yêu cầu chính xác có thể không được chấp nhận. Điều này có thể là do:

  • Các thiết bị không hỗ trợ độ phân giải được yêu cầu
  • Các vấn đề về khả năng tương thích, chẳng hạn như trên các thiết bị LEGACY mà phải dùng một số độ phân giải nhất định để thao tác chính xác
  • Một số thiết bị chỉ có một số định dạng theo tỷ lệ khung hình nhất định
  • Tuỳ chọn "gần bằng mod16 nhất" để mã hoá ảnh JPEG hoặc video. Xem CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP

Mặc dù CameraX tạo và quản lý phiên nhưng bạn phải luôn kiểm tra kích thước hình ảnh được trả về ở dữ liệu đầu ra của trường hợp sử dụng trong mã và điều chỉnh sao cho phù hợp.

Một số thay đổi đã được thực hiện để thiết lập độ phân giải và tỷ lệ khung hình để làm cho API rõ ràng hơn:

  • Tỷ lệ khung hình 4:3 sẽ được cài đặt mặc định đối với trường hợp sử dụng Preview (Xem trước) nếu không có tỷ lệ nào được đặt trước.
  • Khi xem xét các thay đổi đối với độ phân giải và tỷ lệ khung hình được yêu cầu dựa trên chức năng của thiết bị, CameraX đầu tiên sẽ cố gắng duy trì cùng tỷ lệ khung hình (do lệnh gọi setTargetAspectRatio hoặc setTargetResolution xác định)
  • Phiên bản “gần bằng mod16 nhất” của độ phân giải được xem là có cùng tỷ lệ khung hình.

Chế độ không chặn ImageAnalysis

  • Không chặn hành vi của ImageReaderMode.ACQUIRE_LATEST_IMAGE. Hành vi này sẽ nhận được hình ảnh mới nhất trong hàng đợi, nhưng liên tục huỷ các hình ảnh không sử dụng để cho phép quy trình máy ảnh tránh bị chặn.
  • Trình phân tích có thể giữ một hình ảnh vô thời hạn mà không làm gián đoạn quy trình.
  • Nếu ứng dụng cung cấp một executor mà sau đó chặn, thì ImageAnalysis sẽ sử dụng các trường hợp chặn.
  • Executor (Trình thực thi) mặc định được cài đặt nội bộ sẽ hoạt động như là executor (trình thực thi) không bị chặn.

Sửa lỗi

  • Sửa các lỗi về thời gian chờ hội tụ 3A khi chụp ảnh trên các thiết bị không có tính năng tự động lấy nét, tự động phơi sáng và cân bằng trắng
  • Khắc phục lỗi khi chụp ảnh nhanh bằng ImageCapture. Sửa lỗi: java.lang.IllegalStateException: maxImages (2) has already been acquired
  • Khắc phục lỗi khi setLensFacing không được gọi cho một trường hợp sử dụng, dẫn đến java.lang.IllegalArgumentException: Unable to get camera ID for use case.
  • Sửa lỗi thiết bị LEGACY yêu cầu tỷ lệ khung hình cụ thể là độ phân giải JPEG tối đa
  • Khắc phục lỗi khi chạy ngầm ứng dụng khi máy ảnh đang mở
  • Khắc phục lỗi API < 25, xoá lỗi checkAndUpdateEglState: invalid current EGLDisplay
  • Khắc phục lỗi khi huỷ liên kết xem trước sau khi bật và khởi động tiện ích
  • Tạo cấu phần phần mềm cho camera-view và camera-extensions hiện được công khai dưới dạng phiên bản alpha

Camera-Camera2 và Camera-Core Phiên bản 1.0.0-alpha03

Ngày 2 tháng 7 năm 2019

Phát hành androidx.camera:camera-core:1.0.0-alpha03androidx.camera:camera-camera2:1.0.0-alpha03. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm phần làm rõ javadoc cho "mục tiêu" trong các lệnh gọi cấu hình setTarget

Camera-Core

  • Sửa lỗi xảy ra sự cố cho Surface đầu vào/đầu ra chưa được định cấu hình khi mở/đóng hoặc liên kết/huỷ liên kết nhanh
  • Chuyển sang triển khai các Future mới
  • Kiểm thử bản sửa lỗi để kiểm thử hiệu quả hơn
  • Giờ đây, việc kiểm thử tích hợp cốt lõi sẽ hiển thị thời gian chụp ảnh
  • Phát triển lớp tương thích nội bộ cho các Executor
  • Kiểm thử thời gian chụp ảnh trên ứng dụng chờ các lần kiểm thử trước đó hoàn tất và cải thiện độ ổn định

Tiện ích

  • Thêm các bước kiểm tra phiên bản
  • Phạm vi kiểm tra bổ sung - lệnh gọi lại sự kiện của tiện ích
  • Cải tiến siêu dữ liệu và hình ảnh tương ứng nội bộ
  • Khắc phục một số lỗi khi chuyển đổi chế độ trong ứng dụng kiểm thử

Camera-Camera2 và Camera-Core Phiên bản 1.0.0-alpha02

Ngày 5 tháng 6 năm 2019

Phát hành androidx.camera:camera-core:1.0.0-alpha02androidx.camera:camera-camera2:1.0.0-alpha02. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi chia cho 0 khi sử dụng trình mô phỏng
  • Sửa lỗi bỏ qua NullPointerException/Surface xảy ra trên một số thiết bị khi nhanh chóng chụp ảnh trong lúc huỷ liên kết và liên kết lại các trường hợp sử dụng một cách nhanh chóng.
  • Sửa lỗi nội bộ để đảm bảo việc cập nhật yêu cầu chụp ảnh hưởng nhất quán đến tất cả nền tảng
  • Cải thiện độ ổn định khi khởi động lại các trường hợp sử dụng trong các thực thể mới của ứng dụng
  • Thay đổi cấu trúc nội bộ để chuẩn bị hỗ trợ cho các executor trong API
  • Bổ sung nội dung làm rõ trong Javadoc về việc quản lý vòng đời và lớp CameraX
  • Thêm hoạt động kiểm thử đo lường cho ứng dụng kiểm thử hiệu suất Antelope
  • Xoá 'Chữ ký -keepattribute signature' trong cấu hình Proguard của ứng dụng

Camera-Camera2 và Camera-Core Phiên bản 1.0.0-alpha01

Ngày 7 tháng 5 năm 2019

Phát hành androidx.camera:camera-core:1.0.0-alpha01androidx.camera:camera-camera2:1.0.0-alpha01. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.

Camera-Lifecycle Phiên bản 1.0.0-beta11

Ngày 14 tháng 10 năm 2020

Phát hành androidx.camera:camera-lifecycle:1.0.0-beta11. Phiên bản 1.0.0-beta11 bao gồm các thay đổi sau.

Sửa lỗi

  • <UseCase>.getTargetRotation() sẽ trả về Surface.ROTATION_0 nếu được gọi trước khi được đính kèm vào một thực thể Camera trừ phi targetRotation đã được đặt trong Builder hoặc UseCase. (I80fcd)

Camera-Lifecycle Phiên bản 1.0.0-beta10

Ngày 23 tháng 9 năm 2020

Phát hành androidx.camera:camera-lifecycle:1.0.0-beta10. Phiên bản 1.0.0-beta10 bao gồm các thay đổi sau.

Sửa lỗi

Camera-Lifecycle Phiên bản 1.0.0-beta09

Ngày 16 tháng 9 năm 2020

Phát hành androidx.camera:camera-lifecycle:1.0.0-beta09. Phiên bản 1.0.0-beta09 bao gồm các thay đổi sau.

Camera-Lifecycle Phiên bản 1.0.0-beta08

Ngày 19 tháng 8 năm 2020

Phát hành androidx.camera:camera-lifecycle:1.0.0-beta08. Phiên bản 1.0.0-beta08 bao gồm các thay đổi sau.

Sửa lỗi

  • Quá trình khởi chạy không còn gặp sự cố khi sử dụng một Context (Ngữ cảnh) không trả về đối tượng Application (Ứng dụng) qua Context.getApplicationContext(). (I3d3c9, b/160817073)

Camera-Lifecycle Phiên bản 1.0.0-beta07

Ngày 22 tháng 7 năm 2020

Phát hành androidx.camera:camera-lifecycle:1.0.0-beta07. Phiên bản 1.0.0-beta07 bao gồm các thay đổi sau.

Camera-Lifecycle Phiên bản 1.0.0-beta06

Ngày 24 tháng 6 năm 2020

Phát hành androidx.camera:camera-lifecycle:1.0.0-beta06. Phiên bản 1.0.0-beta06 bao gồm các thay đổi sau.

Thay đổi về API

  • CameraX hiện có thể được định cấu hình với ProcessCameraProvider#configureInstance() trước khi gọi ProcessCameraProvider#getInstance(). Điều này cho phép tuỳ chỉnh CameraXConfig mà không cần cài đặt CameraXConfig.Provider trong lớp Application của ứng dụng. (Ia1a8d)

Camera-Lifecycle Phiên bản 1.0.0-beta05

Ngày 10 tháng 6 năm 2020

Phát hành androidx.camera:camera-lifecycle:1.0.0-beta05. Phiên bản 1.0.0-beta05 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục sự cố lúc khởi động ứng dụng khi khởi chạy CameraX trong lúc điện thoại đang ở chế độ Không làm phiền InitializationException chứa CameraUnavailableException mà sẽ được đặt thành ListenableFuture của kết quả khởi chạy thay vì khiến ứng dụng ngừng hoạt động. (I9909a, b/149413835)

Camera-Lifecycle Phiên bản 1.0.0-beta04

Ngày 27 tháng 5 năm 2020

Phát hành androidx.camera:camera-lifecycle:1.0.0-beta04. Phiên bản 1.0.0-beta04 bao gồm các thay đổi sau.

Camera-Lifecycle Phiên bản 1.0.0-beta03

Ngày 15 tháng 4 năm 2020

Phát hành androidx.camera:camera-lifecycle:1.0.0-beta03. Phiên bản 1.0.0-beta03 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi hồi quy từ beta03, trong đó lệnh gọi bindToLifecycle()UseCase bằng 0 sẽ dẫn đến trường hợp khai báo ngoại lệ. Việc này ngăn việc truy xuất Camera mà không cần liên kết với một UseCase.
  • Sửa lỗi để hỗ trợ việc phát hành camera-core

Camera-Lifecycle Phiên bản 1.0.0-beta01

Ngày 26 tháng 2 năm 2020

Phát hành androidx.camera:camera-lifecycle:1.0.0-beta01. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.

Sửa lỗi

  • Sửa lỗi tài liệu để lưu ý rằng khi lấy ProcessCameraProvider trong quá trình khởi chạy, cấu hình mặc định sẽ được sử dụng và việc mở rộng Application là không bắt buộc. (I5e395)

Camera-Lifecycle Phiên bản 1.0.0-beta02

Ngày 1 tháng 4 năm 2020

Phát hành androidx.camera:camera-lifecycle:1.0.0-beta02. Phiên bản 1.0.0-beta02 bao gồm các thay đổi sau.

Sửa lỗi

  • Cập nhật để hỗ trợ bản sửa lỗi trong cấu phần phần mềm camera-camera2:1.0.0-beta02camera-core:1.0.0-beta02.

Camera-Lifecycle Phiên bản 1.0.0-alpha10

Ngày 10 tháng 2 năm 2020

Phát hành androidx.camera:camera-lifecycle:1.0.0-alpha10. Phiên bản 1.0.0-alpha10 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm chú thích @MainThread vào phương thức BindToLifecycle, unbind và unbindAll. (I990d2)

Camera-Lifecycle Phiên bản 1.0.0-alpha03

Ngày 22 tháng 1 năm 2020

Phát hành androidx.camera:camera-lifecycle:1.0.0-alpha03. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.

Bản cập nhật

  • Nhiều bản sửa lỗi và cập nhật giúp hỗ trợ thay đổi Camera Core và Camera2.

Camera-Lifecycle Phiên bản 1.0.0-alpha02

Ngày 18 tháng 12 năm 2019

Phát hành androidx.camera:camera-lifecycle:1.0.0-alpha02. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.

Các thay đổi về phần phụ thuộc

  • Cập nhật để sử dụng androidx.camera:camera-core:1.0.0-alpha08.

Camera-Lifecycle Phiên bản 1.0.0-alpha01

Ngày 4 tháng 12 năm 2019

Phát hành androidx.camera:camera-lifecycle:1.0.0-alpha01. Phiên bản 1.0.0-alpha01 của camera-lifecycle bao gồm các thay đổi sau

Ghi chú về API

  • Thêm cấu phần phần mềm camera-lifecycle, cung cấp giao diện LifeCycleCameraProvider và phương thức cài đặt có tên là ProcessCameraProvider với mục đích cung cấp nhiều chức năng của lớp CameraX trước đó trong lõi và lấy thông qua phương thức getInstance().
  • Ứng dụng nên có thư viện camera-lifecycle để sử dụng CameraX.
  • Xem ghi chú trong phần camera-core để biết cách thực hiện khởi chạy CameraX bằng ProcessCameraProvider.

Camera-Extensions và Camera-View Phiên bản 1.0.0

Phiên bản 1.0.0-alpha32

Ngày 15 tháng 12 năm 2021

Phát hành androidx.camera:camera-extensions:1.0.0-alpha32androidx.camera:camera-view:1.0.0-alpha32. Phiên bản 1.0.0-alpha32 bao gồm các thay đổi sau.

Thay đổi về API

  • Xoá chú thích @RequiresApi(21) không cần thiết khỏi các lớp/giao diện bên trong. (I8e286, b/204917951)
  • Cập nhật tệp API cho cấu phần phần mềm camera-extensions. (If683a, b/161377155)

Sửa lỗi

  • Không cho phép ứng dụng bật các chế độ tiện ích khi liên kết VideoCapture. Tiện ích của CameraX chỉ hỗ trợ ImageCapturePreview. Chưa thể hỗ trợ VideoCapture. Nếu ứng dụng liên kết với VideoCapture và bật bất kỳ chế độ tiện ích nào, thì sẽ khai báo ngoại lệ IllegalArgumentException. (I0d87b)
  • CameraSelector#filter không còn gửi IllegalArgumentException khi không có kết quả nào. (I27804)
  • Đổi tên API ExtensionsManager#getInstance thành getInstanceAsync vì API này trả về ListenableFuture. Hậu tố Async của tên hàm có thể trình bày rõ ràng rằng đó là hàm không đồng bộ. (I279d2)
  • Xoá tham số độ phân giải khỏi API ExtensionsManager#getEstimatedCaptureLatencyRange vì người dùng không thể biết kích thước nào được hỗ trợ cho trường hợp sử dụng ImageCapture và không thể phân biệt thông tin về độ trễ trả về dành cho kích thước ảnh thu được tối đa hay tham số độ phân giải đầu vào. (I74bb2)
  • Chuyển tham số CameraProvider của các hàm ExtensionsManager sang API getInstance(). Do đó, người dùng không cần nhập tham số CameraProvider mỗi lần gọi các hàm ExtensionsManager. (Ic7e48)

Phiên bản 1.0.0-alpha31

Ngày 17 tháng 11 năm 2021

Phát hành androidx.camera:camera-extensions:1.0.0-alpha31androidx.camera:camera-view:1.0.0-alpha31. Phiên bản 1.0.0-alpha31 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm CameraSelector#filter vào API công khai để lọc danh sách CameraInfos dựa trên CameraSelector. (I105d0)

Sửa lỗi

  • Khắc phục lỗi khi chuyển đổi nhanh chế độ tiện ích trên một số thiết bị nhất định. (Iebbef)

Phiên bản 1.0.0-alpha30

Ngày 13 tháng 10 năm 2021

Phát hành androidx.camera:camera-extensions:1.0.0-alpha30androidx.camera:camera-view:1.0.0-alpha30. Phiên bản 1.0.0-alpha30 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm chú thích @RequiresApi(21) vào mọi lớp CameraX và xoá minSdkVersion khỏi AndroidManifest.xml. Điều này sẽ cho phép dễ dàng tích hợp camera-core vào các ứng dụng có minSdkVersion phiên bản 21 trở xuống nhưng muốn sử dụng đường dẫn mã có điều kiện dựa trên API 21 trở lên. Không cần thực hiện thao tác gì đối với mọi ứng dụng có minSdkVersion phiên bản 21 trở lên. (Ie7f2e, b/200599470)

Sửa lỗi

  • Khắc phục lỗi AbstractmethodError khi xảy ra khi bật proguard. (Iae468, b/201177844)

Phiên bản 1.0.0-alpha29

Ngày 29 tháng 9 năm 2021

Phát hành androidx.camera:camera-extensions:1.0.0-alpha29androidx.camera:camera-view:1.0.0-alpha29. Phiên bản 1.0.0-alpha29 bao gồm các thay đổi sau.

Thay đổi về API

  • Xoá chú thích ExperimentalUseCaseGroup do các API không còn là API thử nghiệm nữa. (I01ef5)
  • XoáRotationProvider#removeAllListeners(). Thay vào đó, hãy sử dụng RotationProvider#removeListener(...). (Id9d4a)
  • Cập nhật lớp RotationReceiver: đổi Trình nghe sự kiện set/clear thành add/remove/removeAll, xoá biến setListener sử dụng luồng (thread) chính theo mặc định và thêm chú thích cho phương thức. (Ib1669)

Sửa lỗi

  • Đổi tên ExtensionMode#BEAUTY thành FACE_RETOUCH để hiển thị chính xác những gì chế độ tiện ích thực hiện. (I61f54, b/198515274)
  • Khắc phục lỗi máy ảnh đóng đột ngột khi nhiều CameraController và PreviewView được sử dụng trong một Activity. (Ibfd18, b/197539358)

Phiên bản 1.0.0-alpha28

Ngày 18 tháng 8 năm 2021

Phát hành androidx.camera:camera-extensions:1.0.0-alpha28androidx.camera:camera-view:1.0.0-alpha28. Phiên bản 1.0.0-alpha28 bao gồm các thay đổi sau.

Thay đổi về API

  • Xoá chú thích ExperimentalUseCaseGroupLifecycle do các API không còn là API thử nghiệm nữa. (I17b85)
  • Đổi tên refactored RotationListener thành RotationProvider. Lớp đó vẫn tiếp tục cung cấp tính năng tương tự nhưng sử dụng API khác một chút. (Idffc5)
  • Đổi tên TAP_TO_FOCUS_UNSUCCESSFUL thành TAP_TO_FOCUS_NOT_FOCUSED và TAP_TO_FOCUS_SUCCESSFUL thành TAP_TO_FOCUS_FOCUSED. Thực hiện OutputSize sau cùng (I099fa)

Sửa lỗi

  • Xoá các lớp <EffectName><UseCase>Extender không còn được dùng, các API ExtensionsErrorListener và ExtensionsManager. (I3b8c3)

Phiên bản 1.0.0-alpha27

Ngày 21 tháng 7 năm 2021

Phát hành androidx.camera:camera-extensions:1.0.0-alpha27androidx.camera:camera-view:1.0.0-alpha27. Phiên bản 1.0.0-alpha27 bao gồm các thay đổi sau.

Thay đổi về API

  • Đưa API khung nhìn từ trạng thái thử nghiệm sang trạng thái chính thức. Xoá chú thích thử nghiệm của API. (I717ea)
  • Đổi tên CoordinateTransform#getTransform thành CoordinateTransform#transform và cập nhật JavaDoc (I864ae)

Sửa lỗi

  • Khắc phục lỗi hình ảnh bị giãn trong chế độ PreviewView PERFORMANCE khi sử dụng cùng với giao diện Compose. (Ie1137, b/183864890)

Phiên bản 1.0.0-alpha26

Ngày 30 tháng 6 năm 2021

Phát hành androidx.camera:camera-extensions:1.0.0-alpha26androidx.camera:camera-view:1.0.0-alpha26. Phiên bản 1.0.0-alpha26 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm phương thức CameraController#getTapToFocusState() lấy kết quả nhấn để lấy nét mới nhất. (Iaccb0)
  • Thêm các tính năng camera-core vào CameraController: phương thức getter/setter cho tỷ lệ khung hình mục tiêu, độ phân giải mục tiêu, chế độ chụp, CameraControl và executor tuỳ chỉnh. (Iea8f2)
  • Thêm một lớp RotationReceiver nhận thay đổi xoay Surface. Có thể dùng lớp này để đặt độ xoay mục tiêu khi thiết bị ở chế độ màn hình dọc/ngang cố định. (Ib278f)
  • Cấp quyền truy cấp các API công khai mới getEstimatedCaptureLatencyRange trong lớp ExtensionsManager. (I6a8ec)
  • Không sử dụng ExtensionsErrorListener. Hiện tại, giao diện này chỉ được dùng để theo dõi xem có thiếu Preview hoặc ImageCapture khi bật chế độ tiện ích hay không. CameraX sẽ tự động thêm một Preview hoặc ImageCapture khác để các hàm tiện ích hoạt động tốt. Sau đó, giao diện này sẽ không báo lỗi nữa. (I47d9e)
  • Cấp quyền truy cập các API công khai mới ExtensionsManager getInstance, isExtensionAvailable và getExtensionEnabledCameraSelector, đồng thời ngừng sử dụng các lớp <EffectName><UseCase>Extender và API cũ. (I329e6)

Phiên bản 1.0.0-alpha25

Ngày 2 tháng 6 năm 2021

Phát hành androidx.camera:camera-extensions:1.0.0-alpha25androidx.camera:camera-view:1.0.0-alpha25. Phiên bản 1.0.0-alpha25 bao gồm các thay đổi sau.

Thay đổi về API

  • Các API ExperimentalCameraFilter hiện đã vượt qua giai đoạn thử nghiệm và trở thành API chính thức. Bạn có thể sử dụng các API này mà không cần chú thích đến OptIn. (I4bc94)
  • Thêm phần mềm tiện ích chuyển đổi toạ độ giữa các trường hợp sử dụng. Ví dụ về cách sử dụng: chuyển đổi các toạ độ được phát hiện trong trường hợp sử dụng ImageAnalysis và đánh dấu đối tượng được phát hiện trong chế độ xem trước. (I63ab1, b/137515129)
  • Xoá CameraView. CameraView được thay thế bằng CameraController. Xem hướng dẫn di chuyển để biết cách di chuyển: (Id5005)

Sửa lỗi

  • Thay ExperimentalUseCaseGroupLifecycle bằng ExperimentalUseCaseGroup (I3b2ef, b/159033688)

Phiên bản 1.0.0-alpha24

Ngày 21 tháng 4 năm 2021

Phát hành androidx.camera:camera-extensions:1.0.0-alpha24androidx.camera:camera-view:1.0.0-alpha24. Phiên bản 1.0.0-alpha24 bao gồm các thay đổi sau.

Sửa lỗi

  • Thay thế chú thích @Experimental bằng @RequiresOptIn thành API thử nghiệm. Để gọi các API thử nghiệm, hãy dùng androidx.annotation.OptIn thay vì androidx.annotation.experimental.UseExperimental không được dùng nữa. (Iff226)
  • Khắc phục lỗi hình ảnh bị giãn trong PreviewView trên Samsung J5 Prime (Ib10b6)

Tiện ích máy ảnh & Chế độ xem Phiên bản 1.0.0-alpha23

Ngày 24 tháng 3 năm 2021

Phát hành androidx.camera:camera-extensions:1.0.0-alpha23androidx.camera:camera-view:1.0.0-alpha23. Phiên bản 1.0.0-alpha23 bao gồm các thay đổi sau.

Thay đổi về API

  • Ngừng sử dụng CameraView. Thay vào đó, hãy sử dụng LifecycleCameraController. Xem hướng dẫn di chuyển (Idac2c)
  • Thêm chú thích FloatRange vào setLinearZoom() (I69971)

Sửa lỗi

  • Ghim các phần phụ thuộc camera-view để dựa vào các cấu phần phần mềm 1.0.0. Việc phụ thuộc vào camera-view sẽ không còn khiến độ phân giải của phần phụ thuộc gradle tự động nâng cấp camera-core, camera-camera2 và camera-lifecycle lên cấu phần phần mềm 1.1.0 mới nhất, mặc dù camera-view vẫn tương thích với các cấu phần phần mềm đó nếu đã được thiết lập rõ ràng để sử dụng phiên bản 1.1.0. (Ic8fa1, b/181599852)
  • Sửa lỗi hình ảnh xem trước bị giãn trong PreviewView trên Samsung A3. (Iacb30, b/180121821)
  • Khắc phục lỗi khi không thể đặt bộ chọn máy ảnh trước khi khởi chạy máy ảnh. (Ic8bd0)

Tiện ích máy ảnh & Chế độ xem Phiên bản 1.0.0-alpha22

Ngày 24 tháng 2 năm 2021

Phát hành androidx.camera:camera-extensions:1.0.0-alpha22androidx.camera:camera-view:1.0.0-alpha22. Phiên bản 1.0.0-alpha22 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm phương thức getter CameraInfo vào CameraController. (Ib8138, b/178251727)

Sửa lỗi

  • Khắc phục lỗi ExtensionErrorListener để báo cáo lỗi khi chỉ liên kết Preview hoặc ImageCapture. (I5ae39)

Tiện ích máy ảnh & Chế độ xem Phiên bản 1.0.0-alpha21

Ngày 27 tháng 1 năm 2021

Phát hành androidx.camera:camera-extensions:1.0.0-alpha21androidx.camera:camera-view:1.0.0-alpha21. Phiên bản 1.0.0-alpha21 bao gồm các thay đổi sau.

Phát hành để hỗ trợ các cấu phần phần mềm khác trong thư viện máy ảnh.

Tiện ích máy ảnh & Chế độ xem Phiên bản 1.0.0-alpha20

Ngày 16 tháng 12 năm 2020

Phát hành androidx.camera:camera-extensions:1.0.0-alpha20androidx.camera:camera-view:1.0.0-alpha20. Phiên bản 1.0.0-alpha20 bao gồm các thay đổi sau.

Phát hành để hỗ trợ các cấu phần phần mềm khác trong thư viện máy ảnh.

Camera-Extensions & Camera-View Phiên bản 1.0.0-alpha19

Ngày 11 tháng 11 năm 2020

Phát hành androidx.camera:camera-extensions:1.0.0-alpha19androidx.camera:camera-view:1.0.0-alpha19. Phiên bản 1.0.0-alpha19 bao gồm các thay đổi sau.

Sửa lỗi

  • Thêm chú thích @ExperimentalVideo vào camera-view. Chú thích này đánh dấu các API cấp quyền truy cập chức năng video thử nghiệm mà có thể thay đổi khi các tính năng này được phát triển hoàn chỉnh. Mọi phương thức sử dụng các API này đều phải sử dụng chú thích @UseExperimental trong đó ExperimentalVideomarkerClass. (I6d729)

Camera-Extensions Phiên bản 1.0.0-alpha18

Ngày 14 tháng 10 năm 2020

Phát hành androidx.camera:camera-extensions:1.0.0-alpha18. Phiên bản 1.0.0-alpha18 bao gồm các thay đổi sau.

Sửa lỗi

  • Cải thiện độ trễ khi khởi chạy CameraX và bindToLifecycle (I61dc5)
  • <UseCase>.getTargetRotation() sẽ trả về Surface.ROTATION_0 nếu được gọi trước khi được đính kèm vào một thực thể Camera trừ phi targetRotation đã được đặt trong Builder hoặc UseCase. (I80fcd)

Camera-View Phiên bản 1.0.0-alpha18

Ngày 14 tháng 10 năm 2020

Phát hành androidx.camera:camera-view:1.0.0-alpha18. Phiên bản 1.0.0-alpha18 bao gồm các thay đổi sau.

Phát hành để hỗ trợ các cấu phần phần mềm khác trong thư viện máy ảnh.

Camera-Extensions Phiên bản 1.0.0-alpha17

Ngày 23 tháng 9 năm 2020

Phát hành androidx.camera:camera-extensions:1.0.0-alpha17. Phiên bản 1.0.0-alpha17 bao gồm các thay đổi sau.

Sửa lỗi

Camera-View Phiên bản 1.0.0-alpha17

Ngày 23 tháng 9 năm 2020

Phát hành androidx.camera:camera-view:1.0.0-alpha17. Phiên bản 1.0.0-alpha17 bao gồm các thay đổi sau.

Sửa lỗi

Camera-Extensions Phiên bản 1.0.0-alpha16

Ngày 16 tháng 9 năm 2020

Phát hành androidx.camera:camera-extensions:1.0.0-alpha16. Phiên bản 1.0.0-alpha16 bao gồm các thay đổi sau.

Sửa lỗi

  • Thêm phương thức trong ExtensionsManager để lấy đối tượng Extensions được dùng để bật và truy vấn các tiện ích trên các thực thể Camera (I4fb7e)

Camera-View Phiên bản 1.0.0-alpha16

Ngày 16 tháng 9 năm 2020

Phát hành androidx.camera:camera-view:1.0.0-alpha16. Phiên bản 1.0.0-alpha16 bao gồm các thay đổi sau.

Thay đổi về API

  • Xoá PreviewView#setDeviceRotationForRemoteDisplayMode()PreviewView#getDeviceRotationForRemoteDisplayMode(). 2 phương thức này dùng để tuỳ chỉnh chế độ xoay xem trước trong trường hợp chế độ xoay bạn muốn không phải là xoay màn hình, ví dụ: hiển thị từ xa. Hiện nay, để xử lý chế độ xoay trong xem trước không hiển thị, hãy đặt chế độ xoay mà bạn muốn bằng Preview#setTargetRotation()PreviewView#getViewPort(targetRotation) mới được thêm. (Ib62cc)
  • Đổi tên createSurfaceProvider() thành getSurfaceProvider(). Phương thức này sẽ luôn trả về cùng một thực thể của Preview.SurfaceProvider. (Iff83c)

Sửa lỗi

  • Buộc PreviewView sử dụng TextureView nếu hiệu ứng tiện ích được bật và việc cài đặt thư viện nhà cung cấp cần phải thực hiện một quy trình đặc biệt trên khu vực đầu ra. (I0c3cc)
  • Cho phép xoay phương hướng tuỳ ý trong Preview. Thông tin chuyển đổi được tính toán và trả về cho người dùng ngay lập tức thông qua lệnh gọi lại TranformationInfoListener mới. (I21470)

Lỗi đã biết

  • Trong PreviewView, OnClickListener#onClick() không được gọi khi người dùng cuối nhấp vào PreviewView. Sự kiện chạm bị PreviewView#onTouchEvent() vô tình "nuốt". Lỗi này sẽ được khắc phục trong bản phát hành tiếp theo.
  • MeteringPoint lấy từ PreviewView#getMeteringPointFactory() có thể không chính xác nếu ViewPort được sử dụng với PreviewView.

Camera-Extensions Phiên bản 1.0.0-alpha15

Ngày 19 tháng 8 năm 2020

Phát hành androidx.camera:camera-extensions:1.0.0-alpha15. Phiên bản 1.0.0-alpha15 bao gồm các thay đổi sau.

Sửa lỗi

  • Phương thức ExtensionsManager.init() hiện đang được lấy Context làm tham số thay vì không có đối số nào. (Ife754)
  • Hoạt động khởi chạy không còn gặp sự cố khi sử dụng lớp Context mà không trả về đối tượng Application từ Context.getApplicationContext(). (I3d3c9, b/160817073)

    Camera-View Phiên bản 1.0.0-alpha15

    Ngày 19 tháng 8 năm 2020

Phát hành androidx.camera:camera-view:1.0.0-alpha15. Phiên bản 1.0.0-alpha15 bao gồm các thay đổi sau.

Sửa lỗi

  • DisplayOrientedMeteringPointFactory lấy thực thể CameraInfo thay vì CameraSelector, nhờ đó, sẽ có ánh xạ trực tiếp đến Camera mà đối tượng nhà máy (factory) sẽ tạo điểm trên đó. Tất cả lớp sử dụng DisplayOrientedMeteringPointFactory cũng đều lấy một thực thể CameraInfo thay vì CameraSelector. (I400c1)
  • Xoá TextureViewMeteringPointFactory. PreviewView cung cấp một API công khai (createMeteringPointFactory()) để tạo nhà máy điểm đo sáng bất kể đang sử dụng TextureView hay SurfaceView. (Ide693)
  • Đổi tên các chế độ cài đặt SURFACE_VIEW/TEXTURE_VIEW của PreviewView thành PERFORMANCE/COMPATIBLE. PERFORMANCE là chế độ SURFACE_VIEW cũ và COMPATIBLE là chế độ TEXTURE_VIEW cũ. (I0edc2)
  • Đối với ảnh chụp, hãy ghi đè cờ lật hình theo chiều ngang trong siêu dữ liệu dựa trên hướng máy ảnh. (I28499)

Camera-Extensions Phiên bản 1.0.0-alpha14

Ngày 22 tháng 7 năm 2020

Phát hành androidx.camera:camera-extensions:1.0.0-alpha14. Phiên bản 1.0.0-alpha14 bao gồm các thay đổi sau.

Camera-View Phiên bản 1.0.0-alpha14

Ngày 22 tháng 7 năm 2020

Phát hành androidx.camera:camera-view:1.0.0-alpha14. Phiên bản 1.0.0-alpha14 bao gồm các thay đổi sau.

Camera-Extensions Phiên bản 1.0.0-alpha13

Ngày 24 tháng 6 năm 2020

Phát hành androidx.camera:camera-extensions:1.0.0-alpha13. Phiên bản 1.0.0-alpha13 bao gồm các thay đổi sau.

Sửa lỗi

  • Thêm các giao diện thử nghiệm để lọc máy ảnh theo mã nhận dạng máy ảnh và CameraCharacteristics. (I28f61)

Camera-View Phiên bản 1.0.0-alpha13

Ngày 24 tháng 6 năm 2020

Phát hành androidx.camera:camera-view:1.0.0-alpha13. Phiên bản 1.0.0-alpha13 bao gồm các thay đổi sau.

Sửa lỗi

  • CameraView không còn gặp sự cố với IllegalArgumentException khi liên kết tới một LifecycleOwner mà việc chuyển đổi Lifecycle sang trạng thái DESTROYED ngay sau khi được liên kết. Liên kết Lifecycles trong trạng thái DESTROYED sẽ không cố mở máy ảnh. (I7c2b8)
  • PreviewView StreamState hiện có sẵn thông qua CameraView.getPreviewStreamState() (I21a2b)

Camera-Extensions Phiên bản 1.0.0-alpha12

Ngày 10 tháng 6 năm 2020

Phát hành androidx.camera:camera-extensions:1.0.0-alpha12. Phiên bản 1.0.0-alpha12 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục sự cố lúc khởi động ứng dụng khi khởi chạy CameraX trong lúc điện thoại đang ở chế độ Không làm phiền InitializationException chứa CameraUnavailableException mà sẽ được đặt thành ListenableFuture của kết quả khởi chạy thay vì khiến ứng dụng ngừng hoạt động. (I9909a, b/149413835)

Camera-View Phiên bản 1.0.0-alpha12

Ngày 10 tháng 6 năm 2020

Phát hành androidx.camera:camera-view:1.0.0-alpha12. Phiên bản 1.0.0-alpha12 bao gồm các thay đổi sau.

Sửa lỗi

  • Thêm API PreviewView#getBitmap() có nhiệm vụ trả về bản trình bày Bitmap của nội dung hiển thị trên khu vực xem trước. (I9b500, b/157659818)

Camera-Extensions Phiên bản 1.0.0-alpha11

Ngày 27 tháng 5 năm 2020

Phát hành androidx.camera:camera-extensions:1.0.0-alpha11. Phiên bản 1.0.0-alpha11 bao gồm các thay đổi sau.

Camera-View Phiên bản 1.0.0-alpha12

Ngày 10 tháng 6 năm 2020

Phát hành androidx.camera:camera-view:1.0.0-alpha12. Phiên bản 1.0.0-alpha12 bao gồm các thay đổi sau.

Tính năng mới

Thay đổi về API

Sửa lỗi

  • Thêm API PreviewView#getBitmap() có nhiệm vụ trả về bản trình bày Bitmap của nội dung hiển thị trên khu vực xem trước. (I9b500, b/157659818)

Camera-View Phiên bản 1.0.0-alpha11

Ngày 27 tháng 5 năm 2020

Phát hành androidx.camera:camera-view:1.0.0-alpha11. Phiên bản 1.0.0-alpha11 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm API PreviewView#getPreviewStreamState để cho phép ứng dụng quan sát xem ứng dụng có đang phát trực tuyến bản xem trước hay không. Khi PreviewView ở chế độ TEXTURE_VIEW, trạng thái STREAMING cũng đảm bảo hình ảnh xem trước sẽ được hiển thị. (Ic0906, b/154652477)
  • Thêm API PreviewView#setDeviceRotationForRemoteDisplayMode() để cung cấp tính năng xoay thiết bị cho các phép tính biến đổi nếu ứng dụng đang chạy ở chế độ hiển thị từ xa. (I59b95, b/153514525)

Sửa lỗi

  • Khắc phục lỗi méo hình xem trước trên máy ảnh FULL/LIMITED/LEVEL_3 chạy Android phiên bản 7.0 trở xuống. Buộc sử dụng chế độ ImplementationMode#TEXTURE_VIEW đối với phiên bản Android từ 7.0 trở xuống. (I83e30, b/155085307)
  • Xoá tham số CameraInfo khỏi PreviewView#createSurfaceProvider(), PreviewView hiện sẽ truy xuất tham số này từ SurfaceRequest. (If18f0, b/154652477)
  • Sửa tỷ lệ khung hình mặc định của VideoCapture là 16:9 trong CameraView. (Ie6a7b, b/153237864)
  • Khắc phục lỗi màn hình đen PreviewView khi vuốt mảnh (fragment) Preview ra rồi vuốt lại trong ViewPager2. Đồng thời khắc phục lỗi khi removeView(previewview) rồi addView(previewView). (Iab555, b/149877652, b/147354615)
  • Cập nhật API CameraView#takePicture() để cho phép lưu hình ảnh vào UriOutputStream. Cập nhật ứng dụng kiểm thử để dùng Uri làm điểm dữ liệu chuẩn hoá. (Ia2459, b/153607583)
  • Bạn có thể đặt loại tỷ lệ của PreviewView từ bố cục XML bằng cách đặt thuộc tính ScaleType. (I08565, b/153015659)
  • Xoá CameraView.ScaleType. Thay vào đó, hãy sử dụng PreviewView.ScaleType để đặt/lấy loại tỷ lệ với CameraView. (Ia8974, b/153014831)
  • Đặt màu nền mặc định cho PreviewView nếu chưa có. Việc này giúp ngăn nội dung phía sau hiển thị trước khi bắt đầu xem trước. (I09fad)

Camera-Extensions Phiên bản 1.0.0-alpha10

Ngày 15 tháng 4 năm 2020

Phát hành androidx.camera:camera-extensions:1.0.0-alpha10. Phiên bản 1.0.0-alpha10 bao gồm các thay đổi sau.

Sửa lỗi

  • Sửa lỗi để hỗ trợ phát hành Camera-Core

Camera-View Phiên bản 1.0.0-alpha10

Ngày 15 tháng 4 năm 2020

Phát hành androidx.camera:camera-view:1.0.0-alpha010. Phiên bản 1.0.0-alpha010 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục một lỗi từng biết, theo đó việc triển khai surfaceView của PreviewView không hoạt động tốt trên một số thiết bị nhất định và có thể khiến ứng dụng này gặp sự cố sau khi tiếp tục xem trước. (I5ed6b)

Camera-Extensions Phiên bản 1.0.0-alpha09

Ngày 1 tháng 4 năm 2020

Phát hành androidx.camera:camera-extensions:1.0.0-alpha09. Phiên bản 1.0.0-alpha09 bao gồm các thay đổi sau.

Sửa lỗi

  • Cập nhật để hỗ trợ việc sửa lỗi trong cấu phần phần mềm camera-camera2:1.0.0-beta02, camera-core:1.0.0-beta02camera-lifecycle:1.0.0-beta02

Camera-View Phiên bản 1.0.0-alpha09

Ngày 1 tháng 4 năm 2020 phát hành androidx.camera:camera-view:1.0.0-alpha09. Phiên bản 1.0.0-alpha09 bao gồm các thay đổi sau.

Lỗi đã biết

  • Việc sử dụng ImplementationMode.SURFACE_VIEW với PreviewView có thể không hoạt động tốt trên một số thiết bị nhất định. Nguyên nhân là do SurfaceView dùng để xem trước yêu cầu vẽ lại khu vực khi vòng đời của cửa sổ bao gồm khu vực đó bị dừng. Khi vòng đời bắt đầu lại, máy ảnh được mở lại và có thể thử tiếp tục xem trước trước khi khu vực của SurfaceView hợp lệ trở lại. Hiện tại, bạn nên sử dụng ImplementationMode.TEXTURE_VIEW.

Thay đổi về API

  • Đổi tên PreviewView.setImplementationMode() thành PreviewView.setPreferredImplementationMode().
  • Đổi tên PreviewView.getImplementationMode() thành PreviewView.getPreferredImplementationMode().
  • Thay thế PreviewView.getSurfaceProvider() bằng PreviewView.createSurfaceProvider(CameraInfo). Phương thức này sử dụng một thực thể CameraInfo rỗng được dùng để tối ưu hoá chế độ xem trước bằng cách sử dụng ImplementationMode.SURFACE_VIEW bất cứ khi nào có thể. Nếu một thực thể rỗng được truyền hoặc nếu bạn đặt chế độ cài đặt ưu tiên thành ImplementationMode.TEXTURE_VIEW, thì ImplementationMode.TEXTURE_VIEW sẽ được dùng nội bộ.
  • Mã mẫu sau đây cho thấy cách trường hợp sử dụng xem trước từng được sử dụng với PreviewView trước đây.

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

    Hiện tại, bạn có thể viết những phương thức sau:

    val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
    previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW
    preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
    
  • Chú thích @UiThread đã được thêm vào PreviewView.getSurfaceProvider(), có nghĩa là nó phải được gọi từ thread chính. (I192f3)

  • Thêm PreviewView.setScaleType() cho phép đặt loại tỷ lệ chế độ xem trước. Phương thức này chấp nhận một trong các giá trị trong PreviewView.ScaleType và để mặc định là PreviewView.ScaleType.FILL_CENTER.

  • Thêm PreviewView.getScaleType().

  • Xoá tính năng hỗ trợ thiết lập chế độ cài đặt cho PreviewView trong một bố cục XML bằng thuộc tính implementationMode.

  • Thêm API createMeteringPointFactory() vào PreviewView để hỗ trợ việc chuyển đổi (x, y) trong PreviewView sang MeteringPoint. (Ib36d7)

Sửa lỗi

  • Khắc phục các trường hợp bản xem trước không hiển thị chính xác sau khi kích thước của PreviewView thay đổi. (I71101)

Camera-Extensions Phiên bản 1.0.0-alpha08

Ngày 26 tháng 2 năm 2020

Phát hành androidx.camera:camera-extensions:1.0.0-alpha08. Phiên bản 1.0.0-alpha08 bao gồm các thay đổi sau.

Camera-View Phiên bản 1.0.0-alpha08

Ngày 26 tháng 2 năm 2020

Phát hành androidx.camera:camera-view:1.0.0-alpha08. Phiên bản 1.0.0-alpha08 bao gồm các thay đổi sau.

Sửa lỗi

  • Thay thế ListenableFuture trên SurfaceRequest.provideSurface() bằng ExecutorCallback. Việc này sẽ đơn giản hoá API bằng cách không còn yêu cầu xử lý các trường hợp ngoại lệ trên provideSurface() và đảm bảo rằng không thể huỷ lệnh gọi lại provideSurface(). Mục đích là để tránh sự cố trên các thiết bị cũ do việc giải phóng sớm các khu vực. Đối tượng SurfaceRequest.Result hiện được dùng để theo dõi cách SurfaceRequest sử dụng Surface cho sẵn. (I7854b)
  • Đổi tên SurfaceRequest.setSurface(Surface) thành SurfaceRequest.provideSurface(Surface)SurfaceRequest.setWillNotComplete() thành SurfaceRequest.willNotProvideSurface(). (I224fe)
  • Sửa lỗi khởi chạy các biến thể ứng dụng đã bật ProGuard bằng cách duy trì cờ đặt trình cung cấp CameraXConfig mặc định. (I2d6c1)

Camera-Extensions Phiên bản 1.0.0-alpha07

Ngày 10 tháng 2 năm 2020

Phát hành androidx.camera:camera-extensions:1.0.0-alpha07. Phiên bản 1.0.0-alpha07 bao gồm các thay đổi sau.

Sửa lỗi

  • Các đối số trước đây đã được truyền vào ImageCapture.OnImageSavedCallback.onError()ImageCapture.OnImageCapturedCallback.onError() hiện đã được thay thế bằng một đối số duy nhất ImageCaptureException. Đối số này vẫn chứa mọi thông tin đã được truyền trước đó.
  • Xoá tệp mà đối số truyền trước đó trong ImageCapture.OnImageSavedCallback.onImageSaved(). (I750d2)

Camera-View Phiên bản 1.0.0-alpha07

Ngày 10 tháng 2 năm 2020

Phát hành androidx.camera:camera-view:1.0.0-alpha07. Phiên bản 1.0.0-alpha07 bao gồm các thay đổi sau.

Thay đổi về API

  • Quá trình cài đặt TextureView của PreviewView hiện đặt kích thước của TextureView bằng kích thước đầu ra của cảm biến máy ảnh trước khi mở rộng để lấp đầy PreviewView mẹ. Nếu muốn chế độ xem trước của máy ảnh lấp đầy toàn bộ một phần giao diện người dùng (ví dụ: toàn bộ màn hình), bạn không nên thiết lập kích thước của PreviewView thành giá trị cố định hoặc để kích thước bọc nội dung bên trong (chẳng hạn như bằng cách sử dụng thuộc tính "wrap_content") do có thể dẫn đến việc chế độ xem trước trên máy ảnh chỉ lấp đầy một phần của PreviewView (khi kích thước đầu ra cảm biến của máy ảnh nhỏ hơn). Thay vào đó, bạn nên đặt PreviewView lớn bằng lớp cha (bằng cách sử dụng thuộc tính "match_parent" chẳng hạn). (1204869)

Sửa lỗi

  • Cập nhật ImageCapture để cho phép lưu hình ảnh vào UriOutputStream. Kết hợp nhiều phương thức nạp chồng takePicture thành một. Cập nhật ứng dụng kiểm thử để dùng Uri làm ví dụ chuẩn hoá. (Ia3bec)
  • Đổi tên Preview.PreviewSurfaceProvider thành Preview.SurfaceProvider. SurfaceProvider không còn yêu cầu nhà phát triển tạo ListenableFuture riêng và việc cung cấp Surface hiện đã được thực hiện thông qua đối tượng SurfaceRequest mới. Phương thức Preview.getPreviewSurfaceProvider() đã bị xoá do có khả năng sử dụng sai khi Preview được ghép nối với các lớp khác như PreviewView. (I20105)
  • Các đối số trước đây đã được truyền vào ImageCapture.OnImageSavedCallback.onError()ImageCapture.OnImageCapturedCallback.onError() hiện đã được thay thế bằng một đối số duy nhất ImageCaptureException. Đối số này vẫn chứa mọi thông tin đã được truyền trước đó.
  • Xoá tệp mà đối số truyền trước đó trong ImageCapture.OnImageSavedCallback.onImageSaved(). (I750d2)
  • Cập nhật API, với phương thức getZoomRatio() ,getMaxZoomRatio() ,getMinZoomRatio()getLinearZoom() củaCameraInfo hợp nhất thànhgetZoomState() mà sẽ trả về một thực thể ZoomState. (Ib19fe)

Camera-Extensions Phiên bản 1.0.0-alpha06

Ngày 22 tháng 1 năm 2020

Phát hành androidx.camera:camera-extensions:1.0.0-alpha06. Phiên bản 1.0.0-alpha06 bao gồm các thay đổi sau.

Bản cập nhật

  • Nhiều bản sửa lỗi và cập nhật giúp hỗ trợ thay đổi Camera Core và Camera2.

Camera-View Phiên bản 1.0.0-alpha06

Ngày 22 tháng 1 năm 2020

Phát hành androidx.camera:camera-view:1.0.0-alpha06. Phiên bản 1.0.0-alpha06 bao gồm các thay đổi sau.

Bản cập nhật

  • Nhiều bản sửa lỗi và cập nhật giúp hỗ trợ thay đổi Camera Core và Camera2.

Camera-Extensions Phiên bản 1.0.0-alpha05

Ngày 18 tháng 12 năm 2019

Phát hành androidx.camera:camera-extensions:1.0.0-alpha05. Phiên bản 1.0.0-alpha05 bao gồm các thay đổi sau.

Sửa lỗi

  • Cập nhật để phù hợp với các API Camera Core nội bộ.

Camera-View Phiên bản 1.0.0-alpha05

Ngày 18 tháng 12 năm 2019

Phát hành androidx.camera:camera-view:1.0.0-alpha05. Phiên bản 1.0.0-alpha05 bao gồm các thay đổi sau.

Lỗi đã biết

  • Tỷ lệ khung hình có thể không chính xác khi sử dụng PreviewView (b/146215202).

Tính năng mới

  • Cài đặt một lớp mới có tên là PreviewView.TextureViewImplementation. Lớp này sẽ đồng bộ hoá vòng đời của SurfaceTexture với việc sử dụng khu vực (surface) của TextureView.

Camera-Extensions Phiên bản 1.0.0-alpha04

Ngày 4 tháng 12 năm 2019

Phát hành androidx.camera:camera-extensions:1.0.0-alpha04. Phiên bản 1.0.0-alpha04 của tiện ích máy ảnh có bao gồm các thay đổi sau

Thay đổi về API

  • Giờ đây, việc kiểm tra tình trạng sẵn có của tiện ích và tiện ích có được bật hay không sẽ lấy CameraSelector làm tham số đầu vào. Lớp này phải giống với CameraSelector được dùng để liên kết trường hợp sử dụng.

    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)
    
  • Bạn phải khởi chạy tiện ích trước khi sử dụng thư viện tiện ích.

    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 Phiên bản 1.0.0-alpha04

Ngày 4 tháng 12 năm 2019

Phát hành androidx.camera:camera-view:1.0.0-alpha04. Phiên bản 1.0.0-alpha04 của chế độ xem máy ảnh bao gồm các thay đổi sau

Thay đổi về API

  • Cung cấp lớp PreviewView để dễ dàng hiển thị kết quả đầu ra từ trường hợp sử dụng Bản xem trước trong ứng dụng.
  • Có thể bao gồm PreviewView trong bố cục:

    <androidx.camera.view.PreviewView
      android:id="@+id/preview_view"
       />
    
  • PreviewView cung cấp PreviewSurfaceProvider để dễ dàng kết nối trường hợp sử dụng Preview

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • ZoomLevel” hiện được đổi thành “ZoomRatio” theo quy tắc đặt tên API

  • Một số tham số phương thức đã thay đổi giá trị rỗng

Camera-Extensions và Camera-View Phiên bản 1.0.0-alpha03

Ngày 9 tháng 10 năm 2019

Phát hành androidx.camera:camera-extensions:1.0.0-alpha03androidx.camera:camera-view:1.0.0-alpha03. Đây là các thay đổi trong camera-extensions:1.0.0-alpha03các thay đổi trong camera-view:1.0.0-alpha03.

Tính năng mới

  • Thêm trình khởi tạo Context cho tiện ích. Nâng phiên bản tiện ích lên 1.1.0

Camera-Extensions và Camera-View Phiên bản 1.0.0-alpha02

Ngày 5 tháng 9 năm 2019

Phát hành androidx.camera:camera-extensions:1.0.0-alpha02androidx.camera:camera-view:1.0.0-alpha02. Đây là các thay đổi trong camera-extensions:1.0.0-alpha02các thay đổi trong camera-view:1.0.0-alpha02.

  • Thêm kiểm thử để xác minh PreviewImageProcessorImpl đã cài đặt đúng dấu thời gian.
  • Khắc phục lỗi kiểm thử thất bại ExtensionTest trên Nexus 5 (API cấp 21) và đảm bảo có chế độ xem trước.

Camera-Extensions và Camera-View Phiên bản 1.0.0-alpha01

Ngày 7 tháng 8 năm 2019

Phát hành androidx.camera:camera-extensions:1.0.0-alpha01androidx.camera:camera-view:1.0.0-alpha01. Đây là các thay đổi trong camera-extensions:1.0.0-alpha01các thay đổi trong camera-view:1.0.0-alpha01

  • Thư viện mới cho các Tiện ích máy ảnh trong tương lai để dùng được các hiệu ứng trên các thiết bị được hỗ trợ. Thư viện này đang được phát triển.
  • Lớp Chế độ hiển thị cmáy ảnh (Camera View) mới. Thư viện này đang được phát triển.