Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

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 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.1.0 - 1.2.0-beta02 -
camera-core 1.1.0 - 1.2.0-beta02 -
camera-extensions 1.1.0 - 1.2.0-beta02 -
camera-lifecycle 1.1.0 - 1.2.0-beta02 -
camera-mlkit-vision - - 1.2.0-beta02 -
camera-view 1.1.0 - 1.2.0-beta02 -
camera-video 1.1.0 - 1.2.0-beta02 -
Lần gần nhất cập nhật thư viện này: ngày 21 tháng 9 năm 2022

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.2.0-beta02"
  // 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.2.0-beta02"
    // 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.

Phiên bản 1.2

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.

Các 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 QualitySelector của người sáng tạo 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

  • Đã khắc phục sự cố 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ề 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. (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

  • 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. (Id4c11)
  • Đã tắt HDR+ trên Pixel 2 XL / Pixel 3 XL ở chế độ MINIMIM_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 có 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ú giải @RequiresApi(21) vào tất cả lớp CameraX và thả minSdkVersion từ 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

  • Chú thích nghiệmUse CaseGroup hiện đang bị xoá vì các API này không còn 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

  • Khắc phục 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)
  • Khắc phục lỗi trong đó Preview 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 bá 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, 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

  • Khắc phục 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)
  • Khắc phục 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)
  • Khắc phục lỗi IllegalArgumentException xảy ra khi tất cả kích thước được hỗ trợ xem trước đều nhỏ hơn 640x480 và kích thước hiển thị lớn hơn 640x480. (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

  • Khắc phục 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

  • Khắc phục lỗi IllegalArgumentException xảy ra khi tất cả kích thước được hỗ trợ xem trước đều nhỏ hơn 640x480 và kích thước hiển thị lớn hơn 640x480. (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

  • Khắc phục lỗi IllegalArgumentException xảy ra khi tất cả kích thước được hỗ trợ xem trước đều nhỏ hơn 640x480 và kích thước hiển thị lớn hơn 640x480. (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)
  • Khắc phục 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

  • Khắc phục 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

  • Khắc phục 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 tính năng 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 mớiTranformationInfoListener. (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 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)
  • Khắc phục 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 (864x480) với tỷ lệ khung hình 16:9 nếu cài đặt độ phân giải mục tiêu là 2016x1080 và kích thước 1920x1080 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, do đó sẽ có một bản đồ ánh xạ trực tiếp nơi nhà máy Camera tạo điểm. 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 động không còn gặp sự cố khi sử dụng một Context không trả về đối tượng Application 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)
  • Khắc phục 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)
  • Khắc phục 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 chế độ xem 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)
  • Khắc phục 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)
  • Khắc phục 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)
  • 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 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, tất cả 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)
  • Khắc phục 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 bảo vệ cờ cài đặt giao diện 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

  • Khắc phục 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 bảo vệ cờ cài đặt giao diện 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)
  • Khắc phục lỗi 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 tất cả 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. Bây giờ, CameraX 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".
  • Khắc phục 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.
  • Khắc phục 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 (bội số của 16).
  • 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

  • Khắc phục 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 cuộc gọi đến getInstance() sau này trong vòng đời của activity để 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))
    
  • Giờ đây, bạ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.

  • Quan trọng: Việc cài đặt 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 (backpressure). 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.
  • Lỗi đã 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 tiểu vùng.
    • 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 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).
  • API Executor: 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.
  • Khắc phục 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 phương thứ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 thành phần 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.

  • Khắc phục 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.

  • Khắc phục 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á 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 camera. Đ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ã của mình và điều chỉnh 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 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 mặc định được cài đặt nội bộ sẽ hoạt động như là executor không bị chặn.

Sửa lỗi

  • Khắc phục 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.
  • Khắc phục 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

  • Khắc phục 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 cài đặt các kết quả 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
  • Khắc phục 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.
  • Khắc phục 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ả khu vực
  • 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 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 động không còn gặp sự cố khi sử dụng một Context không trả về đối tượng Application 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 cấu hình với ProcessCameraProvider#configurethực thể() trước khi gọi ProcessCameraProvider#getthực thể(). Đ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 kế thừa 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.

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 @RequestApi(21) vào tất cả lớp CameraX và thả minSdkVersion từ 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

  • Chú thích nghiệmUse CaseGroup hiện đang bị xoá vì các API này không còn 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 lắng nghe sự kiện set/clear thành add/remove/removeAll, xoá biến setListener sử dụ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 ExtensionErrorListener 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 getthực thể, isExtensionAvailable vàgetExtensionEnabledCameraSelector và không sử dụng các lớp <EffectName><UseCase>Extender và API cũ nữa. (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. Có thể sử dụng các API này mà không cần chú thích OptIn. (I4bc94)
  • Thê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 đã 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(). Hai phương thức này dùng để tuỳ chỉnh chế độ xoay trong 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 mớiTranformationInfoListener. (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)
  • 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, do đó sẽ có một bản đồ ánh xạ trực tiếp nơi nhà máy Camera tạo điểm. 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 chế độ xem trước không được 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 bảo vệ cờ cài đặt giao diện 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 tất cả 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 của 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 (bằng cách sử dụng thuộc tính "wrap_content" chẳng hạn) 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 (nếu kích thước đầu ra của cảm biến máy ảnh nhỏ hơn). Thay vào đó, bạn nên đặt PreviewView lớn bằng lớp mẹ (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 tất cả 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.