CameraX
Bảng này liệt kê tất cả cấu phần phần mềm trong nhóm androidx.camera
.
Cấu phần phần mềm | Bản phát hành ổn định | Bản phát hành dùng thử | Bản phát hành beta | Bản phát hành alpha |
---|---|---|---|---|
camera-camera2 | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-core | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-compose | - | - | - | 1.5.0-alpha04 |
camera-effects | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-extensions | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-feature-combination-query | - | - | - | 1.5.0-alpha04 |
camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha04 |
camera-lifecycle | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-mlkit-vision | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-view | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-viewfinder | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
camera-video | 1.4.1 | - | - | 1.5.0-alpha04 |
Kiểm thử trên thiết bị
CameraX được kiểm thử trên nhiều thiết bị trong phòng thí nghiệm của chúng tôi. Để xem danh sách các thiết bị hiện có trong phòng thí nghiệm, hãy xem phần Các thiết bị được dùng để kiểm thử CameraX.
Khai báo phần phụ thuộc
Để thêm một phần phụ thuộc trên CameraX, bạn phải thêm kho lưu trữ Google Maven vào dự án. Hãy đọc bài viết về kho lưu trữ Maven của Google để biết thêm thông tin.
Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle
cho ứng dụng hoặc mô-đun của mình:
Groovy
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.5.0-alpha03" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" // If you want to additionally use the CameraX Lifecycle library implementation "androidx.camera:camera-lifecycle:${camerax_version}" // If you want to additionally use the CameraX VideoCapture library implementation "androidx.camera:camera-video:${camerax_version}" // If you want to additionally use the CameraX View class implementation "androidx.camera:camera-view:${camerax_version}" // If you want to additionally add CameraX ML Kit Vision Integration implementation "androidx.camera:camera-mlkit-vision:${camerax_version}" // If you want to additionally use the CameraX Extensions library implementation "androidx.camera:camera-extensions:${camerax_version}" }
Kotlin
dependencies { // CameraX core library using the camera2 implementation val camerax_version = "1.5.0-alpha03" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation("androidx.camera:camera-core:${camerax_version}") implementation("androidx.camera:camera-camera2:${camerax_version}") // If you want to additionally use the CameraX Lifecycle library implementation("androidx.camera:camera-lifecycle:${camerax_version}") // If you want to additionally use the CameraX VideoCapture library implementation("androidx.camera:camera-video:${camerax_version}") // If you want to additionally use the CameraX View class implementation("androidx.camera:camera-view:${camerax_version}") // If you want to additionally add CameraX ML Kit Vision Integration implementation("androidx.camera:camera-mlkit-vision:${camerax_version}") // If you want to additionally use the CameraX Extensions library implementation("androidx.camera:camera-extensions:${camerax_version}") }
Ý kiến phản hồi
Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.
Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.
Camera Viewfinder Compose Phiên bản 1.0
Phiên bản 1.0.0-alpha02
Ngày 12 tháng 6 năm 2024
Phát hành androidx.camera:camera-viewfinder-compose:1.0.0-alpha02
. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.
Phiên bản 1.0.0-alpha01
Ngày 14 tháng 5 năm 2024
Phát hành androidx.camera:camera-viewfinder-compose:1.0.0-alpha01
. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
- Thư viện mới. Thư viện này giới thiệu một thành phần kết hợp Kính ngắm gốc của Compose, có thể dùng được với CameraX và Camera2. Kính ngắm có thể kết hợp hỗ trợ nhiều tỷ lệ khung hình và xử lý các sự kiện chạm.
Camera Viewfinder Phiên bản 1.4
Phiên bản 1.4.0-alpha07
Ngày 12 tháng 6 năm 2024
Phát hành androidx.camera:camera-viewfinder:1.4.0-alpha07
và androidx.camera:camera-viewfinder-core:1.4.0-alpha07
. Phiên bản 1.4.0-alpha07 bao gồm các thay đổi sau.
Phiên bản 1.4.0-alpha06
Ngày 14 tháng 5 năm 2024
Phát hành androidx.camera:camera-viewfinder:1.4.0-alpha06
và androidx.camera:camera-viewfinder-core:1.4.0-alpha06
. Phiên bản 1.4.0-alpha06 bao gồm các thay đổi sau.
Thay đổi về API
- Đổi tên Enum
ImplementationMode
củaViewfinder
để phản ánh rõ hơn các phương thức triển khai cơ bản và thêm hằng số cố định choTransformationInfo.sourceRotation
. (Ic6149) - Thêm
ZoomGestureDetector.ZoomEvent
để đóng gói các trạng thái của cử chỉ thu phóng. (I84cdf)
Camera Phiên bản 1.5
Phiên bản 1.5.0-alpha04
Ngày 11 tháng 12 năm 2024
Phát hành androidx.camera:camera-*:1.5.0-alpha04
. Phiên bản 1.5.0-alpha04 bao gồm các thay đổi sau.
Thay đổi về API
- Đã hiển thị
ImageCapture.Builder#setOutputFormat
vàImageCaptureCapabilities#getSupportedOutputFormats
dưới dạng API ổn định (Ieb04a) - Thêm
VideoCapture.getResolutionInfo()
để nhận thông tin độ phân giải khiVideoCapture
được liên kết với một Vòng đời. (Icb478) - Đã hiển thị
PreviewView.getScreenFlash
vàPreviewView.setScreenFlashOverlayColor
dưới dạng API ổn định. (I74fee)
Sửa lỗi
- Khắc phục lỗi chụp không thành công trên thiết bị Vivo 1610 khi chụp ảnh bằng đèn flash trong bóng tối. (I366f4)
- Khắc phục lỗi đèn pin tắt ngoài dự kiến sau khi chụp ảnh trên Redmi Note 6 Pro. (I2e0e8, b/377144569)
- Khắc phục lỗi trên các thiết bị Pixel chạy Android 15, trong đó chế độ BAN ĐÊM trong Tiện ích không chụp được ảnh tĩnh cho đến khi máy ảnh lấy nét vào một vật thể ở gần. (I228d4)
- Khắc phục lỗi chụp ảnh tĩnh khi bật tiện ích và
VideoCapture
được liên kết với nhau. (I5c745) - Bật tính năng hỗ trợ chụp ảnh tĩnh
UltraHDR
cho Tiện ích nếu thiết bị có thể hỗ trợ tính năng này. (I48300) - Khắc phục lỗi thời gian chụp bằng đèn flash cho tính năng chụp ảnh bằng đèn flash với
CameraEffect
nhắm mục tiêu chụp ảnh trên thiết bị TCL. (I7698c)
Phiên bản 1.5.0-alpha03
Ngày 30 tháng 10 năm 2024
Phát hành androidx.camera:camera-*:1.5.0-alpha03
. Phiên bản 1.5.0-alpha03 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm API định dạng đầu ra cho RAW và RAW + JPEG
ImageCapture
, tính năng kiểm tra chức năng của thiết bị được hiển thị trongImageCaptureCapabilities#getSupportedOutputFormats
.OUTPUT_FORMAT_RAW
dùng để chụp ảnh RAW, ở định dạng Adobe DNG vàOUTPUT_FORMAT_RAW_JPEG
dùng để chụp đồng thời ảnh RAW và JPEG. APIImageCapture#takePicture
mới được dùng để chụp ảnh đồng thời, API này cần cung cấp haiOutputFileOptions
,OutputFileOptions
đầu tiên là dành cho ảnh RAW vàOutputFileOptions
thứ hai là dành cho ảnh JPEG. (Ib0f3d)
Sửa lỗi
- Khắc phục lỗi thiếu sáng đối với bản xem trước và video trên các thiết bị TCL khi bật
VideoCapture
. (Id7a64) - Khắc phục vấn đề khi gọi
startFocusMetering
bằngPreviewView.getMeteringPointFactory
không nhận được toạ độ cảm biến chính xác khi một hiệu ứng được bật hoặc khi 4 trường hợp sử dụng được liên kết (chia sẻ luồng). (I916c5, b/345993685) - Khắc phục sự cố sự kiện
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
không được kích hoạt khi quay video và không đủ dung lượng lưu trữ. (I35779, b/356399842)
Phiên bản 1.5.0-alpha02
Ngày 2 tháng 10 năm 2024
Phát hành androidx.camera:camera-*:1.5.0-alpha02
. Phiên bản 1.5.0-alpha02 bao gồm các thay đổi sau.
Tính năng mới
- Các API mới để truy vấn các tính năng máy ảnh mà thiết bị hỗ trợ. Ví dụ: kiểm tra xem có thể bật HDR và 60FPS cùng lúc hay không. Tệp này bao gồm 2 cấu phần phần mềm: camera-feature-combination-query và camera-feature-combination-query-play-services.
Đây là phiên bản tương thích của API
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported
của camera2 với dữ liệu bổ sung do Dịch vụ Google Play cung cấp.
Sửa lỗi
- Khắc phục lỗi tốc độ khung hình mục tiêu
Preview/VideoCapture
trên các thiết bị cấp LEGACY. Tốc độ khung hình mục tiêu được đặt thông qua APIsetTargetFrameRate
hoặcCamera2Interop
luôn được ghi đè thành giá trị doAeFpsRangeLegacyQuirk
cung cấp. Với bản sửa lỗi này, thư viện CameraX sẽ tuân theo giá trị được đặt thông qua APIsetTargetFrameRate
hoặcCamera2Interop
. (Ie2d32) - Thêm chức năng đèn flash/đèn pin/3A để chụp ảnh bằng
CameraEffect
. Giờ đây, các ảnh chụp bằngCameraEffect
sẽ có cùng quy trình xử lý trước và sau khi chụp (ví dụ: kích hoạt đèn flash, hội tụ 3A, v.v. khi có) như ảnh chụp không cóCameraEffect
. (I5ff30) - Loại trừ các kích thước đầu ra có vấn đề cho
ImageAnalysis
trên thiết bị Samsung SM-A057G. KhiImageAnalysis
sử dụng độ phân giải lớn hơn hoặc bằng 1920x1440, thì sẽ gây ra vấn đề bản xem trước màu đen. Áp dụngExcludedSupportedSizesQuirk
cho thiết bị SM-A057G để tránh vấn đề. (I63dfe, b/365877975) - Khắc phục vấn đề về tốc độ khung hình mục tiêu
Preview/VideoCapture
khi bật cơ chế chia sẻ luồng nội bộ để chia sẻ luồng vớiPreview
vàVideoCapture
. (I4fdac) - Bật giải pháp để khắc phục vấn đề siêu dữ liệu hình ảnh JPEG không chính xác trên các thiết bị Samsung S10e và S10+. Với bản sửa lỗi này, CameraX có thể lưu thành công hình ảnh JPEG hoặc trả về các đối tượng Bitmap chính xác khi gọi hàm
ImageProxy.toBitmap()
trên các thiết bị này nếu xảy ra lỗi siêu dữ liệu hình ảnh JPEG không chính xác. (Iae493, b/356428987) - Tắt các tiện ích cho máy ảnh sau của Samsung A52s có mã nhận dạng là 0, vì các sự cố gốc có thể xảy ra khi chụp ảnh HDR và việc định cấu hình các phiên chụp có thể không thành công đối với chế độ BOKEH hoặc FACE_RETOUCH. (I03ec9, b/364152642)
- Khắc phục sự cố sự kiện
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
không được kích hoạt khi quay video và không có đủ dung lượng lưu trữ. (Ia5b4f, b/356399842) - Khắc phục sự cố không ghi được video lần thứ hai trên Oppo A5 (CPH1931). (I181d6)
Phiên bản 1.5.0-alpha01
Ngày 4 tháng 9 năm 2024
Phát hành androidx.camera:camera-*:1.5.0-alpha01
. Phiên bản 1.5.0-alpha01 bao gồm các thay đổi sau.
Thay đổi về API
- Cung cấp API để đặt chế độ cài đặt bố cục cho tính năng quay video đồng thời bằng hai máy ảnh. Các chế độ cài đặt bao gồm giá trị alpha để kết hợp, độ lệch theo toạ độ x, y, tỷ lệ chiều rộng và chiều cao của cửa sổ hiển thị khung hình máy ảnh. Độ dời, chiều rộng và chiều cao được chỉ định theo toạ độ thiết bị đã chuẩn hoá. (Ia2b8a)
- Đã hiển thị
CameraProvider.getCameraInfo
dưới dạng API chính thức. (I901cd) - Thêm API
PendingRecording.withAudioEnabled(boolean initialMuted)
để kiểm soát trạng thái tắt tiếng ban đầu. (I635c3, b/354829267)
Sửa lỗi
- Khắc phục sự cố khi
bindToLifecycle
được gọi bằngLifecycleOwner
đã bị huỷ. (I6e6d8) - Khắc phục lỗi màn hình xem trước bị đen trong camera trước khi liên kết với
VideoCapture
trên Motorola Edge 20 Fusion. (I1fe88) - Tối ưu hoá cấu hình để phát hiện cử chỉ thu phóng trong
PreviewView
nhằm cải thiện độ mượt. (I04ffc)
Camera Phiên bản 1.4
Phiên bản 1.4.1
Ngày 11 tháng 12 năm 2024
Phát hành androidx.camera:camera-*:1.4.1
. Phiên bản 1.4.1 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi trên các thiết bị Pixel chạy Android 15, trong đó chế độ BAN ĐÊM trong Tiện ích không chụp được ảnh tĩnh cho đến khi máy ảnh lấy nét vào một vật thể ở gần. (I228d4)
- Khắc phục sự cố
ImageCapture#takePicture
hoạt động không đúng cách khi các tiện ích được bật vàVideoCapture
được liên kết với nhau. (I5c745)
Phiên bản 1.4.0
Ngày 30 tháng 10 năm 2024
Phát hành androidx.camera:camera-*:1.4.0
. Phiên bản 1.4.0 bao gồm các thay đổi sau.
Thay đổi quan trọng kể từ phiên bản 1.3.0
CameraX 1.4.0 có nhiều nội dung cập nhật thú vị! Sau đây là bản tóm tắt:
Tính năng nổi bật trong dòng tiêu đề: HDR 10 bit:
- Dễ dàng chụp ảnh và quay video HDR tuyệt đẹp.
- Hỗ trợ HLG và mã hoá HEVC 10 bit.
- Tận hưởng bản xem trước HDR 10 bit và truy vấn các chức năng của thiết bị.
- Hoạt động với hình ảnh
UltraHDR
và video HDR trên nhiều thiết bị.
Các tính năng thú vị khác:
- Tiện ích Kotlin: Thêm các hàm tạm ngưng
takePicture
vàawaitInstance
. - Hiệu ứng theo thời gian thực: Áp dụng các hiệu ứng như hình mờ và làm nổi bật đối tượng.
- CameraController API: Các chế độ điều khiển mới cho cấu hình quay video.
- Chống rung khi xem trước: Truy vấn chức năng của thiết bị và bật tính năng chống rung.
- Cải tiến VideoCapture: Kiểm soát chất lượng tốt hơn và truy cập vào độ phân giải cao hơn.
- Tích hợp tiện ích CameraX: Tích hợp liền mạch với
VideoCapture
và các tính năngImageCapture
mới. - API Âm thanh chụp: Dễ dàng kiểm tra các yêu cầu về âm thanh chụp theo khu vực.
- Đèn flash màn hình: Cải thiện ảnh chụp trong điều kiện thiếu sáng cho máy ảnh mặt trước.
- API siêu dữ liệu của tiện ích máy ảnh: Các API hỗ trợ điều chỉnh cường độ của tiện ích và nhận thông báo về chế độ Tiện ích hiện tại trong
ExtensionMode#AUTO
. Bạn có thể tìm thấy các bản sửa lỗi khác trong thông báo về bản Beta và RC.
Phiên bản 1.4.0-rc04
Ngày 16 tháng 10 năm 2024
Phát hành androidx.camera:camera-*:1.4.0-rc04
. Phiên bản 1.4.0-rc04 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục vấn đề khi gọi
startFocusMetering
bằngPreviewView.getMeteringPointFactory
không nhận được toạ độ cảm biến chính xác khi bật một hiệu ứng hoặc khi 4 trường hợp sử dụng được liên kết (chia sẻ luồng). (I916c5, b/345993685)
Phiên bản 1.4.0-rc03
Ngày 2 tháng 10 năm 2024
Phát hành androidx.camera:camera-*:1.4.0-rc03
. Phiên bản 1.4.0-rc03 bao gồm các thay đổi sau.
Sửa lỗi
- Thêm chức năng đèn flash/đèn pin/3A để chụp ảnh bằng
CameraEffect
. Giờ đây, các ảnh chụp bằngCameraEffect
sẽ có cùng quy trình xử lý trước và sau khi chụp (ví dụ: kích hoạt đèn flash, hội tụ 3A, v.v. khi có) như khi chụp ảnh mà không cóCameraEffect
. (I5ff30) - Tối ưu hoá độ mượt khi chụm để thu phóng trong
PreviewView
(I04ffc) - Tách Ultra HDR khỏi khả năng đầu ra 10 bit, vì tính năng hỗ trợ Ultra HDR không còn yêu cầu thiết bị phải có khả năng đầu ra 10 bit. (I96ff2, I0c3b3)
Phiên bản 1.4.0-rc02
Ngày 18 tháng 9 năm 2024
Phát hành androidx.camera:camera-*:1.4.0-rc02
. Phiên bản 1.4.0-rc02 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục sự cố khi
bindToLifecycle
được gọi bằngLifecycleOwner
đã bị huỷ. (I6e6d8) - Thêm ảnh động chế độ hiển thị trong
ScreenFlashView
choScreenFlash#apply
. Thao tác này cũng khắc phục các lỗi do việc thay đổi độ sáng hoàn tất không đồng bộ sau một khoảng thời gian. (I37cdb) - Cải thiện độ mượt khi thu phóng bằng cách ghi đè chế độ cài đặt thu phóng trong khung trên các thiết bị được hỗ trợ.
Phiên bản 1.4.0-rc01
Ngày 7 tháng 8 năm 2024
Phát hành androidx.camera:camera-*:1.4.0-rc01
. Phiên bản 1.4.0-rc01 bao gồm các thay đổi sau.
Tính năng mới
- Thêm
CameraInfo.getCameraInfo
thử nghiệm để cung cấp thông tin cụ thể về máy ảnh mà không cần liên kết các trường hợp sử dụng với máy ảnh. (I550d1)
Thay đổi về API
- Thêm API
PreviewView.getScreenFlash
vàPreviewView.setScreenFlashOverlayColor
cho các trường hợp không thêmScreenFlashView
một cách rõ ràng. (I43945)
Sửa lỗi
- Khắc phục các vấn đề về độ phơi sáng và sắc thái màu khi ảnh được chụp bằng đèn flash ở điều kiện ánh sáng yếu với trường hợp sử dụng VideoCapture được liên kết. (Ic9814)
- Khắc phục vấn đề khi làm gián đoạn yêu cầu
takePicture
có bật Tiện ích có thể không nhận được kết quả và yêu cầutakePicture
tiếp theo có thể không hoạt động nữa. (Iae78f) - Khắc phục sự cố rò rỉ bộ nhớ xảy ra khi bật Tiện ích. (Iab276)
- Khắc phục sự cố tiện ích CameraX trên các thiết bị như Pixel 7/8 và dòng Samsung Galaxy S24. Vấn đề này bắt nguồn từ sự cố chuyển đổi
Camera2OutputConfigImpl
ở chế độ phát hành, xuất hiện sau khi nâng cấp AGP lên 8.5.1 và bật tính năng rút gọn. (I99598, b/354824993)
Phiên bản 1.4.0-beta02
Ngày 12 tháng 6 năm 2024
Phát hành androidx.camera:camera-*:1.4.0-beta02
. Phiên bản 1.4.0-beta02 bao gồm các thay đổi sau.
Thay đổi về API
- Tương tự như
VideoCapture
, hãy thêmsetMirrorMode
cho trường hợp sử dụng Xem trước. Tính năng này sẽ hỗ trợ chế độ phản chiếu BẬT và TẮT cho luồng Xem trước thông quaOutputConfiguration.setMirrorMode
từ API 33 trở lên, đối với các API cũ, tính năng này sẽ không hoạt động. (I821f4)
Sửa lỗi
- Khắc phục lỗi ứng dụng không thể chụp ảnh thành công trên Samsung Tab A8 khi
ImageCapture
chọn 1920x1080 trong tổ hợpPreview
+VideoCapture
+ImageCapture
UseCase
. (I5a463, b/336925549) - Khắc phục lỗi chế độ quay video liên tục có thể không tiếp tục quay sau khi chuyển đổi máy ảnh. (Icb0a1)
Phiên bản 1.4.0-beta01
Ngày 14 tháng 5 năm 2024
Phát hành androidx.camera:camera-*:1.4.0-beta01
. Phiên bản 1.4.0-beta01 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm
ZoomGestureDetector.ZoomEvent
để đóng gói các trạng thái của cử chỉ thu phóng. (I84cdf)
Sửa lỗi
- Khắc phục lỗi vẫn chụp và nhấn để lấy nét không sử dụng các giá trị chế độ FPS/chống rung lặp lại của yêu cầu có thể tạo lại phiên chụp và gây ra các vấn đề về độ trễ hoặc tính năng Xem trước bị treo trên một số thiết bị. (I7dc0b)
- Khắc phục lỗi không thể chọn Độ phân giải cao khi bật
CameraEffect
trên một số thiết bị. (ví dụ: 4000x3000 trên Samsung A32 5G). (Ie3ed3, b/337336152) - Khắc phục sự cố khi chụp ảnh bằng tính năng Xem trước,
ImageCapture
vàVideoCapture(UHD)
được liên kết trên Pixel 4XL API29. (I5b288) - Hỗ trợ thiết bị ảo: Ngữ cảnh được truyền vào
ProcessCameraProvider
sẽ giữ lại mã thiết bị để đảm bảo chức năng trong môi trường thiết bị ảo. (I5ba48)
Phiên bản 1.4.0-alpha05
Ngày 17 tháng 4 năm 2024
Phát hành androidx.camera:camera-*:1.4.0-alpha05
. Phiên bản 1.4.0-alpha05 bao gồm các thay đổi sau.
Tính năng mới
- Chuyển đổi
ProcessCameraProvider
thành cách triển khai Kotlin. (I46d4f) - Thêm các hàm tạm ngưng
ImageCapture.takePicture
để cho phép gọi hàm theo cách thông thường của Kotlin. (I920be)
Thay đổi về API
- Thêm các API định dạng đầu ra vào
ImageCapture
và thêm phương thứcgetSupportedOutputFormats
vàoImageCaptureCapabilities
để truy vấn chức năng của thiết bị. Giá trị định dạng đầu ra mặc định làOUTPUT_FORMAT_JPEG
, giúp chụp hình ảnh SDR ở định dạng JPEG. Khi thiết bị hỗ trợ Ultra HDR và định dạng đầu ra được đặt thànhOUTPUT_FORMAT_JPEG_ULTRA_HDR
, CameraX sẽ chụp hình ảnh nén Ultra HDR bằng định dạng hình ảnh JPEG/R. Định dạng này tương thích ngược với định dạng JPEG SDR và hỗ trợ kết xuất nội dung HDR. Điều này có nghĩa là trên các ứng dụng hoặc thiết bị cũ, hình ảnh sẽ xuất hiện liền mạch dưới dạng JPEG thông thường; trên các ứng dụng và thiết bị đã được cập nhật để hỗ trợ đầy đủ định dạng này, hình ảnh sẽ xuất hiện dưới dạng HDR. (I5de50) - Thêm
PhysicalCameraInfo
trongCameraInfo
để truy vấn thông tin về máy ảnh thực và thêm phương thức setter/getter mã nhận dạng máy ảnh thực trongCameraSelector
(Ic5b90) - Thay thế
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED
vớiImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED
. Giá trị của hằng số vẫn giữ nguyên. Đây là để hợp nhất tất cả các hằng số vào một nơi. (I890bb) - API
RetryPolicy
mới giúp nhà phát triển tuỳ chỉnh hành vi thử lại để khởi chạy CameraX. (I36dd2) - Bật tính năng tạo đối tượng
ImageCaptureLatencyEstimate
để hỗ trợ khả năng kiểm thử (Iaba99) - Thêm
ImageAnalysis#COORDINATE_SYSTEM_SENSOR
. Khi được sử dụng,MlKitAnalyzer
sẽ trả về toạ độ trong hệ toạ độ cảm biến máy ảnh. (I3ec61) - API siêu dữ liệu tiện ích được hiển thị. Giao diện
CameraExtensionsInfo
vàCameraExtensionsControl
mới cho phép các ứng dụng theo dõi và điều chỉnh chế độ cài đặt cường độ tiện ích. Các ứng dụng có thể lấy thực thểCameraExtensionsInfo
hoặcCameraExtensionsControl
thông qua các phương thứcExtensionsManager#getCameraExtensionsInfo()
hoặcExtensionsManager#getCameraExtensionsControl()
mới thêm. (I28e1a) - Thêm
ProcessCameraProvider.awaitInstance
là phiên bản tạm ngưng củaProcessCameraProvider.getInstance
(Ib22b9) - Thêm
PreviewView#getSensorToViewTransform()
API. Ma trận này thể hiện phép biến đổi từ toạ độ cảm biến máy ảnh sang toạ độ củaPreviewView
. Bạn có thể dùng tính năng này để biến đổi toạ độ từ mộtUseCase
sang mộtUseCase
khác. Ví dụ: chuyển đổi toạ độ của các đối tượng được phát hiện trongImageAnalysis
thành lớp phủPreviewView
. (I947ab) - Làm cho API
camera-viewfinder-core
trở nên chung hơn đểcamera-viewfinder
vàcamera-viewfinder-compose
có thể sử dụng. (I1e295) - Thêm hàm
getSurface
vàoViewfinderSurfaceRequest
. (I781a0) - Sử dụng
camera-viewfinder-core
trongcamera-viewfinder
và ngừng sử dụngViewfinderSurfaceRequest
vàCameraViewfinder
. (I6198c) - Thêm
ZoomGestureDetector
để diễn giải các cử chỉ điều chỉnh theo tỷ lệ được định cấu hình cụ thể cho hoạt động chụm để thu phóng. (Ifafbf)
Sửa lỗi
- Khắc phục vấn đề lựa chọn độ phân giải của
ImageAnalysis
liên quan đến chế độ cài đặt độ phân giải mục tiêu mặc định của trình phân tích: độ phân giải mục tiêu được giữ không chính xác là 640x480 ngay cả khi các ứng dụng đã đặt chế độ cài đặt độ phân giải mặc định khác cho trình phân tích. Nếu ứng dụng gặp phải vấn đề này (1.3.0 ~ 1.3.2) và không thể nâng cấp để sử dụng các bản phát hành phiên bản mới hơn có chứa giải pháp, thì bạn có thể giải quyết vấn đề này bằng cách trực tiếp đặtResolutionSelector
có độ phân giải ưu tiên vàAspectRatioStrategy
phù hợp vớiImageAnalysis
UseCase
. (I81f72, b/330091012) - Khắc phục lỗi yêu cầu
takePicture
đã xếp hàng có thể không chạy được nếu yêu cầu hiện tại không thành công. (Ie0801) - Áp dụng tính năng kiểm tra dữ liệu JPEG không hợp lệ cho các thiết bị Vivo X60 và X60 Pro. Việc này có thể khắc phục vấn đề hình ảnh có kích thước lớn bất thường trên các thiết bị này. (I82247, b/288828159)
- Khắc phục lỗi siêu dữ liệu hình ảnh JPEG không chính xác trên các thiết bị Samsung A24. Với bản sửa lỗi này, CameraX có thể lưu thành công hình ảnh JPEG hoặc trả về các đối tượng Bitmap chính xác khi gọi hàm
ImageProxy.toBitmap()
trên các thiết bị Samsung A24. (I8d6eb, b/309005680) - Áp dụng quy trình kiểm tra dữ liệu JPEG không hợp lệ cho tất cả thiết bị Samsung nếu hình ảnh được chụp có kích thước lớn hơn 10 MB. Thao tác này có thể khắc phục vấn đề hình ảnh có kích thước lớn bất thường trên các thiết bị Samsung. (Ic2a65, b/288828159)
- Xoá tính năng hỗ trợ
ImageAnalysis
trên Tiện ích CameraX vì nhiều cách triển khai Tiện ích của nhà sản xuất thiết bị gốc (OEM) không hoạt động tốt vớiImageAnalysis
và có thể gây ra các vấn đề không nhất quán. (I2d926)
Phiên bản 1.4.0-alpha04
Ngày 24 tháng 1 năm 2024
Phát hành androidx.camera:camera-*:1.4.0-alpha04
. Phiên bản 1.4.0-alpha04 bao gồm các thay đổi sau.
Tính năng mới
- Cấu phần phần mềm mới: camera-effects: Thư viện để áp dụng hiệu ứng theo thời gian thực cho đầu ra CameraX, bao gồm
Preview
,VideoCapture
và/hoặcImageCapture
. Cấu phần phần mềm này chứa các phương thức triển khai OpenGL của APICameraEffect
giúp thao tác hiệu quả với đầu ra của máy ảnh. OverlayEffect
: để vẽ lớp phủ bằng API Canvas của Android. Điều này cho phép ứng dụng áp dụng hình mờ hoặc làm nổi bật các đối tượng được phát hiện trên đầu ra của máy ảnh.- API
DynamicRange
cho Trường hợp sử dụng xem trước: Giờ đây, bạn có thể đặt dải động trên Trường hợp sử dụng xem trước, độc lập với Trường hợp sử dụng video. Điều này cho phép các dải động HDR như HLG10 chỉ dành cho Bản xem trước. Các API mới cũng có trongCameraInfo
để truy vấn phạm vi động mà mỗi máy ảnh hỗ trợ.
Thay đổi về API
- Đổi tên
ScreenFlashUiCompleter
thànhScreenFlashListener
và di chuyểnScreenFlashUiCompleter#getExpirationTimeMillis
sang tham sốexpirationTimeMillis
củaScreenFlash#apply
. (I13944) - Thêm các API mới để cho phép đặt dải động trong trường hợp sử dụng Bản xem trước và để truy vấn dải động mà mỗi máy ảnh hỗ trợ. Điều này cho phép bạn chỉ sử dụng dải động HDR (chẳng hạn như HLG10) với trường hợp sử dụng Bản xem trước, không còn yêu cầu liên kết
VideoCapture
cùng một lúc. (If25e3) - Đổi tên
getMirroring()
thànhisMirroring()
(I47063) - Thêm tính năng hỗ trợ ước tính độ trễ chụp ảnh tĩnh theo thời gian thực trong CameraX. Tiện ích máy ảnh cho phép các ứng dụng sử dụng một API cung cấp thông tin ước tính về thời gian chụp. Thời gian ước tính này tính đến các điều kiện môi trường hiện tại, trạng thái máy ảnh và bao gồm thời gian xử lý các yêu cầu chụp nhiều khung hình cùng với mọi thời gian bổ sung để mã hoá vùng đệm đã xử lý nếu cần. (I05c3a)
- Đổi tên
ScreenFlashUiControl
thànhScreenFlash
,ScreenFlashUiControl#applyScreenFlashUi
thànhScreenFlash#apply
,ScreenFlashUiControl#clearScreenFlashUi
thànhScreenFlash#clear
và thêm phương thứcgetScreenFlashUiApplyTimeoutSeconds
thay vì hiển thị trực tiếpSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS
. (Iccdd0)
Sửa lỗi
- Khắc phục lỗi rò rỉ bộ nhớ khiến các hoạt động hoặc mảnh không được phát hành khi bật Tiện ích (I14215)
- Khắc phục vấn đề
getZoomRatio
trả về giá trị giảm không chính xác khi áp dụng tỷ lệ thu phóng tăng dần. (I4aa0d, b/317543616) - Sự kiện
ImageCapture#ScreenFlash#clear
được gọi ngay lập tức khiImageCapture
bị huỷ liên kết hoặc camera bị đóng, đồng thời khắc phục một số lỗi mà sự kiện này không bao giờ được gọi do các bản ghi trong các trường hợp này không hoàn tất đúng cách. (If99f9) - Khắc phục sự cố xảy ra khi vòng đời bị dừng trước khi yêu cầu
takePicture
hoàn tất (Idf017, b/306202751) - Khắc phục lỗi bản xem trước của máy ảnh chuyển sang màu đen khi bật Tiện ích trên một số thiết bị (I1ffd0)
- Khắc phục thời lượng ghi video không chính xác trên các thiết bị sử dụng SoC Snapdragon 778G. (If6aa7, b/316057919)
Phiên bản 1.4.0-alpha03
Ngày 13 tháng 12 năm 2023
Phát hành androidx.camera:camera-*:1.4.0-alpha03
. Phiên bản 1.4.0-alpha03 bao gồm các thay đổi sau.
Tính năng mới
- Thêm
CameraInfo.mustPlayShutterSound
để cung cấp thông tin về việc có phải phát âm thanh chụp theo các quy định hạn chế theo khu vực hay không. (Ifda84) - Thêm
OnImageCapturedCallback.onCaptureStarted
vàOnImageSavedCallback.onCaptureStarted
để thông báo khi máy ảnh bắt đầu phơi sáng một khung hình. Bạn nên phát âm thanh màn trập hoặc ảnh động màn trập tại thời điểm này. (Ic49b3) - Thêm tính năng hỗ trợ Đèn flash màn hình trong CameraX để chụp ảnh bằng máy ảnh trước. CameraX sẽ xử lý việc xử lý API phía khung và đồng bộ hoá thời gian với các thay đổi về giao diện người dùng của ứng dụng nếu cần (ví dụ: điều kiện kích hoạt trước khi chụp AE sau khi thay đổi màu/độ sáng màn hình ứng dụng). Ứng dụng sẽ chỉ cần thêm các phương thức triển khai giao diện người dùng trong giao diện
ScreenFlashUiControl
được cung cấp cho CameraX. (I8ae84) - Thêm tính năng hỗ trợ triển khai giao diện người dùng của tính năng Đèn flash màn hình trong CameraX. Các ứng dụng sẽ có thể triển khai
ImageCapture.ScreenFlashUiControl
cơ bản từPreviewView
hoặcScreenFlashView
mới thêm. Lớp phủ này sẽ thêm chế độ xem lớp phủ đơn sắc và tối đa hoá độ sáng màn hình trong khi chụp ảnh bằng đèn flash màn hình. (I1810e)
Thay đổi về API
- Hỗ trợ các tính năng mới của Tiện ích(bản xem sau và tiến trình chụp): Thêm API
ImageCapture#getImageCaptureCapabilities()
để các ứng dụng truy vấn các chức năng của lệnh gọi lại tiến trình chụp và bản xem sau. Các ứng dụng có thể bật chế độ xem sau bằngImageCapture.Builder#setPostviewEnabled()
. Bạn có thể chọn kích thước sau khi xem bằngImageCapture.Builder#setPostviewResolutionSelector()
. Khi gọitakePicture()
, bạn có thể triển khaionPostviewBitmapAvailable
vàonCaptureProcessProgressed
trongOnImageSavedCallback
hoặcOnImageCapturedCallback
để nhận thông báo tiến trình xem sau và xử lý nếu được hỗ trợ. (I5cd88) - Các API để tính toán phép biến đổi toạ độ từ cảm biến sang vùng đệm hiện tại, với một cờ cho biết liệu Surface có chứa thông tin về hướng máy ảnh hay không. (I59096)
- Hiển thị API để truy vấn
PreviewCapabitlity
trong Bản xem trướcUseCase
. (Ie5b6c) - Thêm các API để hỗ trợ nhiều chất lượng hơn cho
VideoCapture
. Bạn có thể sử dụngRecorder.Builder#setVideoCapabilitiesSource(int)
vớiVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES
để tạo một thực thểRecorder
hỗ trợ nhiều chất lượng hơnVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE
. Một trường hợp sử dụng phổ biến là khi ứng dụng cố gắng quay video UHD bất cứ khi nào có thể, nhưngCamcorderProfile
của thiết bị không bao gồm chế độ cài đặt UHD, mặc dù bộ mã hoá và giải mã có thể quay video UHD. (Iedbe2, b/263961771) - Thêm phương thức getter/setter định dạng đầu ra
ImageAnalysis
vàoCameraController
. (I9a96c, b/308240643)
Sửa lỗi
- Từ Camera
1.3.1
: Cải thiện hiệu suất củaProcessCameraProvider#bindToLifecycle()
. Thay đổi lớn nhất là tối ưu hoá quy trình xác định các tổ hợp kích thước phù hợp nhất choUseCases
. Kết quả tối ưu sẽ khác nhau tuỳ thuộc vào các tổ hợpUseCase
cụ thể và số lượng kích thước đầu ra được hỗ trợ cho các thiết bị mục tiêu. (I454f2) - Cho phép sử dụng
VideoCapture
khi Tiện ích được bật. (I91f32) - Khắc phục lỗi hình ảnh JPEG chụp có kích thước lớn trên các thiết bị dòng Samsung A71 và M51. Hình ảnh JPEG đã chụp chứa dữ liệu khoảng đệm 0 thừa trong phân đoạn dữ liệu nén JFIF. Điều này khiến hình ảnh được chụp có kích thước tệp cực lớn. Dữ liệu khoảng đệm 0 thừa đó sẽ bị xoá để hình ảnh được chụp có kích thước tệp hình ảnh bình thường. (I01afc, b/288828159)
- Tắt tính năng hỗ trợ
ImageAnalysis
trên Pixel để tránh lỗi trên Pixel vô tình trả về các kích thước được hỗ trợImageAnalysis
không trống. (I7ec31) - Khắc phục vấn đề về hiệu suất, trong đó mức tải CPU và mức tiêu thụ điện năng tăng lên khi bật Tiện ích. (Ibdccb)
- Thêm Snapdragon 480 vào
CameraUseInconsistentTimebaseQuirk
. Điều này khắc phục sự cố trên Android 12 đối với các thiết bị sử dụng chipset này, trong đó âm thanh trong bản ghi bị chênh lệch so với thời lượng thiết bị ở trạng thái tạm ngưng. (I58010)
Phiên bản 1.4.0-alpha02
Ngày 18 tháng 10 năm 2023
Phát hành androidx.camera:camera-*:1.4.0-alpha02
. Phiên bản 1.4.0-alpha02 bao gồm các thay đổi sau.
Thay đổi về API
- Đổi tên API thành
setCameraOpenRetryMaxTimeoutInMillisWhileResuming
và đổi tên đối số. (I72370) - Thêm API để truy vấn chức năng của thiết bị và bật tính năng ổn định video/bản xem trước. (I87544)
- Cung cấp API để tuỳ chỉnh thời gian chờ tối đa khi mở lại máy ảnh. (I0c642)
- Phát hành
ProcessCameraProvider.shutdownAsync
dưới dạng API kiểm thử công khai để cho phép sử dụng trình cung cấp máy ảnh xử lý trong các bộ kiểm thử có thể cần khởi chạy CameraX theo nhiều cách khác nhau giữa các lần kiểm thử. (I9eca7) - Thêm API để định cấu hình dải tương phản động, tốc độ khung hình và chế độ phản chiếu khi quay video. (Ifb8f7)
- Ngừng sử dụng
OutputSize
và thay thế bằngResolutionSelector
.ResolutionSelector
là một cách toàn diện hơn để chọn độ phân giải và nhất quán với API camera-core. (I93abd, b/286801438)
Sửa lỗi
- Khắc phục lỗi bản xem trước bị đen trên Samsung Galaxy S23 Ultra 5G khi bật tiện ích Bokeh hoặc Làm đẹp khuôn mặt bằng
ImageAnalysis
trên camera sau. (I2e8b1) - Khắc phục lỗi Bản xem trước và
VideoCapture
bị giãn trên Moto E5 Play. (73dce2)
Phiên bản 1.4.0-alpha01
Ngày 20 tháng 9 năm 2023
Phát hành androidx.camera:camera-*:1.4.0-alpha01
. Phiên bản 1.4.0-alpha01 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm API mới để truy cập thông tin về biên độ âm thanh trong khi ghi. (Id4925)
Sửa lỗi
- Cải thiện độ ổn định của Tiện ích bằng cách đảm bảo các sự kiện khởi chạy và huỷ khởi chạy được kích hoạt theo đúng thứ tự. (Ib3b8e)
- Khắc phục lỗi cấu hình phiên chụp vượt quá tổ hợp bề mặt được hỗ trợ do thêm bề mặt lặp lại bổ sung trong nội bộ. (Id718c)
- Khắc phục lỗi hình ảnh JPEG chụp được có kích thước lớn trên thiết bị Vivo S16. Hình ảnh JPEG được chụp chứa dữ liệu khoảng đệm 0 thừa trong phân đoạn dữ liệu nén JFIF. Điều này khiến hình ảnh được chụp có kích thước tệp lớn. Dữ liệu khoảng đệm 0 thừa đó sẽ bị xoá để hình ảnh được chụp có kích thước tệp hình ảnh bình thường. (I79505, b/299069235)
- Khắc phục lỗi không thể liên kết
ImageAnalysis
vớiImageCapture
và Bản xem trước khi bật một số chế độ tiện ích trên một số thiết bị. Bản sửa lỗi sẽ trả về giá trị chính xác khi các ứng dụng truy vấn tình trạng sẵn có củaImageAnalysis
thông quaExtensionsManager#isImageAnalysisSupported()
. (I7d538) - Cập nhật JavaDoc cho phù hợp với hành vi. Thay vì hoàn tất ngay lập tức,
#setZoomRatio
,#setLinearZoom
và#enableTorch
sẽ chờ cho đến khi máy ảnh sẵn sàng. Ngoài ra, chúng tôi cũng thêm thông tin về cách lấy FOV tối đa bằng API#takePicture
. (I23588)
Phiên bản 1.3
Phiên bản 1.3.4
Ngày 12 tháng 6 năm 2024
Phát hành androidx.camera:camera-*:1.3.4
. Phiên bản 1.3.4 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục vấn đề
getZoomRatio
trả về giá trị giảm không chính xác khi áp dụng tỷ lệ thu phóng tăng dần. (I4aa0d, b/317543616) - Khắc phục lỗi chụp ảnh tĩnh/chạm để lấy nét không sử dụng các giá trị chế độ ổn định/FPS yêu cầu lặp lại. Điều này có thể tạo lại phiên chụp và gây ra các vấn đề về độ trễ hoặc khiến tính năng Xem trước bị treo trên một số thiết bị. (I7dc0b)
- Khắc phục vấn đề tốc độ khung hình được đặt thành giá trị thấp hơn khi gọi
setTargetFrameRate
bằngFRAME_RATE_RANGE_UNSPECIFIED
. (I78c61)
Phiên bản 1.3.3
Ngày 17 tháng 4 năm 2024
Phát hành androidx.camera:camera-*:1.3.3
. Phiên bản 1.3.3 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục vấn đề lựa chọn độ phân giải của
ImageAnalysis
liên quan đến chế độ cài đặt độ phân giải mục tiêu mặc định của trình phân tích: độ phân giải mục tiêu được giữ không chính xác là 640x480 ngay cả khi các ứng dụng đã đặt chế độ cài đặt độ phân giải mặc định khác cho trình phân tích. Nếu ứng dụng gặp phải vấn đề này (1.3.0 ~ 1.3.2) và không thể nâng cấp để sử dụng các bản phát hành phiên bản mới hơn có chứa giải pháp, thì bạn có thể giải quyết vấn đề này bằng cách trực tiếp đặtResolutionSelector
có độ phân giải ưu tiên vàAspectRatioStrategy
phù hợp với UseCaseImageAnalysis
. (I81f72, b/330091012)
Phiên bản 1.3.2
Ngày 6 tháng 3 năm 2024
Phát hành androidx.camera:camera-*:1.3.2
. Phiên bản 1.3.2 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi siêu dữ liệu JPEG trên các thiết bị Samsung A24. CameraX hiện lưu hình ảnh chính xác và hàm
ImageProxy.toBitmap()
trả về các đối tượng Bitmap chính xác. (I8d6eb, b/309005680) - Xoá tuỳ chọn độ phân giải 9280x6944 trên các thiết bị Redmi Note 9 Pro do gặp vấn đề. (Ia23da)
Phiên bản 1.3.1
Ngày 13 tháng 12 năm 2023
Phát hành androidx.camera:camera-*:1.3.1
. Phiên bản 1.3.1 bao gồm các thay đổi sau.
Sửa lỗi
Cải thiện hiệu suất ProcessCameraProvider#bindToLifecycle()
. Thay đổi lớn nhất là tối ưu hoá quy trình xác định các tổ hợp kích thước phù hợp nhất cho UseCases
. Kết quả tối ưu sẽ khác nhau tuỳ thuộc vào các tổ hợp UseCase
cụ thể và số lượng kích thước đầu ra được hỗ trợ cho các thiết bị mục tiêu. (I454f2)
Dưới đây là một số kết quả tham khảo cho nhiều trường hợp:
Bốn
UseCases
:Preview
+ImageCapture
+ImageAnalysis
+VideoCapture
- Google Pixel 7: Khoảng 430 mili giây đến 60 mili giây
- Samsung Galaxy S23 Ultra: Khoảng 540 mili giây đến 45 mili giây
- Samsung A53 5G: Khoảng 115 mili giây đến 70 mili giây
Ba
UseCases
:Preview
+ImageCapture
+ImageAnalysis
- Google Pixel 7: Khoảng 9 mili giây đến 7 mili giây
- Samsung Galaxy S23 Ultra: Khoảng 6 mili giây đến 5 mili giây
- Samsung A53 5G: Khoảng 32 mili giây đến 12 mili giây
Thêm Snapdragon 480 vào
CameraUseInconsistentTimebaseQuirk
. Điều này khắc phục sự cố trên Android 12 đối với các thiết bị sử dụng chipset này, trong đó âm thanh trong bản ghi bị chênh lệch so với thời lượng thiết bị ở trạng thái tạm ngưng. (I58010)
Phiên bản 1.3.0
Ngày 18 tháng 10 năm 2023
Phát hành androidx.camera:camera-*:1.3.0
. Phiên bản 1.3.0 bao gồm các thay đổi sau.
Những thay đổi quan trọng kể từ phiên bản 1.2.0
- Các tính năng của video bao gồm HDR 10 bit, cắt, phản chiếu/không phản chiếu, tắt/bật tiếng, đặt tốc độ khung hình và nhiều tính năng khác.
- Máy ảnh đồng thời kép
- Thư viện hiệu ứng
- Bộ chọn độ phân giải
- Chọn camera góc siêu rộng và camera tele
- Chuyển đổi máy ảnh trong khi quay video (tính năng thử nghiệm)
Phiên bản 1.3.0-rc02
Ngày 20 tháng 9 năm 2023
Phát hành androidx.camera:camera-*:1.3.0-rc02
. Phiên bản 1.3.0-rc02 bao gồm các thay đổi sau.
Sửa lỗi
- Cải thiện độ ổn định của Tiện ích bằng cách đảm bảo rằng các sự kiện khởi chạy và huỷ khởi chạy được kích hoạt theo đúng thứ tự. Điều này đã khắc phục một số vấn đề về bản xem trước bị đen khi chuyển đổi chế độ Tiện ích hoặc chuyển đổi máy ảnh. (Iddaac)
- Khắc phục lỗi không thể liên kết
ImageAnalysis
vớiImageCapture
và Bản xem trước khi bật một số chế độ tiện ích trên một số thiết bị. Bản sửa lỗi sẽ trả về giá trị chính xác khi các ứng dụng truy vấn tình trạng sẵn có củaImageAnalysis
thông quaExtensionsManager#isImageAnalysisSupported()
. (I7d538) - Khắc phục vấn đề âm thanh và video của video đã quay không đồng bộ khi bật chế độ phản chiếu trên Xiaomi Poco X3 NFC. (I20b4c)
Phiên bản 1.3.0-rc01
Ngày 23 tháng 8 năm 2023
Phát hành androidx.camera:camera-*:1.3.0-rc01
. Phiên bản 1.3.0-rc01 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm
PendingRecording.asPersistentRecording
để cho phép một bản ghi quay liên tục trong khiVideoCapture
mà Máy ghi âm đính kèm vào đó được chuyển lại. (I517c6)
Sửa lỗi
- Khắc phục sự cố khi một luồng được chia sẻ với cả
VideoCapture
và Bản xem trước. Ngoài ra, đã khắc phục lỗi màn hình đen trên các thiết bị LEGACY khi bật tính năng chia sẻ luồng. - Khắc phục lỗi hình ảnh JPEG chụp được có kích thước lớn trên các thiết bị dòng Samsung S7 (SM-G930T, SM-G930V). Hình ảnh JPEG đã chụp chứa dữ liệu khoảng đệm 0 thừa trong phân đoạn dữ liệu nén JFIF. Điều này khiến hình ảnh được chụp có kích thước tệp lớn. Dữ liệu khoảng đệm 0 thừa đó sẽ bị xoá để hình ảnh được chụp có kích thước tệp hình ảnh bình thường. (I407b0, b/288828159)
- Khắc phục lỗi hình ảnh JPEG chụp có kích thước lớn trên các thiết bị dòng Samsung S22 (SM-S901B, SM-S901B/DS) và S22+ (SM-S906B). Hình ảnh JPEG đã chụp chứa dữ liệu khoảng đệm 0 thừa trong phân đoạn dữ liệu nén JFIF. Điều này khiến hình ảnh được chụp có kích thước tệp lớn khoảng 13 MB trên thiết bị S22 SM-S901B/DS. Dữ liệu khoảng đệm 0 thừa đó sẽ bị xoá để hình ảnh được chụp có kích thước tệp hình ảnh bình thường. (I73be9, b/288828159)
- Khắc phục lỗi hình ảnh JPEG chụp được có kích thước lớn trên các thiết bị dòng Samsung A5, A52, A70 và A72. Hình ảnh JPEG được chụp chứa dữ liệu khoảng đệm 0 thừa trong phân đoạn dữ liệu nén JFIF. Điều này khiến hình ảnh được chụp có kích thước tệp cực lớn (ví dụ: khoảng 32 MB hoặc thậm chí 96 MB). Dữ liệu khoảng đệm 0 thừa đó sẽ bị xoá để hình ảnh được chụp có kích thước tệp hình ảnh bình thường. (I97c4d, b/288828159)
- Khắc phục sự cố gốc khi chụp ảnh khi bật Tiện ích (I698f5)
Phiên bản 1.3.0-beta02
Ngày 26 tháng 7 năm 2023
Phát hành androidx.camera:camera-*:1.3.0-beta02
. Phiên bản 1.3.0-beta02 bao gồm các thay đổi sau.
Sửa lỗi
- Sử dụng đèn pin làm đèn flash cho các biến thể Pixel 4 và 5 để cải thiện chất lượng chụp ở điều kiện ánh sáng yếu (I56ff5, b/280221967)
- Khắc phục lỗi hình ảnh JPEG chụp được có kích thước lớn trên các thiết bị dòng Samsung A5 (2017). Hình ảnh JPEG được chụp chứa dữ liệu đệm 0 thừa trong phân đoạn dữ liệu nén JFIF. Điều này khiến hình ảnh được chụp có kích thước tệp khoảng 32 MB. Dữ liệu khoảng đệm 0 thừa đó sẽ bị xoá để hình ảnh được chụp có kích thước tệp hình ảnh bình thường. (I29837, b/288828159)
- Khắc phục lỗi thử lại không kích hoạt đúng cách trong trường hợp chụp không thành công trên các thiết bị có vấn đề được đề cập trong
CaptureFailedRetryQuirk
. (I7b589)
Phiên bản 1.3.0-beta01
Ngày 21 tháng 6 năm 2023
Phát hành androidx.camera:camera-*:1.3.0-beta01
. Phiên bản 1.3.0-beta01 bao gồm các thay đổi sau.
Thay đổi về API
- Đổi tên hàm
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)
thànhsetAllowedResolutionMode
và đổi tên hằng sốResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
thànhPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION
/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
. (If84e8) - Xoá API
ImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
vàVideoCapture.setTargetRotationDegrees(int)
không dùng nữa. (Id8e77) - Lớp
DynamicRange
đại diện cho dải động của hình ảnh. Bạn có thể dùng hàm này để chọn định dạng Dải động cao làm đầu ra củaVideoCapture
thông quaVideoCapture.Builder#setDynamicRange()
. (Ib0377) - Thêm API
isImageAnalysisSupported
vàoExtensionsManager
để các ứng dụng có thể xác định xem có thể liên kết trường hợp sử dụngImageAnalysis
cùng với Bản xem trước vàImageCapture
khi bật Tiện ích hay không. (I1bc63) - Bạn có thể sử dụng lớp
VideoCapabilities
mới lấy được từRecorder
để truy vấn các dải động và chất lượng được hỗ trợ để quay video trên thiết bị. Phương thứcgetSupportedQualities()
vàisQualitySupported()
củaQualitySelector
sẽ ngừng hoạt động. Thay vào đó, vui lòng sử dụng phương thứcgetSupportedQualities()
vàisQualitySupported()
củaVideoCapabilities
. (I04014) CameraController#setVideoCaptureTargetQuality()
được đổi tên thànhsetVideoCaptureQualitySelector
và lấy đối sốQualitySelector
, giúp linh hoạt hơn trong việc thiết lập chất lượng video.CameraController#getVideoCaptureTargetQuality()
được thay đổi thànhgetVideoCaptureQualitySelector
cho phù hợp. (I520ed)- Xoá chú thích thử nghiệm cho các tính năng video. Các tính năng video hiện đã ổn định. (I1a113)
Sửa lỗi
- Sử dụng đèn pin làm đèn flash trên các mẫu Samsung SM-A320 để cải thiện tốc độ và chất lượng hình ảnh chụp trong điều kiện ánh sáng yếu. (I6a022, b/286190938)
- Thêm tính năng hỗ trợ định dạng
ImageFormat.JPEG
choImageProxy.toBitmap()
. Nếu không thể giải mã mảng byte JPEG, hệ thống sẽ gửi mộtUnsupportedOperationException
. (I81958, b/282057603)
Phiên bản 1.3.0-alpha07
Ngày 24 tháng 5 năm 2023
Phát hành androidx.camera:camera-*:1.3.0-alpha07
. Phiên bản 1.3.0-alpha07 bao gồm các thay đổi sau.
Tính năng mới
- API
VideoCapture.Builder# setTargetFrameRate(Range)
mới cho phép quay video ở các tốc độ khung hình khác ngoài tốc độ khung hình mặc định của thiết bị. Bạn có thể truy vấn tốc độ khung hình hiện có cho bản ghi thông qua APICameraInfo#getSupportedFrameRates()
mới.
Thay đổi về API
- Đổi tên hằng số
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
thànhALLOWED_RESOLUTIONS_NORMAL
/SLOW
và đổi tên hàmsetHighResolutionEnabledFlag
của trình tạo thànhsetAllowedResolutionMode
. (Iae817) CameraInfo#getSupportedFrameRateRanges()
hiện trả vềSet
thay vìList
để thể hiện rõ hơn rằng các dải ô không theo thứ tự. (I02f43)- Thêm trình nghe lỗi vào
CameraEffect
để xử lý các lỗi không thể khôi phục (Ice471) - Thêm hàm khởi tạo công khai trong
ResolutionInfo
để tăng khả năng kiểm thử (If6d1c) - Cung cấp API
UseCase.snapToSurfaceRotation(int)
để thay thế việc sử dụngsetTargetRotationDegrees
và ngừng sử dụng APIImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
vàVideoCapture.setTargetRotationDegrees(int)
. (Ia9010) - Thêm API mới
Preview#getTargetFrameRate
vàPreview.Builder#setTargetFrameRate
để có thể đặt và truy xuất tốc độ khung hình mục tiêu cho trường hợp sử dụng Bản xem trước (If4f22) VideoRecordEvent.Finalize
hiện sẽ hoàn tất với mã lỗiERROR_RECORDING_GARBAGE_COLLECTED
khi đối tượngRecording
bị dừng do thu gom rác. (Iba974)
Sửa lỗi
- Khắc phục
NullPointerException
khi kích thước đầu ra được lưu vào bộ nhớ đệm trongStreamConfigurationMapCompat
là rỗng. (Idf124, b/282025204) - Khắc phục lỗi
Preview.setSurfaceProvider(null)
không tạm dừng bản xem trước trong Tiện ích (Ia903e) - Khắc phục lỗi
ConcurrentModificationException
được gửi trong quá trình mở máy ảnh khiVideoCapture
được liên kết. (Ic8ac4)
Phiên bản 1.3.0-alpha06
Ngày 19 tháng 4 năm 2023
Phát hành androidx.camera:camera-*:1.3.0-alpha06
. Phiên bản 1.3.0-alpha06 bao gồm các thay đổi sau.
Tính năng mới
- Máy ảnh đồng thời là một tính năng mới được giới thiệu từ Android 11, hỗ trợ truyền trực tuyến đồng thời các thiết bị máy ảnh, ví dụ: cho phép một thiết bị có cả máy ảnh trước và sau hoạt động cùng lúc. CameraX hiện chỉ hỗ trợ máy ảnh đồng thời kép, cho phép hai máy ảnh hoạt động cùng lúc, với tối đa hai {@link UseCase} được liên kết cho mỗi máy ảnh. Độ phân giải tối đa là 720p hoặc 1440p, xem thêm thông tin chi tiết trong đường liên kết sau, hãy xem CameraManager#getConcurrentCameraIds()
- Giới thiệu API
ResolutionSelector
mới bao gồm các tính năng sau:- Các ứng dụng có thể chỉ định tỷ lệ khung hình và chiến lược độ phân giải để chọn độ phân giải phù hợp nhất với nhu cầu của chúng.
- Tất cả các tham số kích thước và tỷ lệ khung hình được biểu thị theo toạ độ của cảm biến thiết bị máy ảnh.
- Các ứng dụng có thể triển khai bộ lọc độ phân giải tuỳ chỉnh để sắp xếp các kích thước được hỗ trợ theo thứ tự mong muốn.
- Các ứng dụng cũng có thể bật tính năng chụp ảnh có độ phân giải cao để có được hình ảnh có độ phân giải cao hơn. Tuy nhiên, xin lưu ý rằng việc sử dụng độ phân giải cao có thể làm chậm thời gian chụp.
- Thêm các API phản chiếu
VideoCapture
. Theo mặc định, video doVideoCapture
quay sẽ không được phản chiếu. Tuy nhiên, bản xem trước của máy ảnh được phản chiếu trên camera trước theo mặc định. Các API phản chiếuVideoCapture
cho phép căn chỉnh với bản xem trước của máy ảnh khi sử dụng máy ảnh trước. Có baMirrorMode
,OFF
,ON
vàON_FRONT_ONLY
. Để phù hợp với bản xem trước của máy ảnh, bạn nên sử dụngON_FRONT_ONLY
, tức là tính năng phản chiếu không được bật cho máy ảnh sau nhưng lại được bật cho máy ảnh trước.
Thay đổi về API
- Đã hiển thị API
ResolutionSelector
mới. Các ứng dụng có thể chỉ định tỷ lệ khung hình và chiến lược độ phân giải bằng các quy tắc dự phòng hoặc bộ lọc độ phân giải tuỳ chỉnh để đạt được kết quả mong muốn. Các ứng dụng có thể chỉ định một cờ để bật tính năng chụp ở độ phân giải cao. Điều này sẽ cho phép CameraX chọn độ phân giải cao hơn khi chụp ảnh hoặc quay video. Tuy nhiên, xin lưu ý rằng việc sử dụng độ phân giải cao có thể làm chậm thời gian chụp. (Ibed95) - Bạn hiện có thể truy vấn các dải FPS được thuật toán AE hỗ trợ thông qua
CameraInfo#getSupportedFrameRateRanges()
. (Iaa67f) - Hợp nhất tên của tất cả các phương thức tốc độ khung hình thành "FrameRate". Sửa lỗi javadoc trong
VideoCapture#getTargetFrameRate()
(I83304) - Ngừng sử dụng API
setTargetAspectRatio
vàsetTargetResolution
cũ. Thay vào đó, vui lòng sử dụng APIResolutionSelector
mới. (I542c3) - Thêm API công khai cho máy ảnh kép đồng thời, bao gồm cả
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
boolean isConcurrentCameraModeOn()
vàConcurrentCameraConfig
,SingleCameraConfig
vàConcurrentCamera
(Iab1c1)
- Đặt
ImageProcessor.Response#getOutputImage
thành NonNull (Ib9c60) - Thêm các API phản chiếu
VideoCapture
, bao gồmVideoCapture.Builder.setMirrorMode(int)
vàVideoCapture.getMirrorMode()
. Các API này hữu ích cho các ứng dụng yêu cầu tính năng quay video phải nhất quán với hành vi xem trước thông thường của máy ảnh, tức là bản xem trước của camera sau không được phản chiếu nhưng bản xem trước của camera trước được phản chiếu. (I713b6, b/194634656) - Thêm API
setTargetFrameRate()
trong APIVideoCapture.Builder
vàgetTargetFramerate()
trongVideoCapture
(I109d4) - Tạo
SurfaceOutput
mở rộng Closable và ẩn hàm khởi tạo công khai của SurfaceOutput.Event
. (I60ea8) - Thêm
Recording.mute
để tự động tắt hoặc bật tiếng bản ghi đang xử lý.RecordingStats
sẽ chứaAudioStats.AUDIO_STATE_MUTED
khi bản ghi đang xử lý bị tắt tiếng một cách rõ ràng. (Ie17fc) - Đặt tham số
#setEffects()
không phải là giá trị rỗng. Thêm API#clearEffects()
để xoá hiệu ứng. Ứng dụng sẽ gọi#clearEffects()
để xoá hiệu ứng. (I4b4d9) - Thêm một hàm khởi tạo thứ hai cho
ViewfinderSurfaceRequest.Builder
để lấy một trình tạo cho hàm khởi tạo sao chép (I621a7)
Sửa lỗi
- Khắc phục vấn đề ứng dụng gọi API Tiện ích có thể gặp sự cố khi đóng máy ảnh (Ib27e5)
- Khắc phục vấn đề
VideoCapture
không thể hoạt động với máy ảnh trước trên một số thiết bị. Ví dụ: trên Samsung Galaxy S23 và Xiaomi 2107113SG. (Ibec7e, b/270656244) - Khắc phục vấn đề chụp ảnh bằng Tệp trong thư mục công khai của bộ nhớ ngoài luôn không thành công trong Android 10 trở lên. Xin lưu ý rằng trong Android 10, việc chụp ảnh bằng Tệp trong thư mục công khai của bộ nhớ ngoài cũng yêu cầu đặt
requestLegacyExternalStorage
thành true trong thẻ ứng dụng. (I11b2c) - Khắc phục sự cố
RejectedExecutionException
trongDefaultSurfaceProcessor
. Sự cố có thể xảy ra khiVideoCapture
được liên kết và hoạt động bị tạm dừng. (Idb46a, b/273713906)
Phiên bản 1.3.0-alpha05
Ngày 22 tháng 3 năm 2023
Phát hành androidx.camera:camera-*:1.3.0-alpha05
. Phiên bản 1.3.0-alpha05 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm các API xoay
VideoCapture
, bao gồmVideoCapture.Builder.setTargetRotation(int)
,VideoCapture.setTargetRotation(int)
,VideoCapture.setTargetRotationDegrees(int)
vàVideoCapture.getTargetRotation()
. Các API này hữu ích cho các ứng dụng khoá hướng thiết bị.ImageCapture.setTargetRotationDegrees(int)
vàImageAnalysis.setTargetRotationDegrees(int)
cũng được thêm vào. (Id3ffe, b/205242781) - Cho phép
VIDEO_CAPTURE
vàPREVIEW|VIDEO_CAPTURE
làm mục tiêu hiệu ứng. Các hiệu ứng nhắm đếnVIDEO_CAPTURE
sẽ được áp dụng cho UseCaseVideoCapture
; Các hiệu ứng nhắm đếnPREVIEW|VIDEO_CAPTURE
sẽ được áp dụng cho một luồng dùng chung trước khi sao chép vào luồng Xem trước vàVideoCapture
. (Iee6f3)
Sửa lỗi
- Từ Máy ảnh
1.2.2
: Khắc phục vấn đề Tiện ích CameraX không hoạt động đúng cách khi bật proguard trên một số thiết bị như Pixel (I90aa2) - Khắc phục lỗi
PreviewView
nếu ứng dụng tự xử lý hướng màn hình. bản xem trước có thể bị méo khi xoay. Điều này chỉ xảy ra trên một số thiết bị. Lỗi này có thể tái hiện trên Pixel a4, Pixel 5 và Pixel 6a. (I14340, b/223488673)
Phiên bản 1.3.0-alpha04
Ngày 22 tháng 2 năm 2023
Phát hành androidx.camera:camera-*:1.3.0-alpha04
. Phiên bản 1.3.0-alpha04 bao gồm các thay đổi sau.
Tính năng mới
Một tính năng mới để hỗ trợ các tổ hợp Surface không được hỗ trợ trước đó bằng cách chia sẻ một luồng cho nhiều UseCase.
- Trước đây, khi liên kết "Preview, VideoCapture, ImageAnalysis" ở cấp độ phần cứng máy ảnh FULL trở xuống hoặc liên kết "Preview, VideoCapture, ImageCapture" ở cấp độ phần cứng LEGACY, CameraX sẽ gửi
IllegalArgumentException
. - Hành vi mới là các liên kết sẽ hoạt động mà không cần gửi ngoại lệ. Thay vào đó, CameraX sử dụng OpenGL để sao chép một luồng dùng chung vào cả Preview và VideoCapture.
- Do có bản sao vùng đệm nên ứng dụng có thể có độ trễ lớn hơn và tiêu thụ nhiều điện năng hơn.
Các thay đổi về API
- Thêm API để chuyển đổi
ImageProxy
thànhBitmap
. Định dạngImageProxy
được hỗ trợ làImageFormat.YUV_420_888
vàPixelFormat.RGBA_8888
. Nếu định dạng không hợp lệ,IllegalArgumentException
sẽ được gửi. (Ic7110) - Thêm
CoroutineCameraViewfinder
để hỗ trợ việc định cấu hình kính ngắm bằng cách sử dụng các hàm tạm ngưng trong Kotlin. (I657bc) - Thêm hàm khởi tạo công khai mới cho
ViewfinderSurfaceRequest
. Điều này mang lại sự linh hoạt khi người dùng không thể cung cấpCameraCharacteristics
. (Ie6549)
Sửa lỗi
- Khắc phục sự cố Tiện ích xảy ra trên một số thiết bị Samsung khi tạm dừng/tiếp tục ứng dụng quá nhanh (Iaca26)
Phiên bản 1.3.0-alpha03
Ngày 25 tháng 1 năm 2023
Phát hành androidx.camera:camera-*:1.3.0-alpha03
. Phiên bản 1.3.0-alpha03 bao gồm các thay đổi sau.
Những thay đổi về API
- Thêm
CameraInfo.getIntrinsicZoomRatio
để cung cấp thông tin về góc xem so với máy ảnh mặc định. (Ib300c) - Thêm
CameraInfo.getLensFacing
để cung cấp thông tin về ống kính mặt trước. ThêmCameraSelector#LENS_FACING_EXTERNAL
làm tính năng thử nghiệm để chọn các máy ảnh ngoài. (Icaf3e) - Thêm
#setEffect()
vàoCameraController
để thêm hiệu ứng vào đầu ra của máy ảnh. (I1d21f) - Thêm phương thức
invalidate()
vàoSurfaceRequest
. Nhà cung cấp Surface có thể thông báo rằng surface cung cấp trước đó không còn hợp lệ nữa. (Idc649) - Thêm
ImageProcessor
API. Giao diện này dùng để chèn hiệu ứng xử lý hậu kỳ vào quy trìnhImageCapture
. (I575c6) - Thêm
Recorder.Builder.setAspectRatio()
API có thể kết hợp vớiQualitySelector
để hỗ trợ thêm nhiều độ phân giải video. (I8a082) - Thêm
Recorder.Builder#setTargetVideoEncodingBitRate
để thiết lậpBitRate
mã hoá video mục tiêu vàRecorder#getTargetVideoEncodingBitRate
để nhận Tốc độ bit mã hoá video mục tiêu. (I5984d)
Sửa lỗi
- Khắc phục lỗi
ImageCapture
không thành công khi không có đơn vị flash và chế độ flash đang bật. (I9e8b4, b/263391112) - Khắc phục lỗi hỏng hình ảnh JPEG nếu ghi dữ liệu vị trí Exif trên một số thiết bị Samsung Android 12. (Ib7086, b/263747161, b/263289024)
- Khi bạn cài đặt đèn pin/thiết bị thu phóng trước khi khởi chạy máy ảnh (chẳng hạn như gọi
CameraController#enableTorch
), hành động đang chờ xử lý sẽ được lưu vào bộ nhớ đệm và được gửi sau khi quá trình khởi chạy hoàn tất. (I11e92, b/264157663)
Phiên bản 1.3.0-alpha02
Ngày 7 tháng 12 năm 2022
Phát hành androidx.camera:camera-*:1.3.0-alpha02
. Phiên bản 1.3.0-alpha02 bao gồm các thay đổi sau.
Các thay đổi về API
- Thêm API mới để áp dụng hiệu ứng xử lý hậu kỳ cho kết quả Preview (Bản xem trước). (Ic17d5)
- Đổi tên
OutputOptions.getDurationLimit
thànhOutputOptions.getDurationLimitMillis
vàOutputOptions.setDurationLimit
thànhOutputOptions.setDurationLimitMillis
. (I91f0c) - Thêm lớp (class)
AudioConfig
để xử lý chế độ cài đặt liên quan đến âm thanh trong khi quay video. Chú thích@RequiresPermission
được di chuyển từ các hàmstartRecording
sangAudioConfig
để tránh các yêu cầu cấp quyền không cần thiết trong trường hợp không cần âm thanh. (I28755) - Xoá các lớp Siêu dữ liệu, ngừng sử dụng
OnVideoSavedCallback
,OutputFileOptions
vàOutputFileResults
sau khi áp dụng API quay video mới. (I38cd8) - Áp dụng API quay video mới. Phương thức
getVideoCaptureTargetSize
vàsetVideoCaptureTargetSize
được thay thế bằng phương thứcgetVideoCaptureTargetQuality
vàsetVideoCaptureTargetQuality
tương ứng, vìsetTargetResolution
không còn được hỗ trợ. (I2a1d5)
Sửa lỗi
- Xoá API
core.VideoCapture
không dùng nữa. (I531e0) - Sửa lỗi lệnh gọi lại
onError
không được gọi khi chụp ảnh mà không có quyền lưu trữ.(I936db, b/244807669) - Cải thiện chất lượng và độ tin cậy của các tiện ích máy ảnh. Các tiện ích máy ảnh bị tắt trên các thiết bị Motorola sử dụng Tiện ích máy ảnh phiên bản 1.1.0 trở xuống do các vấn đề về hỗ trợ Bokeh, chụp ảnh và bản xem trước không tiếp tục. (Id3ce3)
- Khắc phục sự cố trục trặc mã gốc khi bật tính năng cắt video qua
ViewPort
trên các thiết bị cũ. (I16b8a, b/251357665)
Phiên bản 1.3.0-alpha01
Ngày 9 tháng 11 năm 2022
Phát hành androidx.camera:camera-*:1.3.0-alpha01
. Phiên bản 1.3.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
Camera-viewfinder
đã được xuất bản chính thức.Camera-viewfinder
cung cấp một tiện ích kính ngắm cơ sở có thể hiển thị nguồn cấp dữ liệu camera cho Camera2. Vui lòng xem mã mẫu để biết ví dụ.
Các thay đổi về API
- Thêm
OutputOptions.setDurationLimit
để cho phép đặt giới hạn thời lượng video. Bản ghi sẽ tự động hoàn tất khi vượt quá giới hạn thời lượng đã chỉ định. (I902a0) - Thêm trạng thái lỗi âm thanh khi quay video
AudioStats.AUDIO_STATE_SOURCE_ERROR
. Gửi khi không thiết lập được nguồn âm thanh hoặc xảy ra một số lỗi. (I37410)
Sửa lỗi
- Thêm quirk để cho phép một số thiết bị có vấn đề thử chụp lại một lần khi gặp lỗi chụp. (Id4795)
- Khắc phục lỗi màn hình đen khi triển khai
PreviewView
SurfaceView
trênViewPager2
. Trong quá trình khắc phục,PreviewView
sẽ sử dụng lạiSurfaceView
của nó nếu độ phân giải yêu cầu không được thay đổi. (Ib3f27) - Hỗ trợ cắt video (tính năng WYSIWYG) khi sử dụng API
ViewPort
hoặcCameraController
. (Ifbba8, b/201085351) - Video đã sửa quay bằng camera trước không quay được trên Huawei P40 lite. (I87c57, b/250807400)
Phiên bản 1.2
Phiên bản 1.2.3
Ngày 24 tháng 5 năm 2023
Phát hành androidx.camera:camera-*:1.2.3
. Phiên bản 1.2.3 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục vấn đề
VideoCapture
không thể hoạt động với máy ảnh trước trên một số thiết bị. Ví dụ: trên Samsung Galaxy S23 và Xiaomi 2107113SG. (Ibec7e, b/270656244)
Phiên bản 1.2.2
Ngày 22 tháng 3 năm 2023
Phát hành androidx.camera:camera-*:1.2.2
. Phiên bản 1.2.2 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục vấn đề Tiện ích CameraX không hoạt động đúng cách khi bật proguard trên một số thiết bị như Pixel (I90aa2)
Phiên bản 1.2.1
Ngày 25 tháng 1 năm 2023
Phát hành androidx.camera:camera-*:1.2.1
. Phiên bản 1.2.1 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi hỏng hình ảnh JPEG nếu ghi dữ liệu vị trí Exif trên một số thiết bị Samsung Android 12. (b/263289024)
Phiên bản 1.2.0
Ngày 7 tháng 12 năm 2022
Phát hành androidx.camera:camera-*:1.2.0
. Phiên bản 1.2.0 bao gồm các thay đổi sau.
Các thay đổi quan trọng kể từ phiên bản 1.1.0
- Thư viện mới camera-mlkit-vision. Dễ dàng tích hợp CameraX với nhiều tính năng của MLKit, bao gồm quét mã vạch, phát hiện khuôn mặt, phát hiện văn bản và nhiều tính năng khác. Thêm
MLKitAnalyzer
làm API mới. - Zero-Shutter Lag API mới dưới dạng thử nghiệm. Tối ưu hoá quy trình chụp để giảm độ trễ mà vẫn duy trì được chất lượng cao cho ảnh. Khi chế độ chụp được đặt thành
CAPTURE_MODE_ZERO_SHUTTER_LAG
, độ trễ từ lúc nhấp nút chụp đến lúc chụp được ảnh sẽ giảm, so với các chế độ chụp khác. Trên các thiết bị không hỗ trợZERO_SHUTTER_LAG
, chế độ dự phòng sẽ làCAPTURE_MODE_MINIMIZE_LATENCY
. - Ngừng sử dụng
android.camera.core.VideoCapture
. - Thêm
setStreamUseCase()
làm APICamera2Interop
công khai. - Thêm yêu cầu về cấp độ API đối với
setOutputImageRotationEnabled
. - Đổi tên
ImageAnalysis.Analyzer#getTargetResolutionOverride()
thànhImageAnalysis.Analyzer#getDefaultTargetResolution()
. - Thêm API để đặt siêu dữ liệu vị trí cho video đã lưu.
- Khắc phục vấn đề tốc độ khung hình thấp khi dùng các trường hợp sử dụng Preview (Bản xem trước) và
VideoCapture
với tỷ lệ khung hình 16:9 - Sửa lỗi màn hình xem trước bị đen khi bật tiện ích BOKEH trên một số thiết bị Samsung và người dùng chuyển máy ảnh.
- Sửa lỗi hình ảnh
Preview/VideoCapture
bị kéo giãn của Samsung J7 Prime (SM-G610M) và J7 (SM-J710MN) trên thiết bị API cấp 27. - Tắt biện pháp lật vùng AF theo chiều ngang của các máy ảnh trước trên Samsung Android T vì sự cố này đã được khắc phục
Phiên bản 1.2.0-rc01
Ngày 24 tháng 10 năm 2022
Phát hành androidx.camera:camera-*:1.2.0-rc01
. Phiên bản 1.2.0-rc01 bao gồm bao gồm các thay đổi sau.
Thay đổi về API
- Thêm API
setStreamUseCase
choOutputConfiguration
. Người dùng có thể chỉ định Trường hợp sử dụng phát trực tuyến cho phiên phát trực tuyến, ghi đè các logic nội bộ của CameraX để chọn Trường hợp sử dụng phát trực tuyến nhằm tối ưu hoá theo nhu cầu của họ. (Ib1a95)
Sửa lỗi
- Sửa lỗi hình ảnh
Preview/VideoCapture
bị kéo giãn của Samsung J7 Prime (SM-G610M) và J7 (SM-J710MN) trên thiết bị API cấp 27. Độ phân giải 1920x1080 khiến hình ảnhPreview/VideoCapture
bị kéo giãn. Thêm giải pháp không chọn độ phân giải 1920x1080 cho Preview hoặcVideoCapture
để tránh vấn đề kéo giãn hình ảnh. (I0e04e) - Khắc phục vấn đề tốc độ khung hình thấp khi dùng các trường hợp sử dụng Preview và
VideoCapture
với tỷ lệ khung hình 16:9 trên một số thiết bị Huawei. (If8c88, b/223643510) - Sửa lỗi mở máy ảnh khi chưa đặt
SurfaceProvider
của Preview. Nhờ sửa lỗi này, trường hợp sử dụng Preview không đặtSurfaceProvider
sẽ không được định cấu hình vào phiên chụp ảnh. (I99681)
Phiên bản 1.2.0-beta02
Ngày 21 tháng 9 năm 2022
Phát hành androidx.camera:camera-*:1.2.0-beta02
. Phiên bản 1.2.0-beta02 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm yêu cầu đối với cấp độ API cho
setOutputImageRotationEnabled
(I26e3e, b/240993561)
Sửa lỗi
- Tắt biện pháp lật vùng AF theo chiều ngang của các máy ảnh trước trên Samsung Android T vì sự cố này đã được khắc phục. (I05f69)
- Khắc phục lỗi bản xem trước bị đen xảy ra khi bật tiện ích
BOKEH
trên một số thiết bị Samsung và người dùng chuyển máy ảnh. (If6168)
Phiên bản 1.2.0-beta01
Ngày 24 tháng 8 năm 2022
Phát hành androidx.camera:camera-*:1.2.0-beta01
. Phiên bản 1.2.0-beta01 bao gồm các thay đổi sau.
Tính năng mới
- Thư viện
camera-mlkit-vision
mới. Dễ dàng tích hợp CameraX với nhiều tính năng của MLKit, bao gồm quét mã vạch, phát hiện khuôn mặt, phát hiện văn bản và nhiều tính năng khác. Vui lòng tìm mã mẫu tại đây. - Zero-Shutter Lag API mới dưới dạng thử nghiệm. Tối ưu hoá quy trình chụp để giảm độ trễ mà vẫn duy trì được chất lượng cao cho ảnh. Khi chế độ chụp được đặt thành CAPTURE_MODE_ZERO_SHUTTER_LAG, độ trễ từ lúc nhấp nút chụp đến lúc chụp được ảnh sẽ giảm, so với các chế độ chụp khác. Trên các thiết bị không hỗ trợ chế độ ZERO_SHUTTER_LAG, chế độ dự phòng sẽ là CAPTURE_MODE_MINIMIM_LATENCY.
- Đặt
ImageAnalysis.Analyzer
vàMLKitAnalyzer
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ànhImageAnalysis.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ànhImageAnalysis.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 APIandroidx.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.Analyzer
vàMLKitAnalyzer
. (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ếuFocusMeteringAction
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
trongImageCapture
và thêmisZslSupported
trongCameraInfo
để 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ínhCONTROL_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 khiVideoCapture
được liên kết vớiImageCapture
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òngQualitySelector
khiếnVideoCapture
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ênImageCapture.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.setOutputImageRotationEnabled
vàsetOutputImageFormat
) - 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
trongCameraInfo
để các ứng dụng có thể kiểm tra xemFocusMeteringAction
đã 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,ImageCapture
vàImageAnalysis
. - 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áchCameraInfos
dựa trênCameraSelector
. - 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êmViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
vàViewPort.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
đếnMediaStoreOutputOptions.getCollectionUri
.ActiveRecording
đã được đổi tên thành "Ghi lại" để giảm độ chi tiết.- Thay đổi API trình tạo
QualitySelector
thành API dựa trên danh sách
Sửa lỗi
- Khắc phục lỗi
YuvToJpegProcessor
EOFException
khi bật chế độ tiện ích và đặt chế độImageCapture#CAPTURE_MODE_MAX_QUALITY
. - Không định cấu hình được codec đã sửa do quá trình quay video đang đóng
- Tỷ lệ khung hình xem trước/video được kéo dài cố định khi ghi ở FHD
- Khắc phục sự cố âm thanh/video không đồng bộ hoá sau khi tạm dừng và tiếp tục trên một số thiết bị
- Khắc phục lỗi đèn flash bị kích hoạt trong khi nhấn để lấy nét (
startFocusAndMetering
) khi chế độ flash đang tự động hoặc luôn bật trong môi trường ánh sáng yếu.
Phiên bản 1.1.0-rc02
Ngày 1 tháng 6 năm 2022
Phát hành androidx.camera:camera-*:1.1.0-rc02
. Phiên bản 1.1.0-rc02 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục
NullPointerException
trênImageCapture.takePicture()
. (I92366, b/230454568, b/229766155) - Đã khắc phục lỗi
AssertionError
không được xử lý khi nhận đặc tínhCONTROL_ZOOM_RATIO_RANGE
. (Ia248a, b/231701345)
Phiên bản 1.1.0-rc01
Ngày 11 tháng 5 năm 2022
Phát hành androidx.camera:camera-*:1.1.0-rc01
. Phiên bản 1.1.0-rc01 bao gồm các thay đổi sau.
Tính năng mới
- Phát hành phiên bản RC đầu tiên cho video máy ảnh, chế độ xem máy ảnh và tiện ích máy ảnh
Sửa lỗi
- Sửa lỗi codec video (bộ mã hoá và giải mã video) không được phát hành khi
VideoCapture<Recorder>
chưa được liên kết, khiến các lần sử dụngVideoCapture<Recorder>
tiếp theo không thể ghi bằngMediaCodec.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á trongImageCaptureTest
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 raInvalidConfigException
. NếuRecorder
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ànhQuality.HD
vàQualitySelector.FALLBACK_STRATEGY_LOWER
được thay đổi thành thực thể (instance) đượcFallbackStrategy.lowerQualityOrHigherThan(Quality)
trả về. API dùng để tạoQualitySelector
được thay đổi thành API dạng danh sách. APIQualitySelector.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ự doQualitySelector.Procedure
tạo. Xoá lớpQualitySelector.Procedure
. (I43343) - Xoá
PendingRecording.withEventListener()
và trình lắng nghe sự kiện (event listener) hiện phải được chuyển choPendingRecording.start()
. Yêu cầu về trình nghe sự kiện (event listener) này nhằm khuyến khích việc xử lý các lỗi không đồng bộ hoá được báo cáo trong sự kiệnVideoRecordEvent.Finalize
. (I1e71d) - Đổi tên
ActiveRecording
thànhRecording
để 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ụngPreview
,ImageCapture
,ImageAnalysis
hoặcVideoCapture
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ửiIllegalArgumentException
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ủaCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE
đến(0, 0, image.getWidth, image.getHeight)
. Bạn có thể sử dụng ma trận để ánh xạ toạ độ từ một {UseCase} này sang một {UseCase} khác. Ví dụ: bản đồ ánh xạ thể hiện toạ độ của khuôn mặt được phát hiện bằng ImageAnalysis tới Preview (Bản xem trước). (I9ff1e)Thêm một API ImageImage.Builder#setJpegquality mới cho phép thay đổi chất lượng nén ảnh đầu ra dưới định dạng JPEG khi chụp ảnh. (I8dcf4)
Đổi tên MediaStoreOutputOptions.getCollection thành MediaStoreOutputOptions.getCollectionUri. (I16639)
Sửa lỗi
- Sửa lỗi đèn flash bị kích hoạt trong khi nhấn để lấy nét (startFocusAndMetering) khi chế độ flash đang tự động hoặc luôn bật trong môi trường ánh sáng yếu. (Id4c11)
- Đã tắt HDR+ trên Pixel 2 XL/Pixel 3 XL ở chế độ MINIMIZE_LATENCY để giảm độ trễ. (Ib6270, b/203505523)
Đóng góp bên ngoài
Phiên bản 1.1.0-alpha10
Ngày 13 tháng 10 năm 2021
Phát hành androidx.camera:camera-*:1.1.0-alpha10
. Phiên bản 1.1.0-alpha10 bao gồm các thay đổi sau.
Tính năng mới
- Chính thức phát hành
androidx.camera:camera-video:1.1.0-alpha10
dưới dạng phiên bản alpha đầu tiên cho Video. Vẫn tồn tại một số lỗi đã biết cần khắc phục trong các bản phát hành về sau.
Thay đổi về API
- Thêm chú thích
@RequiresApi(21)
vào mọi lớp CameraX và xoá minSdkVersion khỏi AndroidManifest.xml. Điều này sẽ cho phép dễ dàng tích hợp camera-core vào các ứng dụng có minSdkVersion phiên bản 21 trở xuống nhưng muốn sử dụng đường dẫn mã có điều kiện dựa trên API 21 trở lên. Không cần thực hiện thao tác gì đối với mọi ứng dụng có minSdkVersion phiên bản 21 trở lên. (Ie7f2e, b/200599470)
Sửa lỗi
- Khai báo ngoại lệ InitializationException để ứng dụng có thể xử lý lỗi AssertionError xảy ra khi tạo CameraCharacteristics. (Ibec79)
Phiên bản 1.1.0-alpha09
Ngày 29 tháng 9 năm 2021
Phát hành androidx.camera:camera-camera2:1.1.0-alpha09
, androidx.camera:camera-core:1.1.0-alpha09
và androidx.camera:camera-lifecycle:1.1.0-alpha09
. Phiên bản 1.1.0-alpha09 bao gồm các thay đổi sau.
Thay đổi về API
- Xoá chú thích ExperimentalUseCaseGroup do các API không còn là API thử nghiệm nữa. (I01ef5)
Sửa lỗi
- Khắc phục lỗi ảnh bị mờ ở chế độ
MAXIMIZE_QUALITY
. (I173a9, b/193823892) - Khắc phục lỗi trên Samsung Galaxy J5 khiến máy ảnh bị treo sau khi chụp ảnh bằng đèn flash ở chế độ bật/tự động trong môi trường tối (I3aab9)
- Khi cần cắt ảnh cho tính năng ImageCapture, hãy nén hình ảnh đã cắt với mức chất lượng JPEG đã chỉ định theo chế độ chụp đã đặt. Nếu chế độ chụp là
CAPTURE_MODE_MINIMIZE_LATENCY
, chất lượng nén ảnh JPEG là 95. Nếu chế độ chụp làCAPTURE_MODE_MAXIMIZE_QUALITY
, chất lượng nén ảnh JPEG là 100. (Ieb37c, b/142856426)
Phiên bản 1.1.0-alpha08
Ngày 18 tháng 8 năm 2021
Phát hành androidx.camera:camera-camera2:1.1.0-alpha08
, androidx.camera:camera-core:1.1.0-alpha08
và androidx.camera:camera-lifecycle:1.1.0-alpha08
. Phiên bản 1.1.0-alpha08 bao gồm các thay đổi sau.
Tính năng mới
- Thêm API setOutputImageFormat để định cấu hình chức năng phân tích hình ảnh. Người dùng có thể chọn ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 hoặc ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. Theo mặc định, ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 sẽ được chọn. (I7902d)
Thay đổi về API
- Xoá chú thích ExperimentalUseCaseGroupLifecycle do các API không còn là API thử nghiệm nữa. (I17b85)
Sửa lỗi
- Sửa lỗi Màn hình xem trước quá sáng trên Huawei P20 Lite. Vấn đề này chỉ xảy ra khi dùng một số độ phân giải Preview đặc biệt và phóng ảnh quá lớn. (Idefce, b/192129158)
- Khắc phục lỗi đèn flash không hoạt động trên một số thiết bị khi đặt chế độ đèn flash sang FLASH_MODE_ON ngay sau khi chụp ảnh. (Ieb49b)
- Sửa lỗi trong đó Preview (Bản xem trước) sẽ tạm dừng trong một khoảng thời gian khi chụp ảnh nếu VideoCapture, ImageCapture và Preview được liên kết. (I56197, b/193864120)
- Cho phép công cụ ImageAnalysis chọn độ phân giải lớn hơn 1080p. Thiết bị LIMITED hoặc trở lên có thể hỗ trợ độ phân giải RECORD cho tính năng ImageAnalysis nếu được liên kết với Preview và ImageCapture. Đổi lại là độ phân giải đã chọn cho ImageCapture cũng cần phải tương đương với độ phân giải RECORD. Để chọn thành công độ phân giải RECORD cho ImageAnalysis, bạn phải đặt độ phân giải RECORD mục tiêu cho cả ImageCapture và ImageAnalysis. Điều này cho thấy rằng ứng dụng hiểu rõ sự đánh đổi và ưu tiên độ phân giải lớn hơn cho ImageAnalysis thay vì để độ phân giải MAXIMUM cho ImageCapture. Để biết định nghĩa về RECORD, MAXIMUM và thông tin chi tiết, hãy truy cập vào https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. RECORD dùng để chỉ độ phân giải video tối đa được hỗ trợ trên thiết bị máy ảnh, do CamcorderProfile quyết định. MAXIMUM là độ phân giải đầu ra tối đa của thiết bị máy ảnh cho định dạng hoặc mục tiêu đó từ StreamConfiguration Map.getOutputSizes(int). (I1ee97, b/192911449)
- Thêm thông tin Exif vào hình ảnh đã chụp. (I01ff0, b/193342619)
- Trong ImageCapture, trả về URI của hình ảnh đã lưu nếu vị trí lưu là Tệp. (Ib5b49, b/149241379)
- Khắc phục lỗi ảnh chụp bằng đèn flash bị tối trên nhiều thiết bị. (I4e510)
Phiên bản 1.1.0-alpha07
Ngày 21 tháng 7 năm 2021
Phát hành androidx.camera:camera-camera2:1.1.0-alpha07
, androidx.camera:camera-core:1.1.0-alpha07
và androidx.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-alpha06
và androidx.camera:camera-lifecycle:1.1.0-alpha06
. Phiên bản 1.1.0-alpha06 bao gồm các thay đổi sau.
Thay đổi về API
- Quảng cáo API bù phơi sáng thử nghiệm cho camera-core (I08ee8)
- Thêm API is FocusMeteringsupported trong CameraInfo. API này cho phép các ứng dụng kiểm tra xem FocusMeteringAction có được hỗ trợ trên máy ảnh hiện tại hay không. (Ib45ae, b/188606490)
- Cấp quyền truy cập API getResolutionInfo để cung cấp thông tin về độ phân giải cho Preview (Bản xem trước), ImageCapture và ImageAnalysis. (I2b613, b/188600718)
- Đưa các API thử nghiệm sau đây thành các API chính thức: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). (I2ade2)
- Cấp quyền truy cập giao diện CameraProvider để truy cập vào một nhóm máy ảnh. (I1a7b1)
- Quảng bá UseCaseGroup API thử nghiệm cho camera-core, camera-lifecycle và camera-video. Thêm
ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
vàViewPort.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-alpha05
và androidx.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-alpha04
và androidx.camera:camera-lifecycle:1.1.0-alpha04
. Phiên bản 1.1.0-alpha04 bao gồm các thay đổi sau.
Sửa lỗi
- Sửa lỗi rò rỉ bộ nhớ do nhiều thread (luồng) đồng thời truy cập vào cùng một bộ sưu tập. Việc rò rỉ bộ nhớ có thể khiến thực thể Preview giữ lại thành phần giao diện tương tác (Activity) hoặc mảnh (Fragment). (I7b4b8)
- Thay thế chú thích
@Experimental
bằng@RequiresOptIn
thành API thử nghiệm. Để gọi các API thử nghiệm, hãy dùngandroidx.annotation.OptIn
thay vìandroidx.annotation.experimental.UseExperimental
không được dùng nữa. (Iff226) - Sửa lỗi ImageCapture sử dụng đèn flash ở chế độ bật/tự động làm hình ảnh chụp trên Samsung Galaxy S7 bị mờ. (I30001)
- Thêm API CameraState. API này sẽ được cấp quyền truy cập thông qua CameraInfo. (I75392)
Phiên bản 1.1.0-alpha03
Ngày 24 tháng 3 năm 2021
Phát hành androidx.camera:camera-camera2:1.1.0-alpha03
, androidx.camera:camera-core:1.1.0-alpha03
và androidx.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-alpha02
và androidx.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 doCameraSelector
lựa chọn được cung cấp trongCameraXConfig.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-alpha01
và androidx.camera:camera-lifecycle:1.1.0-alpha01
. Phiên bản 1.1.0-alpha01 bao gồm các thay đổi sau.
Sửa lỗi
- Giải pháp tạm thời cho dữ liệu hình ảnh định dạng JPEG bị hỏng gián đoạn trên máy ảnh mặt sau SM-G930T. (I52001, b/159831206)
- Sửa lỗi
IllegalArgumentException
xảy ra khi mọi kích thước được hỗ trợ của bản xem trước đều nhỏ hơn 640 x 480 và kích thước hiển thị lớn hơn 640 x 480. (I2a63c, b/150506192) - Theo mặc định, các tài nguyên trong thư viện chưa được khai báo rõ ràng (ví dụ: qua public.xml) sẽ ở chế độ riêng tư. (Ia1dcc, b/170882230)
Camera-Camera2, Camera-Core, & Camera-Lifecycle Phiên bản 1.0.2
Phiên bản 1.0.2
Ngày 29 tháng 9 năm 2021
Phát hành androidx.camera:camera-camera2:1.0.2
, androidx.camera:camera-core:1.0.2
và androidx.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.1
và androidx.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ề trongsetZoomRatio
vàsetLinearZoom
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.0
và androidx.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, ImageCapture và ImageAnalysis
- 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
- Hãy xem danh sách Các 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-rc05
và androidx.camera:camera-lifecycle:1.0.0-rc05
. Phiên bản 1.0.0-rc05 bao gồm các thay đổi sau.
Sửa lỗi
- Sửa lỗi ImageCapture sử dụng đèn flash ở chế độ bật/tự động làm hình ảnh chụp trên Samsung Galaxy S7 bị mờ. (I30001)
Phiên bản 1.0.0-rc04
Ngày 24 tháng 3 năm 2021
Phát hành androidx.camera:camera-camera2:1.0.0-rc04
, androidx.camera:camera-core:1.0.0-rc04
và androidx.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-rc03
và androidx.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-rc02
và androidx.camera:camera-lifecycle:1.0.0-rc02
. Phiên bản 1.0.0-rc02 bao gồm các thay đổi sau.
Sửa lỗi
- Sửa lỗi IllegalArgumentException xảy ra khi mọi kích thước được hỗ trợ của bản xem trước đều nhỏ hơn 640 x 480 và kích thước hiển thị lớn hơn 640 x 480. (b/150506192)
Giới hạn số lần thử mở lại máy ảnh. Mặc dù cố gắng khôi phục một số vấn đề nhất định xảy ra khi mở máy ảnh, CameraX sẽ không cố gắng mở lại máy ảnh liên tục mà thay vào đó sẽ dừng sau khi thử lại trong 10 giây.I435d2
Sửa lỗi
IllegalArgumentException
xảy ra khi mọi kích thước được hỗ trợ của bản xem trước đều nhỏ hơn 640 x 480 và kích thước hiển thị lớn hơn 640 x 480. (I2a63c, b/150506192)
Phiên bản 1.0.0-rc01
Ngày 16 tháng 12 năm 2020
Phát hành androidx.camera:camera-camera2:1.0.0-rc01
, androidx.camera:camera-core:1.0.0-rc01
và androidx.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 đặtLog#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-beta12
và androidx.camera:camera-lifecycle:1.0.0-beta12
. Phiên bản 1.0.0-beta12 bao gồm các thay đổi sau.
Sửa lỗi
- Tắt đèn flash tự động trên các thiết bị Samsung A3 để khắc phục sự cố chụp ảnh bằng chế độ AE tự động bật đèn flash trên các thiết bị Samsung A3. (Ia5fe3, b/157535165)
- Sửa lỗi khiến hình ảnh xem trước bị giãn trên thiết bị Nexus 4 chạy Android L (API cấp 21 và 22). (I4d407, b/158749159)
- Việc cài đặt lớp cơ sở
OnImageCapturedCallback#onCaptureSuccess
không còn đóng hình ảnh nữa. Điều này giúp các nhà phát triển ngăn chặn các hành vi không mong muốn. Các nhà phát triển không nên dựa vào super.onCaptureSuccess để đóng hình ảnh. (Ifbf9c) - Biến thể androidx của chú thích Experimental không còn được dùng để cung cấp tính năng tương đương cho Kotlin. Chúng tôi đã thay thế nó bằng chú thích RequiresOptIn và công cụ phân tích phát hiện lỗi sai (Linter) cho Java đã được cập nhật để hỗ trợ cả chú thích Kotlin mới và biến thể androidx mới. (I52495, b/151331381)
Camera-Camera2 Phiên bản 1.0.0-beta11
Ngày 14 tháng 10 năm 2020
Phát hành androidx.camera:camera-camera2:1.0.0-beta11
. Phiên bản 1.0.0-beta11 bao gồm các thay đổi sau.
Tính năng mới
- Hỗ trợ API Android 11
CONTROL_ZOOM_RATIO
để thu phóng trên các thiết bị Android 11 trở lên có chứaCONTROL_ZOOM_RATIO_RANGE
hợp lệ. (I62cc6)
Sửa lỗi
- Sửa lỗi NumberFormatException xảy ra khi mã nhận dạng máy ảnh không phải là số nguyên. (Ib2228)
- Cải thiện độ trễ khi khởi chạy CameraX và bindToLifecycle (I61dc5)
- Không cần phải khởi chạy CameraX để hoàn tất quá trình tạo UseCase. Tất cả cấu hình cài đặt cụ thể được đặt trên UseCase sau khi được đính kèm vào một thực thể Camera dành cho API công khai
ProcessCameraProvider.bindToLifecycle()
. (Ia5411) <UseCase>.getTargetRotation()
sẽ trả vềSurface.ROTATION_0
nếu được gọi trước khi được đính kèm vào một thực thể Camera trừ phi targetRotation đã được đặt trong Builder hoặc UseCase. (I80fcd)
Camera-Core Phiên bản 1.0.0-beta11
Ngày 14 tháng 10 năm 2020
Phát hành androidx.camera:camera-core:1.0.0-beta11
. Phiên bản 1.0.0-beta11 bao gồm các thay đổi sau.
Tính năng mới
– Hỗ trợ API CONTROL_ZOOM_RATIO
Android 11 để thu phóng trên
các thiết bị sử dụng phiên bản Android 11 trở lên có chứa CONTROL_ZOOM_RATIO_RANGE
hợp lệ. (I62cc6)
Sửa lỗi
- Sửa lỗi NumberFormatException xảy ra khi mã nhận dạng máy ảnh không phải là số nguyên. (Ib2228)
- Không cần phải khởi chạy CameraX để hoàn tất quá trình tạo UseCase. Tất cả cấu hình cài đặt cụ thể được đặt trên UseCase sau khi được đính kèm vào một thực thể Camera dành cho API công khai
ProcessCameraProvider.bindToLifecycle()
. (Ia5411) <UseCase>.getTargetRotation()
sẽ trả vềSurface.ROTATION_0
nếu được gọi trước khi được đính kèm vào một thực thể Camera trừ phi targetRotation đã được đặt trong Builder hoặc UseCase. (I80fcd)
Camera-Core phiên bản 1.0.0-beta10
Ngày 23 tháng 9 năm 2020
Phát hành androidx.camera:camera-core:1.0.0-beta10
. Phiên bản 1.0.0-beta10 bao gồm các thay đổi sau.
Sửa lỗi
- Sửa lỗi xác thực vị trí lưu tệp ảnh đã chụp (I8c565, b/167697553)
Camera-Camera2 Phiên bản 1.0.0-beta10
Ngày 23 tháng 9 năm 2020
Phát hành androidx.camera:camera-camera2:1.0.0-beta10
. Phiên bản 1.0.0-beta10 bao gồm các thay đổi sau.
Sửa lỗi
- Phát hành để hỗ trợ Camera-Core 1.0.0-beta10
Camera-Camera2 Phiên bản 1.0.0-beta09
Ngày 16 tháng 9 năm 2020
Phát hành androidx.camera:camera-camera2:1.0.0-beta09
. Phiên bản 1.0.0-beta09 bao gồm các thay đổi sau.
Thay đổi về API
- Thay vì cung cấp các phương thức tĩnh, Camera2CameraInfo lấy thực thể CameraInfo khi được tạo để truy xuất thông tin có liên quan đến Camera2. (I5b844)
Sửa lỗi
- Khắc phục lỗi tỷ lệ khung hình mục tiêu trên thiết bị máy tính bảng. Chọn kích thước 16:9 khi đặt tỷ lệ khung hình mục tiêu là
AspectRatio.RATIO_16_9
. (Ib7fcf, b/151969438) - Khai báo ngoại lệ
InitializationException
để ứng dụng có thể xử lý lỗi AssertionError xảy ra khi tạo CameraCharacteristics. (I89c8c, b/160524721) - Thêm giao diện thử nghiệm cho ExposureCompensation (If96c7)
Camera-Core Phiên bản 1.0.0-beta09
Ngày 16 tháng 9 năm 2020
Phát hành androidx.camera:camera-core:1.0.0-beta09
. Phiên bản 1.0.0-beta09 bao gồm các thay đổi sau.
Thay đổi về API
- Khắc phục lỗi khung nhìn được đánh dấu là không rỗng trên UseCaseGroup. Nhà phát triển có thể tạo một khung nhìn khi không cần cài đặt khung nhìn. (Ie3d2e)
- Thêm giao diện thử nghiệm cho
ExposureCompensation
(If96c7) - Cho phép xoay phương hướng tuỳ ý trong Preview. Thông tin chuyển đổi được tính toán và trả về cho người dùng ngay lập tức thông qua lệnh gọi lại
TranformationInfoListener
mới. (I21470)
Sửa lỗi
- Khắc phục lỗi đèn flash không tắt trên một số thiết bị. Điều này xảy ra khi chế độ flash được đặt thành
FLASH_MODE_ON
để chụp ảnh và được thay đổi thànhFLASH_MODE_OFF
khi bật flash. Dấu hiệu này giống như đang bật chế độ đèn pin. (Ib4451, b/162568128) - Buộc PreviewView sử dụng TextureView nếu hiệu ứng tiện ích được bật và việc cài đặt thư viện nhà cung cấp cần phải thực hiện một quy trình đặc biệt trên khu vực đầu ra. (I0c3cc)
- Khắc phục lỗi rò rỉ Activity/Fragment khi ngữ cảnh Activity/Fragment được truyền vào
ProcessCameraProvider.getInstance(Context)
.
Lỗi đã biết
- Khi cài đặt ViewPort (Khung nhìn), khung hình chữ nhật để cắt ảnh của ImageCapture có thể không chính xác trên các thiết bị xoay hình ảnh chụp lưu trữ tại vùng đệm trong HAL Lỗi này sẽ được khắc phục trong bản phát hành tiếp theo.
Camera-Camera2 Phiên bản 1.0.0-beta08
Ngày 19 tháng 8 năm 2020
Phát hành androidx.camera:camera-camera2:1.0.0-beta08
. Phiên bản 1.0.0-beta08 bao gồm các thay đổi sau.
Sửa lỗi
- Tối ưu hoá bindToLifecycle để chạy nhanh trên thread chính. (I1d57e)
- DisplayOrientedMeteringPointFactory lấy một thực thể CameraInfo thay vì CameraSelector, nhờ đó, sẽ có ánh xạ trực tiếp đến Camera mà đối tượng nhà máy (factory) sẽ tạo điểm trên đó. Tất cả lớp sử dụng DisplayOrientedMeteringPointFactory cũng lấy một thực thể CameraInfo thay vì CameraSelector. (I400c1)
- Sửa lỗi phân nhóm kích thước tỷ lệ khung hình với độ phân giải tự động khi chọn kích thước mod16 (864 x 480) với tỷ lệ khung hình 16:9 nếu cài đặt độ phân giải mục tiêu là 2016 x 1080 và kích thước 1920 x 1080 với tỷ lệ khung hình 16:9 được hỗ trợ. (I53167, b/159363774)
- Khắc phục lỗi CameraControl không hoạt động trong trường hợp nhiều thread truy cập và thay đổi dữ liệu liên tục (I2279f, b/152333890, b/160714166)
Camera-Core Phiên bản 1.0.0-beta08
Ngày 19 tháng 8 năm 2020
Phát hành androidx.camera:camera-core:1.0.0-beta08
. Phiên bản 1.0.0-beta08 bao gồm các thay đổi sau.
Thay đổi về API
DisplayOrientedMeteringPointFactory
lấy thực thểCameraInfo
thay vìCameraSelector
, nhờ đó, sẽ có ánh xạ trực tiếp đến Camera mà đối tượng nhà máy (factory) sẽ tạo điểm trên đó. Tất cả lớp sử dụngDisplayOrientedMeteringPointFactory
cũng đều lấy một thực thểCameraInfo
thay vìCameraSelector
. (I400c1)
Sửa lỗi
- Đối với ảnh chụp, hãy ghi đè cờ lật hình theo chiều ngang trong siêu dữ liệu dựa trên hướng máy ảnh. (I28499)
- Quá trình khởi chạy không còn gặp sự cố khi sử dụng một Context (Ngữ cảnh) không trả về đối tượng Application (Ứng dụng) qua
Context.getApplicationContext()
. (I3d3c9, b/160817073)
Camera-Camera2 Phiên bản 1.0.0-beta07
Ngày 22 tháng 7 năm 2020
Phát hành androidx.camera:camera-camera2:1.0.0-beta07
. Phiên bản 1.0.0-beta07 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi bản xem trước bị giãn trên thiết bị Android 5.0 đời cũ. (I0c03a)
- Loại trừ một số kích thước định dạng JPEG hỗ trợ mà sẽ gây ra lỗi WYSIWYG trên một số thiết bị. (Ib5128)
Camera-Core Phiên bản 1.0.0-beta07
Ngày 22 tháng 7 năm 2020
Phát hành androidx.camera:camera-core:1.0.0-beta07
. Phiên bản 1.0.0-beta07 bao gồm các thay đổi sau.
Thay đổi về API
- Hợp nhất kiểu điều chỉnh kích thước
FIT_CENTER
,FIT_START
vàFIT_END
vớiFIT
.FIT
có nghĩa là kích cỡ khuôn hình chữ nhật cắt ảnh sẽ tương đương với kích cỡ tối đa của khuôn hình chữ nhật cảm biến. (Ia73c3) - Bản xem trước khuôn hình chữ nhật cắt ảnh được cấu hình theo khung nhìn. Chỉ người dùng cuối mới thấy được khu vực che khuất của khuôn hình chữ nhật cắt ảnh. (I142a4)
Sửa lỗi
- Khắc phục lỗi bản xem trước bị giãn trên thiết bị Android 5.0 đời cũ. (I0c03a)
- Sửa lỗi ngoại lệ
ConcurrentModificationException
khi huỷ liên kết các trường hợp sử dụng. (I371c0)
Camera-Camera2 Phiên bản 1.0.0-beta06
Ngày 24 tháng 6 năm 2020
Phát hành androidx.camera:camera-camera2:1.0.0-beta06
. Phiên bản 1.0.0-beta06 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm các giao diện thử nghiệm để lọc máy ảnh theo mã nhận dạng máy ảnh và CameraCharacteristics. (I28f61)
Sửa lỗi
- Khắc phục lỗi khiến startFocusAndMetering không thể lấy nét thành công trên Samsung Galaxy S7. (If3be7, b/159039233)
- Khắc phục lỗi không thể đóng máy ảnh sau khi thoát khỏi ứng dụng. (I7a7b3)
- Sửa lỗi chế độ xem trước gặp sự cố do liên tục chuyển đổi máy ảnh khi sử dụng hoạt động triển khai SurfaceView của PreviewView (I920ce)
CameraControl#startFocusAndMetering
sẽ không thành công nếu không có MeteringPoint được chỉ định có thể tạo các khuôn hình chữ nhật đo sáng hợp lệ. (Id53ce)
Camera-Core Phiên bản 1.0.0-beta06
Ngày 24 tháng 6 năm 2020
Phát hành androidx.camera:camera-core:1.0.0-beta06
. Phiên bản 1.0.0-beta06 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm các giao diện thử nghiệm để lọc máy ảnh theo mã nhận dạng máy ảnh và CameraCharacteristics. (I28f61)
Sửa lỗi
- CameraX hiện có thể được định cấu hình bằng
ProcessCameraProvider#configureInstance()
trước khi gọiProcessCameraProvider#getInstance()
. Thay đổi này cho phép tuỳ chỉnhCameraXConfig
mà không yêu cầu cài đặtCameraXConfig.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ứaCameraUnavailableException
mà sẽ được đặt thànhListenableFuture
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ứaCameraUnavailableException
mà sẽ được đặt thànhListenableFuture
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
setTargetResolution
vàsetTargetRotation
. (Iae16f)
Camera-Camera2 Phiên bản 1.0.0-beta04
Ngày 27 tháng 5 năm 2020
Phát hành androidx.camera:camera-camera2:1.0.0-beta04
. Phiên bản 1.0.0-beta04 bao gồm các thay đổi sau.
Sửa lỗi
- Cho phép ứng dụng đặt tham số yêu cầu chụp ảnh camera2 bất kỳ qua
Camera2Interop
mà không gây ra sự cố. Lưu ý rằng nếu có vấn đề phát sinh là do việc ghi đè các tham số. Chúng tôi không đảm bảo về tính ổn định và hành vi khi ghi đè tham số bằng Camera2Interop. (Ibe5a1, b/149103700) - Khắc phục lỗi tự động khởi chạy khi dùng một ứng dụng trên thiết bị đang sử dụng bản địa hoá giả (pseudo-localization). (I3bef3, b/154767663)
- Chuyển đổi nhật ký lỗi liên quan đến trường hợp sử dụng đã tách thành nhật ký gỡ lỗi trên Camera2CameraImpl. (I1a565, b/154422490)
- Sửa lỗi hình ảnh được chụp đôi khi quá tối mặc dù đã bật flash. (I5d9fa, b/149729613)
- Khắc phục lỗi vùng đệm trong
ImageProxy
từImageCapture
không được đưa về 0 (I0c455, b/153249512) - Khắc phục các lỗi chỉ liên kết được ImageCapture: (1) Không chụp được ảnh MAX_QUALITY; (2) Chất lượng hình ảnh xấu do hệ thống tự động phơi sáng không hoạt động. (I17782, b/145326998)
- Cải thiện độ tin cậy của việc mở lại máy ảnh khi CameraX bị ngắt kết nối do một quy trình khác hoặc đường dẫn mã đánh cắp máy ảnh (I1fbc3, b/153714651)
Camera-Core Phiên bản 1.0.0-beta04
Ngày 27 tháng 5 năm 2020
Phát hành androidx.camera:camera-core:1.0.0-beta04
. Phiên bản 1.0.0-beta04 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm API thử nghiệm
CameraXConfig.Builder#setSchedulerHandler()
để đặt trình xử lý mà ngăn xếp máy ảnh CameraX sử dụng nội bộ. API mới này cùng vớiCameraXConfig.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ậpImageProxy
sau khiImageReaderProxy
đóng. Lần lỗi này cũng làm cho tất cảImageProxy
màAnalyzer
nhận được phải được đóng trước khi đóngImageReaderProxy
. (I4b299, b/145956416, b/154155377, b/156357269) - Xoá tham số
CameraInfo
khỏiPreviewView#createSurfaceProvider()
,PreviewView
hiện sẽ truy xuất tham số này từSurfaceRequest
. (If18f0, b/154652477) - Khắc phục lỗi tự động khởi chạy khi dùng một ứng dụng trên thiết bị đang sử dụng bản địa hoá giả (pseudo-localization). (I3bef3, b/154767663)
- Sửa lỗi hình ảnh được chụp đôi khi quá tối mặc dù đã bật flash. (I5d9fa, b/149729613)
- Khắc phục lỗi liên quan đến
ImageAnalysis
, trong đó nhiều lệnh gọi đến setAnalyzer/clearAnalyzer sẽ dẫn đến việc trình phân tích không nhận được hình ảnh để phân tích. (I6169f, b/151605317, b/153514544) - Sửa lỗi vùng đệm trong
ImageProxy
từImageCapture
không được đưa về 0 (I0c455, b/153249512) - Sửa lỗi máy ảnh đầu tiên trong danh sách được
CameraManager
hỗ trợ không phải lúc nào cũng được chọn để sử dụng. (I4c624, b/153418028) - Khắc phục sự cố gián đoạn do việc đặt
Preview.SurfaceProvider
không giải phóng được khu vực đã được yêu cầu trước đó.“java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”
(I8e4e7, b/155936225)
Camera-Camera2 Phiên bản 1.0.0-beta03
Ngày 15 tháng 4 năm 2020
Phát hành androidx.camera:camera-camera2:1.0.0-beta03
. Phiên bản 1.0.0-beta03 bao gồm các thay đổi sau.
Sửa lỗi
- Sửa lỗi để hỗ trợ việc phát hành
camera-core
Camera-Core Phiên bản 1.0.0-beta03
Ngày 15 tháng 4 năm 2020
Phát hành androidx.camera:camera-core:1.0.0-beta03
. Phiên bản 1.0.0-beta03 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi hồi quy từ beta03, trong đó lệnh gọi
bindToLifecycle()
mà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ấtCamera
mà không cần liên kết với mộtUseCase
.
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
doImageCapture
tạo để khớp với giá trị xoay hướng EXIF. (Id4281, b/150802561) - Không cần phải sắp xếp rõ ràng thứ tự các phần phụ thuộc CameraX trong
build.gradle
để cài đặt CameraX/Camera2 mặc định nữa. Đối với các trường hợp bắt buộc phải khai báo các phần phụ thuộc nghiêm ngặt, mọi phần phụ thuộc CameraX giờ đây có thể được đưa vào tệp bản dựng. (I46e88) - Khắc phục lỗi
IllegalArgumentException
xảy ra trên các thiết bị có kích thước màn hình nhỏ hơn 640x480. (Ife3f2, b/150506192) - Sửa
bindToLifecycle
để chỉ điều chỉnh UseCase nếu liên kết thành công. Trước đây, khi gọibindToLifecycle
để 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
doImageCapture
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ọibindToLifecycle
để 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ọiPreview.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ànhSurfaceRequest.provideSurface(Surface)
vàSurfaceRequest.setWillNotComplete()
thànhSurfaceRequest.willNotProvideSurface()
. (I224fe) - Sửa lỗi tỷ lệ khung hình của hình ảnh đã lưu không chính xác sau khi thay đổi giá trị xoay phương hướng bằng
ImageCapture.setTargetRotation()
. (I474ea, b/148763432) - Sửa lỗi khởi chạy các biến thể ứng dụng đã bật ProGuard bằng cách duy trì cờ đặt trình cung cấp
CameraXConfig
mặc định. (I2d6c1)
Camera-Core Phiên bản 1.0.0-beta01
Ngày 26 tháng 2 năm 2020
Phát hành androidx.camera:camera-core:1.0.0-beta01
. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.
Thay đổi về API
- Thay thế
ListenableFuture
trênSurfaceRequest.provideSurface()
bằngExecutor
vàCallback
. 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ênprovideSurface()
và đảm bảo rằng không thể huỷ lệnh gọi lạiprovideSurface()
. 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ượngSurfaceRequest.Result
hiện được dùng để theo dõi cáchSurfaceRequest
sử dụngSurface
cho sẵn. (I7854b) - Đổi tên
SurfaceRequest.setSurface(Surface)
thànhSurfaceRequest.provideSurface(Surface)
vàSurfaceRequest.setWillNotComplete()
thànhSurfaceRequest.willNotProvideSurface()
. (I224fe)
Sửa lỗi
- Sửa lỗi tỷ lệ khung hình của hình ảnh đã lưu không chính xác sau khi thay đổi giá trị xoay phương hướng bằng
ImageCapture.setTargetRotation()
. (I474ea, b/148763432) - Sửa lỗi khởi chạy các biến thể ứng dụng đã bật ProGuard bằng cách duy trì cờ đặt trình cung cấp
CameraXConfig
mặc định. (I2d6c1) - Cập nhật tài liệu cho các API chế độ flash để bao gồm các giá trị có thể có. (I4a3ec)
Camera-Camera2 Phiên bản 1.0.0-alpha10
Ngày 10 tháng 2 năm 2020
Phát hành androidx.camera:camera-camera2:1.0.0-alpha10
. Phiên bản 1.0.0-alpha10 bao gồm các thay đổi sau.
Sửa lỗi
- Cải thiện độ ổn định trên các thiết bị
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
bằng cách đảm bảo Camera2 chỉ giữ lạiSurface
trong thời gian sử dụng. (I9dac2) - Sửa lỗi bản xem trước thiếu sáng trên các thiết bị LEGACY bằng cách điều chỉnh
CONTROL_AE_TARGET_FPS_RANGE
đúng cách. (1224638)
Camera-Core Phiên bản 1.0.0-alpha10
Ngày 10 tháng 2 năm 2020
Phát hành androidx.camera:camera-core:1.0.0-alpha10
. Phiên bản 1.0.0-alpha10 bao gồm các thay đổi sau.
Thay đổi về API
- Cập nhật
ImageCapture
để cho phép lưu hình ảnh vàoUri
vàOutputStream
. Kết hợp nhiều phương thức nạp chồngtakePicture
thành một. Cập nhật ứng dụng kiểm thử để dùngUri
làm ví dụ chuẩn hoá. (Ia3bec) - Đổi tên
Preview.PreviewSurfaceProvider
thànhPreview.SurfaceProvider
.SurfaceProvider
không còn yêu cầu nhà phát triển tạoListenableFuture
riêng và việc cung cấpSurface
hiện đã được thực hiện thông qua đối tượngSurfaceRequest
mới. Phương thứcPreview.getPreviewSurfaceProvider()
đã bị xoá do có khả năng sử dụng sai khiPreview
được ghép nối với các lớp khác nhưPreviewView
. (I20105) - Thêm
getTargetRotation()
vàgetTargetName()
vàoPreview
. (Iceee7) - Thêm
getTargetRotation()
,getBackpressureStrategy()
vàgetImageQueueDepth()
trongImageAnalysis
. (I9d6d9) - Thêm
getTargetRotation()
vàgetCaptureMode()
trongImageCapture()
(I5bc17) - Các đối số trước đây đã được truyền vào
ImageCapture.OnImageSavedCallback.onError()
vàImageCapture.OnImageCapturedCallback.onError()
hiện đã được thay thế bằng một đối số duy nhấtImageCaptureException
. Đối số này vẫn chứa mọi thông tin đã được truyền trước đó. - Xoá tệp mà đối số truyền trước đó trong
ImageCapture.OnImageSavedCallback.onImageSaved()
. (I750d2) - Các lớp
Preview
vàImageCapture
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()
vàgetLinearZoom()
củaCameraInfo
hợp nhất vào phương thứcgetZoomState()
mà sẽ trả về thực thểZoomState
. (Ib19fe) - Xoá các trường API
OPTION_TARGET_CLASS
vàOPTION_TARGET_NAME
khỏiCameraXConfig
vì các trường này chỉ dùng cho thư viện nội bộ. Xoá hàm constructor choCameraXConfig.Builder
. (I96912) - Xoá yêu cầu về việc ứng dụng phải kế thừa
Application
để khởi chạy CameraX. CameraX hiện sẽ được khởi chạy bằng cấu hình Camera2 mặc định, miễn là cấu phần phần mềmcamera-camera2
đã có trongbuild.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ằngCamera2CameraInfo.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ó markerClassExperimentalCamera2Interop
.
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ànhuseCaseForAspectRatio
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 constructorFocusMeteringAction.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
setZoomRatio
vàsetLinearZoom
.
Sửa lỗi
- Khắc phục các lỗi khi đóng rồi mở máy ảnh dẫn đến lỗi kiểm tra "Điều kiện tiên quyết".
- Sửa lỗi
ConcurrentModificationException
có thể xảy ra khi sử dụng API của tính năng đèn pin và thu phóng. - Sửa lỗi để chọn độ phân giải gần với độ phân giải được yêu cầu hơn khi có kích thước mod16.
- API
startFocusMetering
vàcancelFocusMetering
hiện hoạt động như trong tài liệu, với thời gian chính xác và có thể trả về lỗi khi xảy ra. - Khắc phục lỗi khi một độ phân giải mục tiêu cụ thể được yêu cầu với tỷ lệ khung hình cắt trên thiết bị không hỗ trợ các kích thước đó. Bây giờ, hệ thống sẽ chọn kích thước không bị cắt với độ phân giải đủ để liên kết với yêu cầu ban đầu nếu có.
Camera-Camera2 Phiên bản 1.0.0-alpha08
Ngày 18 tháng 12 năm 2019
Phát hành androidx.camera:camera-camera2:1.0.0-alpha08
. Phiên bản 1.0.0-alpha08 bao gồm các thay đổi sau.
Lỗi đã biết
- Không phải tất cả tuỳ chọn yêu cầu chụp Camera2 đều hoạt động khi sử dụng khả năng tương tác Camera2. Nếu tuỳ chọn đã yêu cầu không được hỗ trợ, phiên làm việc sẽ không bắt đầu và có thể xảy ra lỗi:
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
Sửa lỗi
- Sửa lỗi màn hình xem trước bị đen sau khi xoay hoặc chuyển đổi máy ảnh cho API cấp 21 và 22.
Thay đổi về API
- Thử nghiệm: Thêm đường dẫn tương tác camera2 để trích xuất Camera ID.
Camera-Core Phiên bản 1.0.0-alpha08
Ngày 18 tháng 12 năm 2019
Phát hành androidx.camera:camera-core:1.0.0-alpha08
. Phiên bản 1.0.0-alpha08 bao gồm các thay đổi sau.
Lỗi đã biết
- Các ứng dụng sử dụng
PreviewView
hoặcCameraView
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
FocusMeteringAction
vàCameraControl
. - Cài đặt
TorchControl
choenableTorch()
và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ớpOnImageCaptureCallback
sangImageInfo
. - Chuyển
rotationDegrees
từ lớpAnalyzer
sangImageInfo
.
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ụngCamera2Config
mặc định doandroidx.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()
vàhasCamera()
do được cung cấp khi gọi lớp CameraX trước đây hiện có sẵn quaProcessCameraProvider
.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ĩnhProcessCameraProvider.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ấpProcessCameraProvider
khi hoàn tất. Nó được hiển thị ởonCreate()
để sử dụng thông thường. Bạn có thể thực hiện các lệnh gọi đếngetInstance()
sau này trong vòng đời của activity (hoạt động) để trì hoãn thời gian khởi chạy cho một khoảng thời gian sau (ví dụ như khi người dùng thực hiện thao tác mở giao diện người dùng cho máy ảnh).import androidx.camera.lifecycle.ProcessCameraProvider import com.google.common.util.concurrent.ListenableFuture class MainActivity : AppCompatActivity() { private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider> override fun onCreate(savedInstanceState: Bundle?) { cameraProviderFuture = ProcessCameraProvider.getInstance(this); }
Bạn có thể thêm một event listener vào
ListenableFuture
dogetInstance()
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ênFuture.get()
cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))
Bạn hiện có thể chọn máy ảnh bằng bộ chọn máy ảnh, thay vì theo từng trường hợp sử dụng
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
CameraProvider.bindToLifecycle
được cấp cho chủ sở hữu vòng đời, bộ chọn máy ảnh và các trường hợp sử dụng mà được liên kết với chủ sở hữu vòng đời nhất định và chạy cho máy ảnh đã chọn.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)
Xoá lớp "Config" trường hợp sử dụng. Thay vào đó, hãy trực tiếp tạo các trường hợp sử dụng và đặt tuỳ chọn cho từng trình tạo trường hợp sử dụng. Ví dụ:
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
Trường hợp sử dụng Preview đã được cập nhật để chấp nhận một surface do ứng dụng tạo và quản lý để đảm bảo các phương pháp hay nhất về Android. Bạn nên sử dụng lớp xem
PreviewView
được cung cấp trong gói camera-view.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
Xem tài liệu để đính kèm một nền tảng do ứng dụng quản lý. Trong những trường hợp này, ứng dụng sẽ quản lý vòng đời của nền tảng.
Lưu ý quan trọng: Việc triển khai phương thức
ImageAnalysis
của Trình phân tích phải gọiimage.close()
cho hình ảnh đã nhận khi sử dụng xong các hình ảnh này. Nếu không, bạn có thể không nhận được những hình ảnh mới hoặc máy ảnh có thể trì hoãn, tuỳ thuộc vào chế độ cài đặt áp lực ngược (back pressure). Tham khảo tài liệu tham khảo để biết thêm thông tin chi tiết.ImageAnalysis ImageReaderMode
hiện đã đổi thành chiến lược backpressureintdef
.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
choAnalyzer
.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ànhImageCapture.OnImageCapturedCallback
ImageCapture.OnImageSavedListener
đổi tên thànhImageCapture.OnImageSavedCallback
VideoCapture.OnVideoSavedListener
đổi tên thànhVideoCapture.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.startFocusMetering
vàcancelFocusMetering
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ưngListenableFuture<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 đếnCaptureSession
) vàTorchState
vẫn ở chế độ Tắt. - Vấn đề đã biết:
startFocusAndMetering
vàcancelFocusAndMetering
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-alpha06
và androidx.camera:camera-core:1.0.0-alpha06
. Đây là các thay đổi trong camera-camera2:1.0.0-alpha06
và cá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ọnRATIO_4_3
hoặcRATIO_16_9
thay vì tỷ lệ khung hình tuỳ ý. Điều này phản ánh thực tế là máy ảnh chỉ cung cấp một số tỷ lệ khung hình nhất định chứ không phải bất kỳ tỷ lệ tuỳ ý nào.- Hiện tại, tỷ lệ khung hình duy nhất hiện có là 16:9 và 4:3. Trong trường hợp 1:1, chỉ một số thiết bị có máy ảnh với tỷ lệ khung hình này và có độ phân giải giới hạn. Các ứng dụng thiết kế hoặc xử lý giao diện 1:1 nên sử dụng các tỷ lệ 16:9 hoặc 4:3 linh hoạt hơn và cắt màn hình hiển thị hoặc xử lý một vùng phụ.
- Các tỷ lệ khung hình này được định hướng để sử dụng diện tích cảm biến tối đa.
- Thêm
getTargetAspectRatio()
để sử dụng API cấu hình trường hợp sử dụng, qua đó trả về tỷ lệ khung hình mà đầu ra trường hợp sử dụng mong muốn. - Thay đổi phương thức
setTargetAspectRatio(Rational aspectRatio)
cho ImageCapture thànhsetTargetAspectRatioCustom(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
- API
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ứcgetCameraInfo
, cho phép các ứng dụng kiểm tra xem có CameraInfo về ống kính đối diện với máy ảnh và có đèn flash trên máy ảnh đó hay không. Ví dụ:try { CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing); LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable(); flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE); } catch (CameraInfoUnavailableException e) { Log.w(TAG, "Cannot get flash available information", e); flashToggle.setVisibility(View.VISIBLE); }
Thêm
CameraInfo.getSensorRotationDegrees()
. Thành phần này cung cấp hướng cảm biến của máy ảnh theo hướng tương ứng với hướng tự nhiên của thiết bị, hoặc để thuận tiện, tương ứng với hướng do chế độ xoay Surface (Khu vực) mô tả (mô tả một hướng tương ứng với hướng tự nhiên).
Thay đổi API và sửa một số lỗi
- Tỷ lệ khung hình: Đối với mỗi trường hợp sử dụng, ứng dụng chỉ nên gọi
setTargetResolution()
hoặcsetTargetAspectRatio()
. 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).
- Nhìn chung, bạn nên sử dụng
- Executor API: Xoá lệnh gọi
setCallbackHandler()
khỏi API cấu hình trường hợp sử dụng. Thay vào đó, các ứng dụng có thể đặt executor dưới dạng tham số trong nhiều API khác nhau mà sẽ đặt lệnh gọi lại. - Cập nhật chú thích rỗng cho nhiều hàm.
- Khắc phục lỗi khai báo ngoại lệ
java.lang.IllegalStateException at Camera$StateCallback.onError
khi mở máy ảnh. - Sửa lỗi chọn độ phân giải quá nhỏ (dưới 640x480) khi ứng dụng yêu cầu độ phân giải lớn hơn hoặc mặc định dẫn đến hình ảnh xem trước bị che lấp hoặc bị mờ. Những ứng dụng cần độ phân giải nhỏ hơn có thể yêu cầu rõ ràng.
- Khắc phục lỗi máy ảnh hiển thị màn hình đen (không thể khởi động máy ảnh) sau khi khởi chạy một ứng dụng máy ảnh khác.
- Khắc phục lỗi khi ứng dụng được khởi động hoặc dừng liên tục;
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
- Khắc phục lỗi sau đây xảy ra khi tắt tính năng ImageAnalysis:
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
- Thêm mã kiểm thử bổ sung cho quy trình ngắt kết nối máy ảnh.
- Cải thiện khả năng hệ thống kiểm thử khi chạy kiểm thử máy ảnh liên tục.
Camera-Camera2 và Camera-Core Phiên bản 1.0.0-alpha05
Ngày 5 tháng 9 năm 2019
Phát hành androidx.camera:camera-camera2:1.0.0-alpha05
và androidx.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ànhImageCapture.ImageCaptureError
VideoCapture.UseCaseError
đổi tên thànhVideoCapture.VideoCaptureError
Thêm API
CameraControl
có API nhấn để lấy nétThê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
,MeteringMode
vàFocusMeteringAction
để chạy API Nhấn để lấy nét:MeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height); MeteringPoint point = factory.createPoint(x, y); FocusMeteringAction action = FocusMeteringAction.Builder.from(point, MeteringMode.AF_ONLY) .addPoint(point2, MeteringMode.AE_ONLY) // could have many .setAutoFocusCallback(new OnAutoFocusListener(){ public void onFocusCompleted(boolean isSuccess) { } }) // auto calling cancelFocusAndMetering in 5 sec. .setAutoCancelDuration(5, TimeUnit.Second) .build();
Thêm API cho
CameraControl
để bắt đầu và huỷ đo sáng tập trung:getCameraControl(lensFacing).startFocusAndMetering(action);
getCameraControl(lensFacing).cancelFocusAndMetering();
Thêm API cho các nhà máy điểm đo sáng (Metering Point Factories) hỗ trợ việc dịch toạ độ nhấn sang toạ độ cảm biến dựa trên các lớp khung hiển thị:
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);
MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
Thực thi lệnh gọi các phương thức sau trên thread chính (UI), khai báo ngoại lệ
IllegalStateException
khi không có phương thức nào. Các phiên bản trong tương lai sẽ cho phép sử dụng trên các thread khác và đảm bảo việc chuyển đổi tuần tự.CameraX.bindToLifecycle()
CameraX.unbind()
CameraX.unbindAll()
ImageAnalysis.setAnalyzer()
ImageAnalysis.getAnalyzer()
ImageAnalysis.removeAnalyzer()
Preview.removePreviewOutputListener()
Preview.getOnPreviewOutputUpdateListener()
Preview.setOnPreviewOutputUpdateListener()
Nhiều tuỳ chọn cài đặt cấu hình khác nhau hiện chấp nhận các tham số rỗng và các phương thức getter tương ứng có thể trả về kết quả rỗng.
Sửa lỗi khi kiểm thử trên các trình mô phỏng không hỗ trợ tuỳ chọn cài đặt AF/AE/AWB.
Khắc phục lỗi xoay hình trong khi phân tích hình ảnh.
Sửa lỗi trong đó màn hình xem trước bị đen khi khởi động (không có dữ liệu về máy ảnh), sau khi xoay hoặc chuyển giữa máy ảnh trước và sau.
Xoá hoạt động kiểm thử cho nhiều trường hợp sử dụng phân tích hình ảnh đồng thời. Để đảm bảo khả năng tương thích, các ứng dụng chỉ nên đính kèm một trường hợp sử dụng phân tích hình ảnh.
Thêm các kiểm thử robolectric ban đầu của máy ảnh giả cho trong bộ camera-testing (WIP).
Xoá kiểm thử Camera2Inititalizer do phạm vi kiểm thử không rõ ràng/gây hiểu lầm.
Camera-Camera2 và Camera-Core Phiên bản 1.0.0-alpha04
Ngày 7 tháng 8 năm 2019
Phát hành androidx.camera:camera-camera2:1.0.0-alpha04
và androidx.camera:camera-core:1.0.0-alpha04
. Phiên bản 1.0.0-alpha04 bao gồm các thay đổi sau.
Tính năng mới
Thay đổi lựa chọn Tỷ lệ khung hình và Độ phân giải
Mục tiêu của CameraX là khởi chạy thành công một phiên máy ảnh. Điều này có nghĩa là CameraX sẽ điều chỉnh độ phân giải/tỷ lệ khung hình dựa trên khả năng của thiết bị để bắt đầu phiên chụp - mục tiêu đầu tiên của CameraX, vì vậy yêu cầu chính xác có thể không được chấp nhận. Điều này có thể là do:
- Các thiết bị không hỗ trợ độ phân giải được yêu cầu
- Các vấn đề về khả năng tương thích, chẳng hạn như trên các thiết bị LEGACY mà phải dùng một số độ phân giải nhất định để thao tác chính xác
- Một số thiết bị chỉ có một số định dạng theo tỷ lệ khung hình nhất định
- Tuỳ chọn "gần bằng mod16 nhất" để mã hoá ảnh JPEG hoặc video. Xem
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
Mặc dù CameraX tạo và quản lý phiên nhưng bạn phải luôn kiểm tra kích thước hình ảnh được trả về ở dữ liệu đầu ra của trường hợp sử dụng trong mã và điều chỉnh sao cho phù hợp.
Một số thay đổi đã được thực hiện để thiết lập độ phân giải và tỷ lệ khung hình để làm cho API rõ ràng hơn:
- Tỷ lệ khung hình 4:3 sẽ được cài đặt mặc định đối với trường hợp sử dụng Preview (Xem trước) nếu không có tỷ lệ nào được đặt trước.
- Khi xem xét các thay đổi đối với độ phân giải và tỷ lệ khung hình được yêu cầu dựa trên chức năng của thiết bị, CameraX đầu tiên sẽ cố gắng duy trì cùng tỷ lệ khung hình (do lệnh gọi
setTargetAspectRatio
hoặcsetTargetResolution
xác định) - Phiên bản “gần bằng mod16 nhất” của độ phân giải được xem là có cùng tỷ lệ khung hình.
Chế độ không chặn ImageAnalysis
- Không chặn hành vi của
ImageReaderMode.ACQUIRE_LATEST_IMAGE
. Hành vi này sẽ nhận được hình ảnh mới nhất trong hàng đợi, nhưng liên tục huỷ các hình ảnh không sử dụng để cho phép quy trình máy ảnh tránh bị chặn. - Trình phân tích có thể giữ một hình ảnh vô thời hạn mà không làm gián đoạn quy trình.
- Nếu ứng dụng cung cấp một executor mà sau đó chặn, thì ImageAnalysis sẽ sử dụng các trường hợp chặn.
- Executor (Trình thực thi) mặc định được cài đặt nội bộ sẽ hoạt động như là executor (trình thực thi) không bị chặn.
Sửa lỗi
- Sửa các lỗi về thời gian chờ hội tụ 3A khi chụp ảnh trên các thiết bị không có tính năng tự động lấy nét, tự động phơi sáng và cân bằng trắng
- Khắc phục lỗi khi chụp ảnh nhanh bằng ImageCapture. Sửa lỗi:
java.lang.IllegalStateException: maxImages (2) has already been acquired
- Khắc phục lỗi khi
setLensFacing
không được gọi cho một trường hợp sử dụng, dẫn đếnjava.lang.IllegalArgumentException: Unable to get camera ID for use case
. - Sửa lỗi thiết bị LEGACY yêu cầu tỷ lệ khung hình cụ thể là độ phân giải JPEG tối đa
- Khắc phục lỗi khi chạy ngầm ứng dụng khi máy ảnh đang mở
- Khắc phục lỗi API < 25, xoá lỗi
checkAndUpdateEglState: invalid current EGLDisplay
- Khắc phục lỗi khi huỷ liên kết xem trước sau khi bật và khởi động tiện ích
- Tạo cấu phần phần mềm cho camera-view và camera-extensions hiện được công khai dưới dạng phiên bản alpha
Camera-Camera2 và Camera-Core Phiên bản 1.0.0-alpha03
Ngày 2 tháng 7 năm 2019
Phát hành androidx.camera:camera-core:1.0.0-alpha03
và androidx.camera:camera-camera2:1.0.0-alpha03
. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm phần làm rõ javadoc cho "mục tiêu" trong các lệnh gọi cấu hình setTarget
Camera-Core
- Sửa lỗi xảy ra sự cố cho Surface đầu vào/đầu ra chưa được định cấu hình khi mở/đóng hoặc liên kết/huỷ liên kết nhanh
- Chuyển sang triển khai các Future mới
- Kiểm thử bản sửa lỗi để kiểm thử hiệu quả hơn
- Giờ đây, việc kiểm thử tích hợp cốt lõi sẽ hiển thị thời gian chụp ảnh
- Phát triển lớp tương thích nội bộ cho các Executor
- Kiểm thử thời gian chụp ảnh trên ứng dụng chờ các lần kiểm thử trước đó hoàn tất và cải thiện độ ổn định
Tiện ích
- Thêm các bước kiểm tra phiên bản
- Phạm vi kiểm tra bổ sung - lệnh gọi lại sự kiện của tiện ích
- Cải tiến siêu dữ liệu và hình ảnh tương ứng nội bộ
- Khắc phục một số lỗi khi chuyển đổi chế độ trong ứng dụng kiểm thử
Camera-Camera2 và Camera-Core Phiên bản 1.0.0-alpha02
Ngày 5 tháng 6 năm 2019
Phát hành androidx.camera:camera-core:1.0.0-alpha02
và androidx.camera:camera-camera2:1.0.0-alpha02
. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi chia cho 0 khi sử dụng trình mô phỏng
- Sửa lỗi bỏ qua NullPointerException/Surface xảy ra trên một số thiết bị khi nhanh chóng chụp ảnh trong lúc huỷ liên kết và liên kết lại các trường hợp sử dụng một cách nhanh chóng.
- Sửa lỗi nội bộ để đảm bảo việc cập nhật yêu cầu chụp ảnh hưởng nhất quán đến tất cả nền tảng
- Cải thiện độ ổn định khi khởi động lại các trường hợp sử dụng trong các thực thể mới của ứng dụng
- Thay đổi cấu trúc nội bộ để chuẩn bị hỗ trợ cho các executor trong API
- Bổ sung nội dung làm rõ trong Javadoc về việc quản lý vòng đời và lớp CameraX
- Thêm hoạt động kiểm thử đo lường cho ứng dụng kiểm thử hiệu suất Antelope
- Xoá 'Chữ ký -keepattribute signature' trong cấu hình Proguard của ứng dụng
Camera-Camera2 và Camera-Core Phiên bản 1.0.0-alpha01
Ngày 7 tháng 5 năm 2019
Phát hành androidx.camera:camera-core:1.0.0-alpha01
và
androidx.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
- Phát hành để hỗ trợ Camera-Core 1.0.0-beta10
Camera-Lifecycle Phiên bản 1.0.0-beta09
Ngày 16 tháng 9 năm 2020
Phát hành androidx.camera:camera-lifecycle:1.0.0-beta09
. Phiên bản 1.0.0-beta09 bao gồm các thay đổi sau.
Camera-Lifecycle Phiên bản 1.0.0-beta08
Ngày 19 tháng 8 năm 2020
Phát hành androidx.camera:camera-lifecycle:1.0.0-beta08
. Phiên bản 1.0.0-beta08 bao gồm các thay đổi sau.
Sửa lỗi
- Quá trình khởi chạy không còn gặp sự cố khi sử dụng một Context (Ngữ cảnh) không trả về đối tượng Application (Ứng dụng) qua
Context.getApplicationContext()
. (I3d3c9, b/160817073)
Camera-Lifecycle Phiên bản 1.0.0-beta07
Ngày 22 tháng 7 năm 2020
Phát hành androidx.camera:camera-lifecycle:1.0.0-beta07
. Phiên bản 1.0.0-beta07 bao gồm các thay đổi sau.
Camera-Lifecycle Phiên bản 1.0.0-beta06
Ngày 24 tháng 6 năm 2020
Phát hành androidx.camera:camera-lifecycle:1.0.0-beta06
. Phiên bản 1.0.0-beta06 bao gồm các thay đổi sau.
Thay đổi về API
- CameraX hiện có thể được định cấu hình với ProcessCameraProvider#configureInstance() trước khi gọi ProcessCameraProvider#getInstance(). Điều này cho phép tuỳ chỉnh CameraXConfig mà không cần cài đặt CameraXConfig.Provider trong lớp Application của ứng dụng. (Ia1a8d)
Camera-Lifecycle Phiên bản 1.0.0-beta05
Ngày 10 tháng 6 năm 2020
Phát hành androidx.camera:camera-lifecycle:1.0.0-beta05
. Phiên bản 1.0.0-beta05 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục sự cố lúc khởi động ứng dụng khi khởi chạy CameraX trong lúc điện thoại đang ở chế độ Không làm phiền
InitializationException
chứaCameraUnavailableException
mà sẽ được đặt thànhListenableFuture
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()
mà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ấtCamera
mà không cần liên kết với mộtUseCase
. - Sửa lỗi để hỗ trợ việc phát hành
camera-core
Camera-Lifecycle Phiên bản 1.0.0-beta01
Ngày 26 tháng 2 năm 2020
Phát hành androidx.camera:camera-lifecycle:1.0.0-beta01
. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.
Sửa lỗi
- Sửa lỗi tài liệu để lưu ý rằng khi lấy
ProcessCameraProvider
trong quá trình khởi chạy, cấu hình mặc định sẽ được sử dụng và việc mở rộngApplication
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-beta02
vàcamera-core:1.0.0-beta02
.
Camera-Lifecycle Phiên bản 1.0.0-alpha10
Ngày 10 tháng 2 năm 2020
Phát hành androidx.camera:camera-lifecycle:1.0.0-alpha10
. Phiên bản 1.0.0-alpha10 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm chú thích
@MainThread
vào phương thức BindToLifecycle, unbind và unbindAll. (I990d2)
Camera-Lifecycle Phiên bản 1.0.0-alpha03
Ngày 22 tháng 1 năm 2020
Phát hành androidx.camera:camera-lifecycle:1.0.0-alpha03
. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.
Bản cập nhật
- Nhiều bản sửa lỗi và cập nhật giúp hỗ trợ thay đổi Camera Core và Camera2.
Camera-Lifecycle Phiên bản 1.0.0-alpha02
Ngày 18 tháng 12 năm 2019
Phát hành androidx.camera:camera-lifecycle:1.0.0-alpha02
. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.
Các thay đổi về phần phụ thuộc
- Cập nhật để sử dụng
androidx.camera:camera-core:1.0.0-alpha08
.
Camera-Lifecycle Phiên bản 1.0.0-alpha01
Ngày 4 tháng 12 năm 2019
Phát hành androidx.camera:camera-lifecycle:1.0.0-alpha01
. Phiên bản 1.0.0-alpha01 của camera-lifecycle bao gồm các thay đổi sau
Ghi chú về API
- Thêm cấu phần phần mềm camera-lifecycle, cung cấp giao diện
LifeCycleCameraProvider
và phương thức cài đặt có tên làProcessCameraProvider
với mục đích cung cấp nhiều chức năng của lớp CameraX trước đó trong lõi và lấy thông qua phương thứcgetInstance()
. - Ứ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-alpha32
và androidx.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ợImageCapture
vàPreview
. Chưa thể hỗ trợVideoCapture
. Nếu ứng dụng liên kết vớiVideoCapture
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ửiIllegalArgumentException
khi không có kết quả nào. (I27804)- Đổi tên API
ExtensionsManager#getInstance
thànhgetInstanceAsync
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ụngImageCapture
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àmExtensionsManager
sang APIgetInstance()
. Do đó, người dùng không cần nhập tham sốCameraProvider
mỗi lần gọi các hàmExtensionsManager
. (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-alpha31
và androidx.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-alpha30
và androidx.camera:camera-view:1.0.0-alpha30
. Phiên bản 1.0.0-alpha30 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm chú thích @RequiresApi(21) vào mọi lớp CameraX và xoá minSdkVersion khỏi AndroidManifest.xml. Điều này sẽ cho phép dễ dàng tích hợp camera-core vào các ứng dụng có minSdkVersion phiên bản 21 trở xuống nhưng muốn sử dụng đường dẫn mã có điều kiện dựa trên API 21 trở lên. Không cần thực hiện thao tác gì đối với mọi ứng dụng có minSdkVersion phiên bản 21 trở lên. (Ie7f2e, b/200599470)
Sửa lỗi
- Khắc phục lỗi AbstractmethodError khi xảy ra khi bật proguard. (Iae468, b/201177844)
Phiên bản 1.0.0-alpha29
Ngày 29 tháng 9 năm 2021
Phát hành androidx.camera:camera-extensions:1.0.0-alpha29
và androidx.camera:camera-view:1.0.0-alpha29
. Phiên bản 1.0.0-alpha29 bao gồm các thay đổi sau.
Thay đổi về API
- Xoá chú thích ExperimentalUseCaseGroup do các API không còn là API thử nghiệm nữa. (I01ef5)
- Xoá
RotationProvider#removeAllListeners()
. Thay vào đó, hãy sử dụngRotationProvider#removeListener(...)
. (Id9d4a) - Cập nhật lớp RotationReceiver: đổi Trình nghe sự kiện set/clear thành add/remove/removeAll, xoá biến setListener sử dụng luồng (thread) chính theo mặc định và thêm chú thích cho phương thức. (Ib1669)
Sửa lỗi
- Đổi tên ExtensionMode#BEAUTY thành FACE_RETOUCH để hiển thị chính xác những gì chế độ tiện ích thực hiện. (I61f54, b/198515274)
- Khắc phục lỗi máy ảnh đóng đột ngột khi nhiều CameraController và PreviewView được sử dụng trong một Activity. (Ibfd18, b/197539358)
Phiên bản 1.0.0-alpha28
Ngày 18 tháng 8 năm 2021
Phát hành androidx.camera:camera-extensions:1.0.0-alpha28
và androidx.camera:camera-view:1.0.0-alpha28
. Phiên bản 1.0.0-alpha28 bao gồm các thay đổi sau.
Thay đổi về API
- Xoá chú thích ExperimentalUseCaseGroupLifecycle do các API không còn là API thử nghiệm nữa. (I17b85)
- Đổi tên refactored RotationListener thành RotationProvider. Lớp đó vẫn tiếp tục cung cấp tính năng tương tự nhưng sử dụng API khác một chút. (Idffc5)
- Đổi tên TAP_TO_FOCUS_UNSUCCESSFUL thành TAP_TO_FOCUS_NOT_FOCUSED và TAP_TO_FOCUS_SUCCESSFUL thành TAP_TO_FOCUS_FOCUSED. Thực hiện OutputSize sau cùng (I099fa)
Sửa lỗi
- Xoá các lớp
<EffectName><UseCase>Extender
không còn được dùng, các API ExtensionsErrorListener và ExtensionsManager. (I3b8c3)
Phiên bản 1.0.0-alpha27
Ngày 21 tháng 7 năm 2021
Phát hành androidx.camera:camera-extensions:1.0.0-alpha27
và androidx.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ànhCoordinateTransform#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-alpha26
và androidx.camera:camera-view:1.0.0-alpha26
. Phiên bản 1.0.0-alpha26 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm phương thức
CameraController#getTapToFocusState()
lấy kết quả nhấn để lấy nét mới nhất. (Iaccb0) - Thêm các tính năng camera-core vào CameraController: phương thức getter/setter cho tỷ lệ khung hình mục tiêu, độ phân giải mục tiêu, chế độ chụp, CameraControl và executor tuỳ chỉnh. (Iea8f2)
- Thêm một lớp RotationReceiver nhận thay đổi xoay Surface. Có thể dùng lớp này để đặt độ xoay mục tiêu khi thiết bị ở chế độ màn hình dọc/ngang cố định. (Ib278f)
- Cấp quyền truy cấp các API công khai mới getEstimatedCaptureLatencyRange trong lớp ExtensionsManager. (I6a8ec)
- Không sử dụng ExtensionsErrorListener. Hiện tại, giao diện này chỉ được dùng để theo dõi xem có thiếu Preview hoặc ImageCapture khi bật chế độ tiện ích hay không. CameraX sẽ tự động thêm một Preview hoặc ImageCapture khác để các hàm tiện ích hoạt động tốt. Sau đó, giao diện này sẽ không báo lỗi nữa. (I47d9e)
- Cấp quyền truy cập các API công khai mới ExtensionsManager getInstance, isExtensionAvailable và getExtensionEnabledCameraSelector, đồng thời ngừng sử dụng các lớp
<EffectName><UseCase>Extender
và API cũ. (I329e6)
Phiên bản 1.0.0-alpha25
Ngày 2 tháng 6 năm 2021
Phát hành androidx.camera:camera-extensions:1.0.0-alpha25
và androidx.camera:camera-view:1.0.0-alpha25
. Phiên bản 1.0.0-alpha25 bao gồm các thay đổi sau.
Thay đổi về API
- Các API ExperimentalCameraFilter hiện đã vượt qua giai đoạn thử nghiệm và trở thành API chính thức. Bạn có thể sử dụng các API này mà không cần chú thích đến OptIn. (I4bc94)
- Thêm phần mềm tiện ích chuyển đổi toạ độ giữa các trường hợp sử dụng. Ví dụ về cách sử dụng: chuyển đổi các toạ độ được phát hiện trong trường hợp sử dụng ImageAnalysis và đánh dấu đối tượng được phát hiện trong chế độ xem trước. (I63ab1, b/137515129)
- Xoá
CameraView
.CameraView
được thay thế bằngCameraController
. Xem hướng dẫn di chuyển để biết cách di chuyển: (Id5005)
Sửa lỗi
- Thay
ExperimentalUseCaseGroupLifecycle
bằngExperimentalUseCaseGroup
(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-alpha24
và androidx.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ùngandroidx.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-alpha23
và androidx.camera:camera-view:1.0.0-alpha23
. Phiên bản 1.0.0-alpha23 bao gồm các thay đổi sau.
Thay đổi về API
- Ngừng sử dụng CameraView. Thay vào đó, hãy sử dụng
LifecycleCameraController
. Xem hướng dẫn di chuyển (Idac2c) - Thêm chú thích FloatRange vào setLinearZoom() (I69971)
Sửa lỗi
- Ghim các phần phụ thuộc camera-view để dựa vào các cấu phần phần mềm 1.0.0. Việc phụ thuộc vào camera-view sẽ không còn khiến độ phân giải của phần phụ thuộc gradle tự động nâng cấp camera-core, camera-camera2 và camera-lifecycle lên cấu phần phần mềm 1.1.0 mới nhất, mặc dù camera-view vẫn tương thích với các cấu phần phần mềm đó nếu đã được thiết lập rõ ràng để sử dụng phiên bản 1.1.0. (Ic8fa1, b/181599852)
- Sửa lỗi hình ảnh xem trước bị giãn trong PreviewView trên Samsung A3. (Iacb30, b/180121821)
- Khắc phục lỗi khi không thể đặt bộ chọn máy ảnh trước khi khởi chạy máy ảnh. (Ic8bd0)
Tiện ích máy ảnh & Chế độ xem Phiên bản 1.0.0-alpha22
Ngày 24 tháng 2 năm 2021
Phát hành androidx.camera:camera-extensions:1.0.0-alpha22
và androidx.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-alpha21
và androidx.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-alpha20
và androidx.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-alpha19
và androidx.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 đóExperimentalVideo
làmarkerClass
. (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
- Phát hành để hỗ trợ Camera-Core 1.0.0-beta10
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
- Phát hành để hỗ trợ Camera-Core 1.0.0-beta10
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ượngExtensions
đượ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()
vàPreviewView#getDeviceRotationForRemoteDisplayMode()
. 2 phương thức này dùng để tuỳ chỉnh chế độ xoay xem trước trong trường hợp chế độ xoay bạn muốn không phải là xoay màn hình, ví dụ: hiển thị từ xa. Hiện nay, để xử lý chế độ xoay trong xem trước không hiển thị, hãy đặt chế độ xoay mà bạn muốn bằngPreview#setTargetRotation()
vàPreviewView#getViewPort(targetRotation)
mới được thêm. (Ib62cc) - Đổi tên
createSurfaceProvider()
thànhgetSurfaceProvider()
. Phương thức này sẽ luôn trả về cùng một thực thể của Preview.SurfaceProvider. (Iff83c)
Sửa lỗi
- Buộc PreviewView sử dụng TextureView nếu hiệu ứng tiện ích được bật và việc cài đặt thư viện nhà cung cấp cần phải thực hiện một quy trình đặc biệt trên khu vực đầu ra. (I0c3cc)
- Cho phép xoay phương hướng tuỳ ý trong Preview. Thông tin chuyển đổi được tính toán và trả về cho người dùng ngay lập tức thông qua lệnh gọi lại
TranformationInfoListener
mới. (I21470)
Lỗi đã biết
- Trong PreviewView,
OnClickListener#onClick()
không được gọi khi người dùng cuối nhấp vào PreviewView. Sự kiện chạm bị PreviewView#onTouchEvent() vô tình "nuốt". Lỗi này sẽ được khắc phục trong bản phát hành tiếp theo. - MeteringPoint lấy từ
PreviewView#getMeteringPointFactory()
có thể không chính xác nếu ViewPort được sử dụng với PreviewView.
Camera-Extensions Phiên bản 1.0.0-alpha15
Ngày 19 tháng 8 năm 2020
Phát hành androidx.camera:camera-extensions:1.0.0-alpha15
. Phiên bản 1.0.0-alpha15 bao gồm các thay đổi sau.
Sửa lỗi
- Phương thức
ExtensionsManager.init()
hiện đang được lấy Context làm tham số thay vì không có đối số nào. (Ife754) Hoạt động khởi chạy không còn gặp sự cố khi sử dụng lớp Context mà không trả về đối tượng Application từ
Context.getApplicationContext()
. (I3d3c9, b/160817073)Camera-View Phiên bản 1.0.0-alpha15
Ngày 19 tháng 8 năm 2020
Phát hành androidx.camera:camera-view:1.0.0-alpha15
. Phiên bản 1.0.0-alpha15 bao gồm các thay đổi sau.
Sửa lỗi
DisplayOrientedMeteringPointFactory
lấy thực thểCameraInfo
thay vìCameraSelector
, nhờ đó, sẽ có ánh xạ trực tiếp đến Camera mà đối tượng nhà máy (factory) sẽ tạo điểm trên đó. Tất cả lớp sử dụngDisplayOrientedMeteringPointFactory
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ụngTextureView
haySurfaceView
. (Ide693) - Đổi tên các chế độ cài đặt
SURFACE_VIEW
/TEXTURE_VIEW
của PreviewView thànhPERFORMANCE
/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ứaCameraUnavailableException
mà sẽ được đặt thànhListenableFuture
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ỏiPreviewView#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 khiremoveView(previewview)
rồiaddView(previewView)
. (Iab555, b/149877652, b/147354615) - Cập nhật API
CameraView#takePicture()
để cho phép lưu hình ảnh vàoUri
vàOutputStream
. Cập nhật ứng dụng kiểm thử để dùngUri
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ụngPreviewView.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-beta02
vàcamera-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ớiPreviewView
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à doSurfaceView
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ủaSurfaceView
hợp lệ trở lại. Hiện tại, bạn nên sử dụngImplementationMode.TEXTURE_VIEW
.
Thay đổi về API
- Đổi tên
PreviewView.setImplementationMode()
thànhPreviewView.setPreferredImplementationMode()
. - Đổi tên
PreviewView.getImplementationMode()
thànhPreviewView.getPreferredImplementationMode()
. - Thay thế
PreviewView.getSurfaceProvider()
bằngPreviewView.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ụngImplementationMode.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ànhImplementationMode.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àoPreviewView.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ị trongPreviewView.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ínhimplementationMode
.Thêm API
createMeteringPointFactory()
vào PreviewView để hỗ trợ việc chuyển đổi (x, y) trongPreviewView
sangMeteringPoint
. (Ib36d7)
Sửa lỗi
- Khắc phục các trường hợp bản xem trước không hiển thị chính xác sau khi kích thước của
PreviewView
thay đổi. (I71101)
Camera-Extensions Phiên bản 1.0.0-alpha08
Ngày 26 tháng 2 năm 2020
Phát hành androidx.camera:camera-extensions:1.0.0-alpha08
. Phiên bản 1.0.0-alpha08 bao gồm các thay đổi sau.
Camera-View Phiên bản 1.0.0-alpha08
Ngày 26 tháng 2 năm 2020
Phát hành androidx.camera:camera-view:1.0.0-alpha08
. Phiên bản 1.0.0-alpha08 bao gồm các thay đổi sau.
Sửa lỗi
- Thay thế
ListenableFuture
trênSurfaceRequest.provideSurface()
bằngExecutor
vàCallback
. 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ênprovideSurface()
và đảm bảo rằng không thể huỷ lệnh gọi lạiprovideSurface()
. 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ượngSurfaceRequest.Result
hiện được dùng để theo dõi cáchSurfaceRequest
sử dụngSurface
cho sẵn. (I7854b) - Đổi tên
SurfaceRequest.setSurface(Surface)
thànhSurfaceRequest.provideSurface(Surface)
vàSurfaceRequest.setWillNotComplete()
thànhSurfaceRequest.willNotProvideSurface()
. (I224fe) - Sửa lỗi khởi chạy các biến thể ứng dụng đã bật ProGuard bằng cách duy trì cờ đặt trình cung cấp
CameraXConfig
mặc định. (I2d6c1)
Camera-Extensions Phiên bản 1.0.0-alpha07
Ngày 10 tháng 2 năm 2020
Phát hành androidx.camera:camera-extensions:1.0.0-alpha07
. Phiên bản 1.0.0-alpha07 bao gồm các thay đổi sau.
Sửa lỗi
- Các đối số trước đây đã được truyền vào
ImageCapture.OnImageSavedCallback.onError()
vàImageCapture.OnImageCapturedCallback.onError()
hiện đã được thay thế bằng một đối số duy nhấtImageCaptureException
. Đối số này vẫn chứa mọi thông tin đã được truyền trước đó. - Xoá tệp mà đối số truyền trước đó trong
ImageCapture.OnImageSavedCallback.onImageSaved()
. (I750d2)
Camera-View Phiên bản 1.0.0-alpha07
Ngày 10 tháng 2 năm 2020
Phát hành androidx.camera:camera-view:1.0.0-alpha07
. Phiên bản 1.0.0-alpha07 bao gồm các thay đổi sau.
Thay đổi về API
- Quá trình cài đặt
TextureView
củaPreviewView
hiện đặt kích thước củaTextureView
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 đầyPreviewView
mẹ. Nếu muốn chế độ xem trước của máy ảnh lấp đầy toàn bộ một phần giao diện người dùng (ví dụ: toàn bộ màn hình), bạn không nên thiết lập kích thước củaPreviewView
thành giá trị cố định hoặc để kích thước bọc nội dung bên trong (chẳng hạn như bằng cách sử dụng thuộc tính "wrap_content
") do có thể dẫn đến việc chế độ xem trước trên máy ảnh chỉ lấp đầy một phần củaPreviewView
(khi kích thước đầu ra cảm biến của máy ảnh nhỏ hơn). Thay vào đó, bạn nên đặtPreviewView
lớn bằng lớp cha (bằng cách sử dụng thuộc tính "match_parent
" chẳng hạn). (1204869)
Sửa lỗi
- Cập nhật
ImageCapture
để cho phép lưu hình ảnh vàoUri
vàOutputStream
. Kết hợp nhiều phương thức nạp chồngtakePicture
thành một. Cập nhật ứng dụng kiểm thử để dùngUri
làm ví dụ chuẩn hoá. (Ia3bec) - Đổi tên
Preview.PreviewSurfaceProvider
thànhPreview.SurfaceProvider
.SurfaceProvider
không còn yêu cầu nhà phát triển tạoListenableFuture
riêng và việc cung cấpSurface
hiện đã được thực hiện thông qua đối tượngSurfaceRequest
mới. Phương thứcPreview.getPreviewSurfaceProvider()
đã bị xoá do có khả năng sử dụng sai khiPreview
đượ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()
vàImageCapture.OnImageCapturedCallback.onError()
hiện đã được thay thế bằng một đối số duy nhấtImageCaptureException
. Đối số này vẫn chứa mọi thông tin đã được truyền trước đó. - Xoá tệp mà đối số truyền trước đó trong
ImageCapture.OnImageSavedCallback.onImageSaved()
. (I750d2) - Cập nhật API, với phương thức
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
và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ớiCameraSelector
đượ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ấpPreviewSurfaceProvider
để dễ dàng kết nối trường hợp sử dụng Previewpreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
“
ZoomLevel
” hiện được đổi thành “ZoomRatio
” theo quy tắc đặt tên APIMộ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-alpha03
và androidx.camera:camera-view:1.0.0-alpha03
. Đây là các thay đổi trong camera-extensions:1.0.0-alpha03
và cá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-alpha02
và
androidx.camera:camera-view:1.0.0-alpha02
. Đây là
các thay đổi trong camera-extensions:1.0.0-alpha02
và cá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-alpha01
và
androidx.camera:camera-view:1.0.0-alpha01
.
Đây là các thay đổi trong camera-extensions:1.0.0-alpha01 và cá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.