CameraX
ตารางนี้จะแสดงรายการอาร์ติแฟกต์ทั้งหมดในกลุ่ม androidx.camera
อาร์ติแฟกต์ | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | เวอร์ชันอัลฟ่า |
---|---|---|---|---|
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 |
การทดสอบอุปกรณ์
เราทดสอบ CameraX ในอุปกรณ์จํานวนมากในห้องทดลอง หากต้องการดูรายการอุปกรณ์ที่อยู่ในห้องทดลองในปัจจุบัน โปรดดูอุปกรณ์ที่ผ่านการทดสอบในห้องทดลองของ CameraX
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ของ CameraX คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมในที่เก็บ Maven ของ Google
เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle
สำหรับแอปหรือโมดูล
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}") }
ความคิดเห็น
ความคิดเห็นของคุณช่วยปรับปรุง Jetpack ได้ โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมีแนวคิดในการปรับปรุงคลังนี้ โปรดดูปัญหาที่มีอยู่ในคลังนี้ก่อนสร้างปัญหาใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดยคลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมในเอกสารประกอบของเครื่องมือติดตามปัญหา
การจัดองค์ประกอบในช่องมองภาพของกล้องเวอร์ชัน 1.0
เวอร์ชัน 1.0.0-alpha02
12 มิถุนายน 2024
androidx.camera:camera-viewfinder-compose:1.0.0-alpha02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha02 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.0.0-alpha01
14 พฤษภาคม 2024
androidx.camera:camera-viewfinder-compose:1.0.0-alpha01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ไลบรารีใหม่ ไลบรารีนี้เปิดตัวคอมโพสิชันช่องมองภาพแบบเนทีฟของ Compose ซึ่งสามารถใช้กับ CameraX และ Camera2 ได้ ฟีเจอร์การมองภาพแบบคอมโพสได้รองรับสัดส่วนภาพที่แตกต่างกันและการจัดการเหตุการณ์การสัมผัส
ช่องมองภาพกล้องเวอร์ชัน 1.4
เวอร์ชัน 1.4.0-alpha07
12 มิถุนายน 2024
androidx.camera:camera-viewfinder:1.4.0-alpha07
และ androidx.camera:camera-viewfinder-core:1.4.0-alpha07
เผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha07 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.4.0-alpha06
14 พฤษภาคม 2024
androidx.camera:camera-viewfinder:1.4.0-alpha06
และ androidx.camera:camera-viewfinder-core:1.4.0-alpha06
เผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha06 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ
ImplementationMode
ของViewfinder
ให้แสดงถึงการใช้งานพื้นฐานได้ดียิ่งขึ้น และเพิ่มค่าคงที่แบบคงที่สำหรับTransformationInfo.sourceRotation
(Ic6149) - เพิ่ม
ZoomGestureDetector.ZoomEvent
เพื่อรวมสถานะของท่าทางสัมผัสการซูม (I84cdf)
เวอร์ชันกล้อง 1.5
เวอร์ชัน 1.5.0-alpha04
11 ธันวาคม 2024
androidx.camera:camera-*:1.5.0-alpha04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.5.0-alpha04 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปิดเผย
ImageCapture.Builder#setOutputFormat
และImageCaptureCapabilities#getSupportedOutputFormats
เป็น API ที่เสถียร (Ieb04a) - เพิ่ม
VideoCapture.getResolutionInfo()
เพื่อดูข้อมูลการแก้ปัญหาเมื่อVideoCapture
เชื่อมโยงกับวงจรของลูกค้า (Icb478) - เปิดเผย
PreviewView.getScreenFlash
และPreviewView.setScreenFlashOverlayColor
เป็น API ที่เสถียร (I74fee)
การแก้ไขข้อบกพร่อง
- แก้ปัญหาการจับภาพไม่สำเร็จในอุปกรณ์ Vivo 1610 ขณะถ่ายภาพโดยใช้แฟลชในที่มืด (I366f4)
- แก้ไขไฟฉายที่ปิดโดยไม่คาดคิดหลังจากถ่ายภาพใน Redmi Note 6 Pro (I2e0e8, b/377144569)
- แก้ปัญหาในอุปกรณ์ Pixel Android 15 ที่โหมดกลางคืนในส่วนขยายจับภาพนิ่งไม่ได้จนกว่ากล้องจะโฟกัสวัตถุที่อยู่ใกล้เคียง (I228d4)
- แก้ไขปัญหาการจับภาพนิ่งทำงานผิดปกติเมื่อเปิดใช้ส่วนขยายและ
VideoCapture
เชื่อมโยงกัน (I5c745) - เปิดใช้
UltraHDR
การรองรับการจับภาพนิ่งสำหรับส่วนขยาย หากอุปกรณ์รองรับ (I48300) - แก้ไขปัญหาเวลาแฟลชสำหรับการจับภาพด้วยแฟลชที่มี
CameraEffect
การกำหนดเป้าหมายการจับภาพในอุปกรณ์ TCL (I7698c)
เวอร์ชัน 1.5.0-alpha03
30 ตุลาคม 2024
androidx.camera:camera-*:1.5.0-alpha03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.5.0-alpha03 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม API รูปแบบเอาต์พุตสำหรับ RAW และ RAW + JPEG
ImageCapture
การตรวจสอบความสามารถของอุปกรณ์จะแสดงในImageCaptureCapabilities#getSupportedOutputFormats
OUTPUT_FORMAT_RAW
คือการจับภาพ RAW ซึ่งเป็นรูปแบบ Adobe DNG และOUTPUT_FORMAT_RAW_JPEG
คือการจับภาพ RAW และ JPEG พร้อมกันImageCapture#takePicture
API ใหม่ใช้สำหรับการจับภาพพร้อมกัน โดยจะต้องระบุOutputFileOptions
2 รายการ รายการแรกสำหรับรูปภาพ RAW และรายการที่ 2 สำหรับรูปภาพ JPEG (Ib0f3d)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการพรีวิวและวิดีโอที่แสงน้อยในอุปกรณ์ TCL เมื่อเปิดใช้
VideoCapture
(Id7a64) - แก้ไขปัญหาที่การเรียกใช้
startFocusMetering
ด้วยPreviewView.getMeteringPointFactory
ไม่ได้รับพิกัดเซ็นเซอร์ที่ถูกต้องเมื่อเปิดใช้เอฟเฟกต์หรือเมื่อมีการเชื่อมโยง Use Case 4 รายการ (การแชร์สตรีม) (I916c5, b/345993685) - แก้ไขเหตุการณ์
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
ไม่ทริกเกอร์เมื่อบันทึกวิดีโอและมีพื้นที่เก็บข้อมูลไม่เพียงพอ (I35779, b/356399842)
เวอร์ชัน 1.5.0-alpha02
2 ตุลาคม 2024
androidx.camera:camera-*:1.5.0-alpha02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.5.0-alpha02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- API ใหม่สําหรับการค้นหาฟีเจอร์กล้องที่อุปกรณ์รองรับ เช่น การตรวจสอบว่าเปิดใช้ HDR และ 60FPS ได้พร้อมกันหรือไม่ ซึ่งประกอบด้วยรายการต่อไปนี้ 2 รายการ ได้แก่ camera-feature-combination-query และ camera-feature-combination-query-play-services
นี่เป็น
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported
API ของ camera2 เวอร์ชันที่เข้ากันได้ซึ่งมีข้อมูลเพิ่มเติมจากบริการ Google Play
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาอัตราเฟรมเป้าหมาย
Preview/VideoCapture
ในอุปกรณ์ระดับเดิม ระบบจะเขียนทับอัตราเฟรมเป้าหมายที่ตั้งค่าไว้ผ่านsetTargetFrameRate
หรือCamera2Interop
API เป็นค่าที่AeFpsRangeLegacyQuirk
ระบุไว้เสมอ การแก้ไขนี้จะทําให้ไลบรารี CameraX ยึดตามค่าที่ตั้งไว้ผ่านsetTargetFrameRate
หรือCamera2Interop
API (Ie2d32) - เพิ่มฟังก์ชันแฟลช/ไฟฉาย/3A สำหรับการจับภาพด้วย
CameraEffect
ตอนนี้รูปภาพที่จับภาพด้วยCameraEffect
ควรมีการประมวลผลก่อนและหลังการจับภาพ (เช่น การทำงานของแฟลช การรวม 3A ฯลฯ เมื่อมี) เหมือนกับรูปภาพที่จับภาพโดยไม่มีCameraEffect
(I5ff30) - ขนาดเอาต์พุตที่มีปัญหาซึ่งยกเว้นสำหรับ
ImageAnalysis
ในอุปกรณ์ Samsung SM-A057G เมื่อImageAnalysis
ใช้ความละเอียดที่ใหญ่กว่าหรือเท่ากับ 1920x1440 จะทำให้เกิดปัญหาการแสดงตัวอย่างเป็นสีดํา ใช้ExcludedSupportedSizesQuirk
ในอุปกรณ์ SM-A057G เพื่อหลีกเลี่ยงปัญหา (I63dfe, b/365877975) - แก้ไขปัญหาอัตราเฟรมเป้าหมาย
Preview/VideoCapture
เมื่อเปิดใช้กลไกการแชร์สตรีมภายในเพื่อแชร์สตรีมกับPreview
และVideoCapture
(I4fdac) - เปิดใช้วิธีแก้ปัญหาเพื่อแก้ไขปัญหาข้อมูลเมตาของรูปภาพ JPEG ไม่ถูกต้องในอุปกรณ์ Samsung S10e และ S10+ การแก้ไขนี้ช่วยให้ CameraX บันทึกรูปภาพ JPEG ได้สําเร็จ หรือระบบจะแสดงผลออบเจ็กต์ Bitmap ที่ถูกต้องเมื่อเรียกใช้ฟังก์ชัน
ImageProxy.toBitmap()
ในอุปกรณ์เหล่านี้หากเกิดปัญหาข้อมูลเมตารูปภาพ JPEG ไม่ถูกต้อง (Iae493, b/356428987) - ปิดใช้ส่วนขยายสำหรับกล้องหลังของ Samsung A52s ที่มีรหัส 0 เนื่องจากอาจเกิดข้อขัดข้องแบบเนทีฟเมื่อจับภาพ HDR และการกำหนดค่าเซสชันการจับภาพอาจไม่สำเร็จสำหรับโหมด BOKEH หรือ FACE_RETOUCH (I03ec9, b/364152642)
- แก้ไขเหตุการณ์
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
ไม่ทริกเกอร์เมื่อบันทึกวิดีโอและมีพื้นที่เก็บข้อมูลไม่เพียงพอ (Ia5b4f, b/356399842) - แก้ปัญหาที่การบันทึกวิดีโอครั้งที่ 2 ไม่สำเร็จใน Oppo A5 (CPH1931) (I181d6)
เวอร์ชัน 1.5.0-alpha01
4 กันยายน 2024
androidx.camera:camera-*:1.5.0-alpha01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.5.0-alpha01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ระบุ API เพื่อตั้งค่าการจัดองค์ประกอบสำหรับการจับภาพวิดีโอจากกล้อง 2 ตัวพร้อมกัน การตั้งค่าประกอบด้วยค่าอัลฟ่าสำหรับการผสมผสาน ระยะห่างในพิกัด x, y สเกลของความกว้างและความสูงของหน้าต่างแสดงเฟรมกล้อง ออฟเซต ความกว้าง และความสูงจะระบุเป็นพิกัดอุปกรณ์ที่แปลงเป็นมาตรฐาน (Ia2b8a)
- เปิดเผย
CameraProvider.getCameraInfo
เป็น API อย่างเป็นทางการ (I901cd) - เพิ่ม API
PendingRecording.withAudioEnabled(boolean initialMuted)
เพื่อควบคุมสถานะการปิดเสียงเริ่มต้น (I635c3, b/354829267)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องเมื่อเรียกใช้
bindToLifecycle
ด้วยLifecycleOwner
ที่ทำลายแล้ว (I6e6d8) - แก้ไขการแสดงตัวอย่างเป็นหน้าจอสีดําในกล้องหน้าขณะลิงก์กับ
VideoCapture
ใน Motorola Edge 20 Fusion (I1fe88) - เพิ่มประสิทธิภาพการกำหนดค่าสำหรับการตรวจจับท่าทางสัมผัสการซูมใน
PreviewView
เพื่อปรับปรุงความลื่นไหล (I04ffc)
เวอร์ชันกล้อง 1.4
เวอร์ชัน 1.4.1
11 ธันวาคม 2024
androidx.camera:camera-*:1.4.1
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.1 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ปัญหาในอุปกรณ์ Pixel Android 15 ที่โหมดกลางคืนในส่วนขยายจับภาพนิ่งไม่ได้จนกว่ากล้องจะโฟกัสวัตถุที่อยู่ใกล้เคียง (I228d4)
- แก้ไขปัญหาการทำงานผิดปกติของ
ImageCapture#takePicture
เมื่อเปิดใช้ส่วนขยายและVideoCapture
เชื่อมโยงกัน (I5c745)
เวอร์ชัน 1.4.0
30 ตุลาคม 2024
androidx.camera:camera-*:1.4.0
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.3.0
CameraX 1.4.0 เต็มไปด้วยการอัปเดตที่น่าตื่นเต้น นี่คือข้อมูลสรุป:
ฟีเจอร์บรรทัดแรก: HDR 10 บิต
- ถ่ายภาพและวิดีโอ HDR ที่น่าทึ่งได้อย่างง่ายดาย
- รองรับการเข้ารหัส HLG และ HEVC 10 บิต
- เพลิดเพลินกับตัวอย่าง HDR 10 บิตและตรวจสอบความสามารถของอุปกรณ์
- ใช้งานได้กับรูปภาพ
UltraHDR
และวิดีโอ HDR ในอุปกรณ์ที่หลากหลายมากขึ้นเรื่อยๆ
ฟีเจอร์เจ๋งๆ อื่นๆ
- ส่วนขยาย Kotlin: เพิ่มฟังก์ชัน
takePicture
และawaitInstance
ที่ระงับ - เอฟเฟกต์แบบเรียลไทม์: ใช้เอฟเฟกต์ เช่น ลายน้ำและการไฮไลต์วัตถุ
- CameraController API: การควบคุมใหม่สำหรับการกำหนดค่าการจับภาพวิดีโอ
- ตัวอย่างการลดการสั่นไหว: ค้นหาความสามารถของอุปกรณ์และเปิดใช้การลดการสั่นไหว
- วิดีโอเพื่อเพิ่มประสิทธิภาพ: ควบคุมคุณภาพและเข้าถึงความละเอียดที่สูงขึ้นได้ละเอียดยิ่งขึ้น
- การผสานรวมส่วนขยาย CameraX: การผสานรวมที่ราบรื่นกับฟีเจอร์
VideoCapture
และImageCapture
ใหม่ - Shutter Sound API: ตรวจสอบข้อกำหนดด้านเสียงชัตเตอร์ระดับภูมิภาคได้อย่างง่ายดาย
- แฟลชหน้าจอ: ปรับปรุงรูปภาพในสภาวะแสงน้อยสำหรับกล้องหน้า
- Camera Extensions Metadata API: API ที่รองรับการปรับความแรงของส่วนขยายและรับการแจ้งเตือนเกี่ยวกับโหมดส่วนขยายปัจจุบันใน
ExtensionMode#AUTO
ดูการแก้ไขข้อบกพร่องเพิ่มเติมได้ในประกาศเกี่ยวกับเบต้าและ RC
เวอร์ชัน 1.4.0-rc04
16 ตุลาคม 2024
androidx.camera:camera-*:1.4.0-rc04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-rc04 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่การเรียกใช้
startFocusMetering
ด้วยPreviewView.getMeteringPointFactory
ไม่ได้รับพิกัดเซ็นเซอร์ที่ถูกต้องเมื่อเปิดใช้เอฟเฟกต์หรือเมื่อมีการเชื่อมโยง Use Case 4 รายการ (การแชร์สตรีม) (I916c5, b/345993685)
เวอร์ชัน 1.4.0-rc03
2 ตุลาคม 2024
androidx.camera:camera-*:1.4.0-rc03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-rc03 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่มฟังก์ชันแฟลช/ไฟฉาย/3A สำหรับการจับภาพด้วย
CameraEffect
ตอนนี้รูปภาพที่จับภาพด้วยCameraEffect
ควรมีการประมวลผลก่อนและหลังการจับภาพ (เช่น การทำงานของแฟลช การรวม 3A ฯลฯ เมื่อมี) เหมือนกับรูปภาพที่จับภาพโดยไม่มีCameraEffect
(I5ff30) - เพิ่มประสิทธิภาพความลื่นไหลของการบีบนิ้วเพื่อซูมใน
PreviewView
(I04ffc) - แยก Ultra HDR ออกจากความสามารถในการแสดงผล 10 บิต เนื่องจากการรองรับ Ultra HDR ไม่ได้กำหนดให้อุปกรณ์ต้องมีความสามารถแสดงผล 10 บิตอีกต่อไป (I96ff2, I0c3b3)
เวอร์ชัน 1.4.0-rc02
18 กันยายน 2024
androidx.camera:camera-*:1.4.0-rc02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-rc02 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องเมื่อเรียกใช้
bindToLifecycle
ด้วยLifecycleOwner
ที่ทำลายแล้ว (I6e6d8) - เพิ่มภาพเคลื่อนไหวระดับการเข้าถึงใน
ScreenFlashView
สำหรับScreenFlash#apply
ซึ่งจะแก้ไขข้อบกพร่องเนื่องจากการเปลี่ยนแปลงความสว่างเสร็จสมบูรณ์แบบไม่พร้อมกันหลังจากผ่านไประยะหนึ่งด้วย (I37cdb) - ปรับปรุงการซูมให้ราบรื่นขึ้นด้วยการลบล้างการตั้งค่าการซูมในเฟรมเวิร์กในอุปกรณ์ที่รองรับ
เวอร์ชัน 1.4.0-rc01
7 สิงหาคม 2024
androidx.camera:camera-*:1.4.0-rc01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-rc01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่ม
CameraInfo.getCameraInfo
แบบทดลองเพื่อระบุข้อมูลกล้องที่เฉพาะเจาะจงโดยไม่ต้องมีการเชื่อมโยง Use Case กับกล้อง (I550d1)
การเปลี่ยนแปลง API
- เพิ่ม API
PreviewView.getScreenFlash
และPreviewView.setScreenFlashOverlayColor
สำหรับกรณีที่ไม่ได้เพิ่มScreenFlashView
อย่างชัดเจน (I43945)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการเปิดรับแสงและสีของภาพเมื่อจับภาพโดยเปิดใช้แฟลชในที่แสงน้อยโดยมีการเชื่อมโยง Use Case ของ VideoCapture (Ic9814)
- แก้ไขปัญหาการขัดจังหวะคำขอ
takePicture
ที่เปิดใช้ส่วนขยายอาจทำให้ได้ผลลัพธ์ไม่สำเร็จ และคำขอtakePicture
ถัดไปอาจใช้งานไม่ได้อีกต่อไป (Iae78f) - แก้ไขปัญหาการรั่วไหลของหน่วยความจำที่เกิดขึ้นเมื่อเปิดใช้ส่วนขยาย (Iab276)
- แก้ไขปัญหาส่วนขยาย CameraX ทำงานผิดปกติในอุปกรณ์ต่างๆ เช่น Pixel 7/8 และ Samsung Galaxy S24 Series ปัญหานี้เกิดจากปัญหา Conversion
Camera2OutputConfigImpl
ในโหมดรุ่น ซึ่งเกิดขึ้นหลังจากอัปเกรด AGP เป็น 8.5.1 และเปิดใช้การลดขนาด (I99598, b/354824993)
เวอร์ชัน 1.4.0-beta02
12 มิถุนายน 2024
androidx.camera:camera-*:1.4.0-beta02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-beta02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- คล้ายกับ
VideoCapture
ให้เพิ่มsetMirrorMode
สำหรับ Use Case ของเวอร์ชันตัวอย่าง โดยจะรองรับการเปิดและปิดโหมดมิเรอร์สำหรับสตรีมตัวอย่างผ่านOutputConfiguration.setMirrorMode
จาก API ระดับ 33 ขึ้นไป ส่วน API เก่าจะใช้งานไม่ได้ (I821f4)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่แอปถ่ายภาพใน Samsung Tab A8 ไม่ได้เมื่อ
ImageCapture
เลือก 1920x1080 ภายใต้การผสมผสานPreview
+VideoCapture
+ImageCapture
UseCase
(I5a463, b/336925549) - การบันทึกแบบต่อเนื่องแบบคงที่อาจบันทึกต่อไม่ได้หลังจากเปลี่ยนกล้อง (Icb0a1)
เวอร์ชัน 1.4.0-beta01
14 พฤษภาคม 2024
androidx.camera:camera-*:1.4.0-beta01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-beta01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
ZoomGestureDetector.ZoomEvent
เพื่อรวมสถานะของท่าทางสัมผัสการซูม (I84cdf)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องที่การจับภาพและการแตะเพื่อโฟกัสยังคงไม่ใช้ค่า FPS/โหมดการกันภาพสั่นของคำขอซ้ำ ซึ่งอาจสร้างเซสชันการจับภาพขึ้นมาใหม่และทำให้เกิดปัญหาเกี่ยวกับเวลาในการตอบสนองหรือทำให้ตัวอย่างภาพค้างในอุปกรณ์บางเครื่อง (I7dc0b)
- แก้ไขข้อบกพร่องที่เลือกความละเอียดสูงไม่ได้เมื่อเปิดใช้
CameraEffect
ในอุปกรณ์บางรุ่น (เช่น 4000x3000 ใน Samsung A32 5G) (Ie3ed3, b/337336152) - แก้ไขข้อขัดข้องเมื่อถ่ายภาพด้วยฟีเจอร์แสดงตัวอย่าง โดยมีการเชื่อมโยง
ImageCapture
และVideoCapture(UHD)
ใน Pixel 4XL API29 (I5b288) - รองรับอุปกรณ์เสมือนจริง: บริบทที่ส่งไปยัง
ProcessCameraProvider
จะเก็บรักษารหัสอุปกรณ์ไว้เพื่อให้แน่ใจว่าฟังก์ชันการทำงานจะทำงานได้ในสภาพแวดล้อมอุปกรณ์เสมือนจริง (I5ba48)
เวอร์ชัน 1.4.0-alpha05
17 เมษายน 2024
androidx.camera:camera-*:1.4.0-alpha05
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-alpha05 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แปลง
ProcessCameraProvider
เป็นการนําไปใช้ Kotlin (I46d4f) - เพิ่ม
ImageCapture.takePicture
ฟังก์ชันที่ระงับเพื่อให้เรียกฟังก์ชันดังกล่าวในลักษณะของ Kotlin ได้ (I920be)
การเปลี่ยนแปลง API
- เพิ่ม API รูปแบบเอาต์พุตลงใน
ImageCapture
และเพิ่มเมธอดgetSupportedOutputFormats
ลงในImageCaptureCapabilities
เพื่อค้นหาความสามารถของอุปกรณ์ ค่ารูปแบบเอาต์พุตเริ่มต้นคือOUTPUT_FORMAT_JPEG
ซึ่งจะจับภาพ SDR ในรูปแบบ JPEG เมื่ออุปกรณ์รองรับ Ultra HDR และตั้งค่ารูปแบบเอาต์พุตเป็นOUTPUT_FORMAT_JPEG_ULTRA_HDR
แล้ว CameraX จะจับภาพ Ultra HDR ที่บีบอัดโดยใช้รูปแบบรูปภาพ JPEG/R รูปแบบนี้ใช้งานร่วมกับรูปแบบ JPEG SDR ได้และรองรับการแสดงผลเนื้อหา HDR ซึ่งหมายความว่าในแอปหรืออุปกรณ์รุ่นเก่า รูปภาพจะปรากฏเป็น JPEG ปกติอย่างราบรื่น ส่วนในแอปและอุปกรณ์ที่อัปเดตให้รองรับรูปแบบนี้อย่างเต็มรูปแบบ รูปภาพจะปรากฏเป็น HDR (I5de50) - เพิ่ม
PhysicalCameraInfo
ในCameraInfo
เพื่อค้นหาข้อมูลกล้องจริง และเพิ่มตัวตั้งค่า/ตัวรับค่ารหัสกล้องจริงในCameraSelector
(Ic5b90) - แทนที่
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED
ด้วยImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED
ค่าของค่าคงที่จะยังคงเหมือนเดิม การดำเนินการนี้มีไว้เพื่อรวมค่าคงที่ทั้งหมดไว้ในที่เดียว (I890bb) RetryPolicy
API ใหม่ช่วยให้นักพัฒนาแอปปรับแต่งลักษณะการลองอีกครั้งสำหรับการเริ่มต้นใช้งาน CameraX ได้ (I36dd2)- เปิดใช้การสร้างออบเจ็กต์
ImageCaptureLatencyEstimate
เพื่อช่วยในการทดสอบ (Iaba99) - เพิ่ม
ImageAnalysis#COORDINATE_SYSTEM_SENSOR
เมื่อใช้MlKitAnalyzer
จะแสดงผลพิกัดในระบบพิกัดของเซ็นเซอร์กล้อง (I3ec61) - API ข้อมูลเมตาของส่วนขยายที่เปิดเผย อินเทอร์เฟซ
CameraExtensionsInfo
และCameraExtensionsControl
ใหม่ช่วยให้แอปพลิเคชันตรวจสอบและปรับการตั้งค่าความแข็งแรงของส่วนขยายได้ แอปพลิเคชันสามารถรับอินสแตนซ์CameraExtensionsInfo
หรือCameraExtensionsControl
ผ่านเมธอดExtensionsManager#getCameraExtensionsInfo()
หรือExtensionsManager#getCameraExtensionsControl()
ที่เพิ่มเข้ามาใหม่ (I28e1a) - เพิ่ม
ProcessCameraProvider.awaitInstance
ซึ่งเป็นเวอร์ชันที่ระงับของProcessCameraProvider.getInstance
(Ib22b9) - เพิ่ม
PreviewView#getSensorToViewTransform()
API เมทริกซ์แสดงการเปลี่ยนรูปแบบจากพิกัดเซ็นเซอร์กล้องเป็นพิกัดของPreviewView
ซึ่งสามารถใช้เปลี่ยนรูปแบบพิกัดจากUseCase
หนึ่งไปยังอีกUseCase
หนึ่งได้ เช่น การเปลี่ยนรูปแบบพิกัดของวัตถุที่ตรวจพบในImageAnalysis
ไปยังการวางซ้อนPreviewView
(I947ab) - ทําให้
camera-viewfinder-core
API เป็น API ทั่วไปมากขึ้นเพื่อให้camera-viewfinder
และcamera-viewfinder-compose
ใช้งานได้ (I1e295) - เพิ่มฟังก์ชัน
getSurface
ลงในViewfinderSurfaceRequest
(I781a0) - ใช้
camera-viewfinder-core
ในcamera-viewfinder
และเลิกใช้งานViewfinderSurfaceRequest
และCameraViewfinder
(I6198c) - เพิ่ม
ZoomGestureDetector
ที่ตีความท่าทางสัมผัสการปรับขนาดซึ่งกำหนดค่าไว้สำหรับกิจกรรมการบีบนิ้วเพื่อซูมโดยเฉพาะ (Ifafbf)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการเลือกความละเอียดของ
ImageAnalysis
ที่เกี่ยวข้องกับการตั้งค่าความละเอียดเป้าหมายเริ่มต้นของเครื่องมือวิเคราะห์: ความละเอียดเป้าหมายยังคงเป็น 640x480 อย่างไม่ถูกต้อง แม้ว่าแอปพลิเคชันจะตั้งค่าความละเอียดเริ่มต้นของเครื่องมือวิเคราะห์เป็นค่าอื่นก็ตาม หากแอปพลิเคชันพบปัญหานี้ (1.3.0 ~ 1.3.2) และอัปเกรดเพื่อใช้รุ่นที่ใหม่กว่าซึ่งมีวิธีแก้ปัญหาไม่ได้ ให้ลองตั้งค่าResolutionSelector
โดยตรงด้วยความละเอียดที่ต้องการและAspectRatioStrategy
ที่ตรงกับImageAnalysis
UseCase
เพื่อแก้ปัญหานี้ (I81f72, b/330091012) - แก้ไขปัญหาที่คำขอ
takePicture
ที่รอดำเนินการอาจทำงานไม่สำเร็จหากคำขอปัจจุบันไม่สำเร็จ (Ie0801) - ใช้การตรวจสอบข้อมูล JPEG ไม่ถูกต้องกับอุปกรณ์ Vivo X60 และ X60 Pro วิธีนี้จะช่วยแก้ไขปัญหารูปภาพขนาดใหญ่ผิดปกติในอุปกรณ์เหล่านี้ได้ (I82247, b/288828159)
- แก้ไขปัญหาข้อมูลเมตารูปภาพ JPEG ไม่ถูกต้องในอุปกรณ์ Samsung A24 การแก้ไขนี้ช่วยให้ CameraX บันทึกรูปภาพ JPEG ได้สําเร็จ หรือระบบจะแสดงออบเจ็กต์ Bitmap ที่ถูกต้องเมื่อเรียกใช้ฟังก์ชัน
ImageProxy.toBitmap()
ในอุปกรณ์ Samsung A24 (I8d6eb, b/309005680) - ใช้การตรวจสอบข้อมูล JPEG ไม่ถูกต้องกับอุปกรณ์ Samsung ทั้งหมดหากรูปภาพที่จับได้มีขนาดใหญ่กว่า 10 MB วิธีนี้จะช่วยแก้ปัญหารูปภาพขนาดใหญ่ผิดปกติในอุปกรณ์ Samsung ได้ (Ic2a65, b/288828159)
- นำการรองรับ
ImageAnalysis
ออกจากส่วนขยาย CameraX เนื่องจากการติดตั้งใช้งานส่วนขยายของ OEM หลายรายใช้กับImageAnalysis
ไม่ค่อยดีนักและอาจทำให้เกิดปัญหาที่ไม่สอดคล้องกัน (I2d926)
เวอร์ชัน 1.4.0-alpha04
24 มกราคม 2024
androidx.camera:camera-*:1.4.0-alpha04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-alpha04 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- รายการใหม่: camera-effects: ไลบรารีสำหรับใช้เอฟเฟกต์แบบเรียลไทม์กับเอาต์พุต CameraX ซึ่งรวมถึง
Preview
,VideoCapture
และ/หรือImageCapture
อาร์ติแฟกต์นี้มีการใช้งาน OpenGL ของCameraEffect
API ที่จัดการเอาต์พุตของกล้องได้อย่างมีประสิทธิภาพ OverlayEffect
: สําหรับวาดภาพวางซ้อนด้วย Canvas API ของ Android ซึ่งจะช่วยให้แอปใส่ลายน้ำหรือไฮไลต์วัตถุที่ตรวจพบในเอาต์พุตของกล้องได้DynamicRange
API สำหรับ Use Case ของตัวอย่าง: ตอนนี้คุณตั้งค่าช่วงไดนามิกใน Use Case ของตัวอย่างได้โดยไม่เกี่ยวข้องกับ Use Case ของวิดีโอ ซึ่งจะอนุญาตให้ใช้ช่วงไดนามิก HDR เช่น HLG10 สำหรับตัวอย่างเพลงเท่านั้น นอกจากนี้ API ใหม่ยังพร้อมใช้งานในCameraInfo
เพื่อค้นหาว่ากล้องแต่ละรุ่นรองรับช่วงไดนามิกใด
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ
ScreenFlashUiCompleter
เป็นScreenFlashListener
และย้ายScreenFlashUiCompleter#getExpirationTimeMillis
ไปยังพารามิเตอร์expirationTimeMillis
ของScreenFlash#apply
(I13944) - เพิ่ม API ใหม่เพื่ออนุญาตให้ตั้งค่าช่วงไดนามิกใน Use Case ของตัวอย่าง และเพื่อค้นหาช่วงไดนามิกที่กล้องแต่ละรุ่นรองรับ วิธีนี้ช่วยให้ช่วงไดนามิก HDR เช่น HLG10 สามารถใช้กับกรณีการใช้งานเวอร์ชันตัวอย่างเพียงอย่างเดียวได้โดยไม่ต้องมีการเชื่อมโยง
VideoCapture
พร้อมกันอีกต่อไป (If25e3) - เปลี่ยนชื่อ
getMirroring()
เป็นisMirroring()
(I47063) - เพิ่มการรองรับการประมาณเวลาในการตอบสนองของการจับภาพนิ่งแบบเรียลไทม์ใน CameraX ส่วนขยายกล้องช่วยให้แอปพลิเคชันใช้ API ที่ระบุเวลาโดยประมาณในการจับภาพได้ ค่าประมาณนี้พิจารณาจากสภาพสภาพแวดล้อมปัจจุบัน สถานะกล้อง และเวลาที่ใช้ประมวลผลคำขอจับภาพหลายเฟรม รวมถึงเวลาเพิ่มเติมสำหรับการเข้ารหัสบัฟเฟอร์ที่ประมวลผลแล้ว หากจำเป็น (I05c3a)
- เปลี่ยนชื่อ
ScreenFlashUiControl
เป็นScreenFlash
,ScreenFlashUiControl#applyScreenFlashUi
เป็นScreenFlash#apply
,ScreenFlashUiControl#clearScreenFlashUi
เป็นScreenFlash#clear
และเพิ่มเมธอดgetScreenFlashUiApplyTimeoutSeconds
แทนการแสดงSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS
โดยตรง (Iccdd0)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการรั่วไหลของหน่วยความจำที่ทําให้ระบบไม่ปล่อยกิจกรรมหรือข้อมูลโค้ดเมื่อเปิดใช้ส่วนขยาย (I14215)
- แก้ไขปัญหาที่
getZoomRatio
แสดงผลค่าที่ลดลงอย่างไม่ถูกต้องเมื่อใช้อัตราส่วนการซูมเพิ่มขึ้น (I4aa0d, b/317543616) - ระบบจะเรียกเหตุการณ์
ImageCapture#ScreenFlash#clear
ทันทีเมื่อImageCapture
ไม่ได้เชื่อมโยงหรือกล้องปิดอยู่ รวมถึงแก้ไขข้อบกพร่องบางอย่างที่ไม่เคยเรียกเหตุการณ์นี้เนื่องจากการจับภาพในสถานการณ์เหล่านี้ไม่เสร็จสมบูรณ์ (If99f9) - แก้ไขข้อขัดข้องที่จะเกิดขึ้นเมื่อหยุดวงจรก่อนที่จะส่งคำขอ
takePicture
ให้เสร็จสมบูรณ์ (Idf017, b/306202751) - แก้ไขปัญหาที่การแสดงตัวอย่างจากกล้องเป็นสีดําเมื่อเปิดใช้ส่วนขยายในอุปกรณ์บางเครื่อง (I1ffd0)
- แก้ไขระยะเวลาการบันทึกวิดีโอที่ไม่ถูกต้องในอุปกรณ์ที่ใช้ SoC Snapdragon 778G (If6aa7, b/316057919)
เวอร์ชัน 1.4.0-alpha03
13 ธันวาคม 2023
androidx.camera:camera-*:1.4.0-alpha03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-alpha03 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่ม
CameraInfo.mustPlayShutterSound
เพื่อระบุข้อมูลว่าต้องเปิดเสียงชัตเตอร์ตามข้อจำกัดระดับภูมิภาคหรือไม่ (Ifda84) - เพิ่ม
OnImageCapturedCallback.onCaptureStarted
และOnImageSavedCallback.onCaptureStarted
เพื่อแจ้งเตือนเมื่อกล้องเริ่มเปิดรับแสงเฟรม ขอแนะนำให้เล่นเสียงชัตเตอร์หรือภาพเคลื่อนไหวชัตเตอร์ในตอนนี้ (Ic49b3) - เพิ่มการรองรับฟีเจอร์แฟลชหน้าจอใน CameraX สำหรับการจับภาพด้วยกล้องหน้า CameraX จะจัดการ API ฝั่งเฟรมเวิร์กและซิงค์เวลากับการเปลี่ยนแปลง UI ของแอปตามที่จำเป็น (เช่น ทริกเกอร์การจับภาพก่อนการจับภาพ AE หลังจากสี/ความสว่างของหน้าจอแอปเปลี่ยนแปลง) แอปจะต้องเพิ่มการใช้งานฝั่ง UI ในอินเทอร์เฟซ
ScreenFlashUiControl
ที่ให้กับ CameraX เท่านั้น (I8ae84) - เพิ่มการรองรับการใช้งานฟีเจอร์แฟลชหน้าจอใน UI ของ CameraX แอปจะติดตั้งใช้งาน
ImageCapture.ScreenFlashUiControl
พื้นฐานได้จากPreviewView
หรือScreenFlashView
ที่เพิ่มเข้ามาใหม่ ซึ่งจะเพิ่มมุมมองการซ้อนทับสีโมโนโครมและเพิ่มความสว่างของหน้าจอสูงสุดระหว่างการจับภาพด้วยแฟลชหน้าจอ (I1810e)
การเปลี่ยนแปลง API
- รองรับฟีเจอร์ใหม่ของส่วนขยาย(ความคืบหน้าของกระบวนการดูและบันทึกภาพหลังการดู): เพิ่ม
ImageCapture#getImageCaptureCapabilities()
API สําหรับแอปเพื่อสอบถามความสามารถของคอลแบ็กความคืบหน้าของกระบวนการดูและบันทึกภาพหลังการดู แอปสามารถเปิดใช้การแสดงผลโพสต์ได้โดยใช้ImageCapture.Builder#setPostviewEnabled()
คุณเลือกขนาดของโพสต์วิวได้โดยใช้ImageCapture.Builder#setPostviewResolutionSelector()
เมื่อเรียกใช้takePicture()
คุณสามารถใช้onPostviewBitmapAvailable
และonCaptureProcessProgressed
ในOnImageSavedCallback
หรือOnImageCapturedCallback
เพื่อรับการแจ้งเตือนความคืบหน้าหลังดูและประมวลผลได้ หากรองรับ (I5cd88) - API สำหรับคำนวณการเปลี่ยนรูปแบบพิกัดจากเซ็นเซอร์ไปยังบัฟเฟอร์ปัจจุบัน โดยมี Flag ที่ระบุว่าพื้นผิวมีข้อมูลการวางแนวกล้องหรือไม่ (I59096)
- แสดง API เพื่อค้นหา
PreviewCapabitlity
ในเวอร์ชันตัวอย่างUseCase
(Ie5b6c) - เพิ่ม API เพื่อรองรับคุณภาพเพิ่มเติมสําหรับ
VideoCapture
Recorder.Builder#setVideoCapabilitiesSource(int)
สามารถใช้กับVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES
เพื่อสร้างอินสแตนซ์Recorder
ที่รองรับคุณภาพมากกว่าVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE
กรณีการใช้งานที่พบได้ทั่วไปคือเมื่อแอปพลิเคชันพยายามบันทึกวิดีโอ UHD ทุกครั้งที่เป็นไปได้ แต่CamcorderProfile
ของอุปกรณ์ไม่มีการตั้งค่า UHD แม้ว่าตัวแปลงรหัสจะบันทึกวิดีโอ UHD ได้ก็ตาม (Iedbe2, b/263961771) - เพิ่ม getter/setter รูปแบบเอาต์พุต
ImageAnalysis
ลงในCameraController
(I9a96c, b/308240643)
การแก้ไขข้อบกพร่อง
- จากกล้อง
1.3.1
: ปรับปรุงประสิทธิภาพProcessCameraProvider#bindToLifecycle()
การเปลี่ยนแปลงที่สําคัญคือการเพิ่มประสิทธิภาพกระบวนการระบุชุดขนาดที่เหมาะสมที่สุดสําหรับUseCases
ผลลัพธ์ที่ดีที่สุดจะแตกต่างกันไปตามชุดค่าผสมUseCase
ที่เฉพาะเจาะจงและจำนวนขนาดเอาต์พุตที่รองรับสำหรับอุปกรณ์เป้าหมาย (I454f2) - อนุญาตให้ใช้
VideoCapture
เมื่อเปิดใช้ส่วนขยาย (I91f32) - แก้ไขปัญหารูปภาพ JPEG ที่ถ่ายขนาดใหญ่ในอุปกรณ์ Samsung A71 และ M51 รูปภาพ JPEG ที่บันทึกไว้มีข้อมูลการเติม 0 ซ้ำในส่วนข้อมูลที่บีบอัด JFIF ซึ่งจะทำให้รูปภาพที่จับได้มีขนาดใหญ่มาก ระบบจะนำข้อมูลการเติม 0 ซ้ำออกเพื่อให้รูปภาพที่จับได้มีขนาดไฟล์รูปภาพปกติ (I01afc, b/288828159)
- ปิดใช้การรองรับ
ImageAnalysis
ใน Pixel เพื่อหลีกเลี่ยงข้อบกพร่องใน Pixel ที่แสดงขนาดที่รองรับImageAnalysis
ที่ไม่ใช่ค่าว่างโดยไม่ตั้งใจ (I7ec31) - แก้ไขปัญหาด้านประสิทธิภาพที่การโหลด CPU และการใช้พลังงานเพิ่มขึ้นเมื่อเปิดใช้ส่วนขยาย (Ibdccb)
- เพิ่ม Snapdragon 480 ลงใน
CameraUseInconsistentTimebaseQuirk
แล้ว การอัปเดตนี้จะช่วยแก้ไขปัญหาใน Android 12 สำหรับอุปกรณ์ที่ใช้ชิปเซ็ตนี้ ซึ่งเสียงในการบันทึกจะเลื่อนตามระยะเวลาที่อุปกรณ์อยู่ในสถานะหยุดชั่วคราว (I58010)
เวอร์ชัน 1.4.0-alpha02
18 ตุลาคม 2023
androidx.camera:camera-*:1.4.0-alpha02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-alpha02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ API เป็น
setCameraOpenRetryMaxTimeoutInMillisWhileResuming
และเปลี่ยนชื่ออาร์กิวเมนต์ (I72370) - การเพิ่ม API เพื่อค้นหาความสามารถของอุปกรณ์และเปิดใช้ระบบกันภาพสั่นในวิดีโอ/ตัวอย่าง (I87544)
- ระบุ API เพื่อปรับแต่งเวลาหมดเวลาที่นานที่สุดในการเปิดกล้องอีกครั้ง (I0c642)
- เผยแพร่
ProcessCameraProvider.shutdownAsync
เป็น API การทดสอบแบบสาธารณะเพื่อให้ใช้ผู้ให้บริการกล้องประมวลผลในชุดทดสอบได้ ซึ่งอาจต้องเริ่มต้นใช้งาน CameraX ด้วยวิธีต่างๆ ระหว่างการทดสอบ (I9eca7) - เพิ่ม API สําหรับการกําหนดค่าช่วงไดนามิก อัตราเฟรม และโหมดมิเรอร์ของวิดีโอคอล (Ifb8f7)
- เลิกใช้งาน
OutputSize
และแทนที่ด้วยResolutionSelector
ResolutionSelector
เป็นวิธีเลือกความละเอียดที่ครอบคลุมมากขึ้นและสอดคล้องกับ camera-core API (I93abd, b/286801438)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการแสดงตัวอย่างเป็นสีดําใน Samsung Galaxy S23 Ultra 5G เมื่อเปิดใช้การขยายโหมดโบเก้หรือการรีทัชใบหน้าด้วย
ImageAnalysis
ในกล้องหลัง (I2e8b1) - แก้ไขปัญหาการแสดงตัวอย่างและ
VideoCapture
ที่ยืดออกใน Moto E5 Play (73dce2)
เวอร์ชัน 1.4.0-alpha01
20 กันยายน 2023
androidx.camera:camera-*:1.4.0-alpha01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-alpha01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม API ใหม่เพื่อเข้าถึงข้อมูลระดับความดังของเสียงขณะบันทึก (Id4925)
การแก้ไขข้อบกพร่อง
- ปรับปรุงความเสถียรของส่วนขยายโดยตรวจสอบว่าเหตุการณ์การเริ่มต้นและเลิกเริ่มต้นทริกเกอร์ตามลําดับที่ถูกต้อง (Ib3b8e)
- แก้ไขการกําหนดค่าเซสชันการจับภาพไม่สําเร็จเนื่องจากมีพื้นผิวที่รองรับเกินกว่าชุดค่าผสมที่รองรับเนื่องจากการเพิ่มพื้นผิวที่ซ้ำกันภายใน (Id718c)
- แก้ไขปัญหารูปภาพ JPEG ที่ถ่ายขนาดใหญ่ในอุปกรณ์ Vivo S16 รูปภาพ JPEG ที่บันทึกไว้มีข้อมูลการเติม 0 ซ้ำในส่วนข้อมูลที่บีบอัด JFIF ซึ่งจะทำให้รูปภาพที่ถ่ายมีขนาดใหญ่ ระบบจะนำข้อมูลการเติม 0 ซ้ำออกเพื่อให้รูปภาพที่จับได้มีขนาดไฟล์รูปภาพปกติ (I79505, b/299069235)
- แก้ไขปัญหาที่
ImageAnalysis
ไม่สามารถเชื่อมโยงกับImageCapture
และ Preview ได้เมื่อเปิดใช้โหมดส่วนขยายบางโหมดในอุปกรณ์บางรุ่น การแก้ไขนี้จะแสดงผลลัพธ์ที่ถูกต้องเมื่อแอปค้นหาความพร้อมจำหน่ายImageAnalysis
ผ่านExtensionsManager#isImageAnalysisSupported()
(I7d538) - อัปเดต JavaDoc ให้ตรงกับลักษณะการทำงาน
#setZoomRatio
,#setLinearZoom
และ#enableTorch
จะรอจนกว่ากล้องจะพร้อมใช้งานแทนที่จะดำเนินการเสร็จทันที รวมถึงเพิ่มข้อมูลเกี่ยวกับวิธีรับ FOV สูงสุดด้วย#takePicture
API (I23588)
เวอร์ชัน 1.3
เวอร์ชัน 1.3.4
12 มิถุนายน 2024
androidx.camera:camera-*:1.3.4
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.4 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
getZoomRatio
แสดงผลค่าที่ลดลงอย่างไม่ถูกต้องเมื่อใช้อัตราส่วนการซูมเพิ่มขึ้น (I4aa0d, b/317543616) - แก้ไขการจับภาพนิ่ง/การแตะเพื่อโฟกัสที่ไม่ใช้ค่า FPS/โหมดการกันภาพสั่นของคำขอซ้ำ ซึ่งอาจสร้างเซสชันการจับภาพอีกครั้งและทำให้เกิดปัญหาเกี่ยวกับเวลาในการตอบสนองหรือแสดงตัวอย่างค้างในอุปกรณ์บางรุ่น (I7dc0b)
- แก้ไขปัญหาการตั้งค่าอัตราเฟรมเป็นค่าที่ต่ำลงเมื่อเรียกใช้
setTargetFrameRate
ด้วยFRAME_RATE_RANGE_UNSPECIFIED
(I78c61)
เวอร์ชัน 1.3.3
17 เมษายน 2024
androidx.camera:camera-*:1.3.3
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.3 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการเลือกความละเอียดของ
ImageAnalysis
ที่เกี่ยวข้องกับการตั้งค่าความละเอียดเป้าหมายเริ่มต้นของเครื่องมือวิเคราะห์: ความละเอียดเป้าหมายยังคงเป็น 640x480 อย่างไม่ถูกต้อง แม้ว่าแอปพลิเคชันจะตั้งค่าความละเอียดเริ่มต้นของเครื่องมือวิเคราะห์เป็นค่าอื่นก็ตาม หากแอปพลิเคชันพบปัญหานี้ (1.3.0 ~ 1.3.2) และอัปเกรดเพื่อใช้รุ่นที่ใหม่กว่าซึ่งมีวิธีแก้ปัญหาไม่ได้ ให้ตั้งค่าResolutionSelector
โดยตรงด้วยวิธีแก้ปัญหาที่ต้องการและAspectRatioStrategy
ที่ตรงกับImageAnalysis
UseCase เพื่อแก้ปัญหานี้ (I81f72, b/330091012)
เวอร์ชัน 1.3.2
6 มีนาคม 2024
androidx.camera:camera-*:1.3.2
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.2 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาข้อมูลเมตา JPEG ในอุปกรณ์ Samsung A24 ตอนนี้ CameraX จะบันทึกรูปภาพอย่างถูกต้อง และฟังก์ชัน
ImageProxy.toBitmap()
จะแสดงผลออบเจ็กต์ Bitmap ที่ถูกต้อง (I8d6eb, b/309005680) - นำตัวเลือกความละเอียด 9280x6944 บนอุปกรณ์ Redmi Note 9 Pro ออกเนื่องจากมีปัญหา (Ia23da)
เวอร์ชัน 1.3.1
13 ธันวาคม 2023
androidx.camera:camera-*:1.3.1
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.1 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
ปรับปรุงประสิทธิภาพ ProcessCameraProvider#bindToLifecycle()
การเปลี่ยนแปลงที่สําคัญคือการเพิ่มประสิทธิภาพกระบวนการระบุชุดขนาดที่เหมาะสมที่สุดสําหรับ UseCases
ผลลัพธ์ที่ดีที่สุดจะแตกต่างกันไปตามชุดค่าผสม UseCase
ที่เจาะจงและจำนวนขนาดเอาต์พุตที่รองรับสำหรับอุปกรณ์เป้าหมาย (I454f2)
ต่อไปนี้คือผลลัพธ์อ้างอิงสำหรับสถานการณ์ต่างๆ
UseCases
4 ตัว:Preview
+ImageCapture
+ImageAnalysis
+VideoCapture
- Google Pixel 7: ประมาณ 430-60 มิลลิวินาที
- Samsung Galaxy S23 Ultra: ประมาณ 540 มิลลิวินาทีถึง 45 มิลลิวินาที
- Samsung A53 5G: ประมาณ 115 ms ถึง 70 ms
UseCases
3 ตัว:Preview
+ImageCapture
+ImageAnalysis
- Google Pixel 7: ประมาณ 9-7 มิลลิวินาที
- Samsung Galaxy S23 Ultra: ประมาณ 6-5 มิลลิวินาที
- Samsung A53 5G: ประมาณ 32-12 ms
เพิ่ม Snapdragon 480 ลงใน
CameraUseInconsistentTimebaseQuirk
แล้ว การอัปเดตนี้จะช่วยแก้ไขปัญหาใน Android 12 สำหรับอุปกรณ์ที่ใช้ชิปเซ็ตนี้ ซึ่งเสียงในการบันทึกจะเลื่อนตามระยะเวลาที่อุปกรณ์อยู่ในสถานะหยุดชั่วคราว (I58010)
เวอร์ชัน 1.3.0
18 ตุลาคม 2023
androidx.camera:camera-*:1.3.0
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.2.0
- ฟีเจอร์วิดีโอ ได้แก่ HDR 10 บิต การครอบตัด การมิเรอร์/การไม่มิเรอร์ การปิด/เปิดเสียง การตั้งค่าอัตราเฟรม และอื่นๆ
- กล้องคู่ที่ทำงานพร้อมกัน
- คลังเอฟเฟกต์
- ตัวเลือกความละเอียด
- การเลือกกล้องอัลตราไวด์และกล้องแบบซูม
- การสลับกล้องระหว่างบันทึกวิดีโอ (ฟีเจอร์ทดลอง)
เวอร์ชัน 1.3.0-rc02
20 กันยายน 2023
androidx.camera:camera-*:1.3.0-rc02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-rc02 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ปรับปรุงความเสถียรของส่วนขยายโดยตรวจสอบว่าเหตุการณ์การเริ่มต้นและเลิกเริ่มต้นทริกเกอร์ตามลําดับที่ถูกต้อง การอัปเดตนี้ช่วยแก้ไขปัญหาการแสดงตัวอย่างเป็นสีดําเมื่อเปลี่ยนโหมดการขยายหรือเปลี่ยนกล้อง (Iddaac)
- แก้ไขปัญหาที่
ImageAnalysis
ไม่สามารถเชื่อมโยงกับImageCapture
และ Preview ได้เมื่อเปิดใช้โหมดส่วนขยายบางโหมดในอุปกรณ์บางรุ่น การแก้ไขนี้จะแสดงผลลัพธ์ที่ถูกต้องเมื่อแอปค้นหาความพร้อมจำหน่ายImageAnalysis
ผ่านExtensionsManager#isImageAnalysisSupported()
(I7d538) - แก้ไขปัญหาที่เสียงและวิดีโอของวิดีโอที่บันทึกไว้ไม่ตรงกันเมื่อเปิดใช้โหมดมิเรอร์ใน Xiaomi Poco X3 NFC (I20b4c)
เวอร์ชัน 1.3.0-rc01
23 สิงหาคม 2023
androidx.camera:camera-*:1.3.0-rc01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-rc01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
PendingRecording.asPersistentRecording
เพื่ออนุญาตให้การบันทึกบันทึกต่อไปได้ขณะที่VideoCapture
ที่เชื่อมต่อกับโปรแกรมอัดเสียงมีการเปิดใช้งานใหม่ (I517c6)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องเมื่อแชร์สตรีมกับทั้ง
VideoCapture
และเวอร์ชันตัวอย่าง และแก้ไขหน้าจอสีดําในอุปกรณ์รุ่นเดิมเมื่อเปิดใช้การแชร์สตรีม - แก้ไขปัญหารูปภาพ JPEG ที่ถ่ายขนาดใหญ่ในอุปกรณ์ Samsung S7 (SM-G930T, SM-G930V) รูปภาพ JPEG ที่บันทึกไว้มีข้อมูลการเติม 0 ซ้ำในส่วนข้อมูลที่บีบอัด JFIF ซึ่งจะทำให้รูปภาพที่ถ่ายมีขนาดใหญ่ ระบบจะนำข้อมูลการเติม 0 ซ้ำออกเพื่อให้รูปภาพที่จับได้มีขนาดไฟล์รูปภาพปกติ (I407b0, b/288828159)
- แก้ไขปัญหารูปภาพ JPEG ที่ถ่ายขนาดใหญ่ในอุปกรณ์ Samsung S22 (SM-S901B, SM-S901B/DS) และ S22+ (SM-S906B) รูปภาพ JPEG ที่บันทึกไว้มีข้อมูลการเติม 0 ซ้ำในส่วนข้อมูลที่บีบอัด JFIF ซึ่งทำให้รูปภาพที่ถ่ายมีขนาดไฟล์ใหญ่ประมาณ 13 MB ในอุปกรณ์ S22 SM-S901B/DS ระบบจะนำข้อมูลการเติม 0 ซ้ำออกเพื่อให้รูปภาพที่จับได้มีขนาดไฟล์รูปภาพปกติ (I73be9, b/288828159)
- แก้ไขปัญหารูปภาพ JPEG ที่ถ่ายขนาดใหญ่ในอุปกรณ์ Samsung A5, A52, A70 และ A72 รูปภาพ JPEG ที่บันทึกไว้มีข้อมูลการเติม 0 ซ้ำในส่วนข้อมูลที่บีบอัด JFIF ซึ่งทำให้รูปภาพที่ถ่ายมีขนาดไฟล์มาก (เช่น ประมาณ 32 MB หรือ 96 MB) ระบบจะนำข้อมูลการเติม 0 ซ้ำออกเพื่อให้รูปภาพที่จับได้มีขนาดไฟล์รูปภาพปกติ (I97c4d, b/288828159)
- แก้ไขข้อขัดข้องของเนทีฟเมื่อถ่ายภาพโดยเปิดใช้ส่วนขยาย (I698f5)
เวอร์ชัน 1.3.0-beta02
26 กรกฎาคม 2023
androidx.camera:camera-*:1.3.0-beta02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-beta02 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ใช้ไฟฉายเป็นแฟลชสำหรับ Pixel 4 และ 5 รุ่นต่างๆ เพื่อปรับปรุงคุณภาพการจับภาพในที่แสงน้อย (I56ff5, b/280221967)
- แก้ไขปัญหารูปภาพ JPEG ที่ถ่ายขนาดใหญ่ในอุปกรณ์ Samsung A5 (2017) รูปภาพ JPEG ที่บันทึกไว้มีข้อมูลการเติม 0 ซ้ำในส่วนข้อมูลที่บีบอัด JFIF ซึ่งจะทำให้รูปภาพที่จับได้มีไฟล์ขนาดประมาณ 32 MB ระบบจะนำข้อมูลการเติม 0 ซ้ำซ้อนออกเพื่อให้รูปภาพที่จับได้มีขนาดไฟล์รูปภาพปกติ (I29837, b/288828159)
- แก้ไขการลองอีกครั้งที่ไม่ทริกเกอร์อย่างถูกต้องในกรณีที่จับภาพไม่สำเร็จในอุปกรณ์ที่มีปัญหาซึ่งกล่าวถึงใน
CaptureFailedRetryQuirk
(I7b589)
เวอร์ชัน 1.3.0-beta01
21 มิถุนายน 2023
androidx.camera:camera-*:1.3.0-beta01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-beta01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อฟังก์ชัน
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)
เป็นsetAllowedResolutionMode
และเปลี่ยนชื่อค่าคงที่ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
เป็นPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION
/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
(If84e8) - นำ API
ImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
และVideoCapture.setTargetRotationDegrees(int)
ที่เลิกใช้งานแล้วออก (Id8e77) - คลาส
DynamicRange
แสดงช่วงไดนามิกของรูปภาพ ซึ่งสามารถใช้เพื่อเลือกรูปแบบ High Dynamic Range เป็นเอาต์พุตของVideoCapture
ถึงVideoCapture.Builder#setDynamicRange()
(Ib0377) - เพิ่ม
isImageAnalysisSupported
API ลงในExtensionsManager
ซึ่งแอปจะกำหนดได้ว่าสามารถเชื่อมโยง Use CaseImageAnalysis
ร่วมกับ Preview และImageCapture
ได้หรือไม่เมื่อเปิดใช้ส่วนขยาย (I1bc63) - คลาส
VideoCapabilities
ใหม่ที่ได้รับจากRecorder
สามารถใช้เพื่อค้นหาช่วงไดนามิกและคุณภาพที่รองรับสำหรับการบันทึกวิดีโอในอุปกรณ์ เรากำลังจะเลิกใช้งานเมธอดgetSupportedQualities()
และisQualitySupported()
ของQualitySelector
โปรดใช้เมธอดgetSupportedQualities()
และisQualitySupported()
ของVideoCapabilities
แทน (I04014) CameraController#setVideoCaptureTargetQuality()
เปลี่ยนชื่อเป็นsetVideoCaptureQualitySelector
และใช้อาร์กิวเมนต์QualitySelector
ซึ่งเพิ่มความยืดหยุ่นในการตั้งค่าคุณภาพวิดีโอ เปลี่ยนCameraController#getVideoCaptureTargetQuality()
เป็นgetVideoCaptureQualitySelector
แล้ว (I520ed)- นำคำอธิบายประกอบเวอร์ชันทดลองสำหรับฟีเจอร์วิดีโอออก ฟีเจอร์วิดีโอทำงานได้อย่างเสถียรแล้ว (I1a113)
การแก้ไขข้อบกพร่อง
- ใช้ไฟฉายเป็นแฟลชใน Samsung SM-A320 เพื่อปรับปรุงความเร็วและคุณภาพของภาพที่ถ่ายในสภาวะแสงน้อย (I6a022, b/286190938)
- เพิ่มการรองรับรูปแบบ
ImageFormat.JPEG
สำหรับImageProxy.toBitmap()
หากถอดรหัสอาร์เรย์ไบต์ JPEG ไม่ได้ ระบบจะแสดงUnsupportedOperationException
(I81958, b/282057603)
เวอร์ชัน 1.3.0-alpha07
24 พฤษภาคม 2023
androidx.camera:camera-*:1.3.0-alpha07
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha07 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
VideoCapture.Builder# setTargetFrameRate(Range)
API ใหม่ช่วยให้บันทึกวิดีโอด้วยอัตราเฟรมอื่นๆ นอกเหนือจากอัตราเฟรมเริ่มต้นของอุปกรณ์ได้ คุณสามารถค้นหาอัตราเฟรมที่ใช้ได้สำหรับไฟล์บันทึกเสียงผ่านCameraInfo#getSupportedFrameRates()
API ใหม่
การเปลี่ยนแปลง API
- เปลี่ยนชื่อค่าคงที่
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
เป็นALLOWED_RESOLUTIONS_NORMAL
/SLOW
และเปลี่ยนชื่อฟังก์ชันsetHighResolutionEnabledFlag
ของบิลเดอร์เป็นsetAllowedResolutionMode
(Iae817) - ตอนนี้
CameraInfo#getSupportedFrameRateRanges()
จะแสดงผลเป็นSet
แทนList
เพื่อแสดงว่าช่วงไม่มีลําดับได้ดียิ่งขึ้น (I02f43) - เพิ่มโปรแกรมรับฟังข้อผิดพลาดใน
CameraEffect
เพื่อจัดการข้อผิดพลาดที่กู้คืนไม่ได้ (Ice471) - เพิ่มคอนสตรัคเตอร์แบบสาธารณะใน
ResolutionInfo
เพื่อให้ทดสอบได้ดีขึ้น (If6d1c) - มี API
UseCase.snapToSurfaceRotation(int)
ไว้ใช้แทนsetTargetRotationDegrees
และเลิกใช้งาน APIImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
และVideoCapture.setTargetRotationDegrees(int)
(Ia9010) - เพิ่ม API ใหม่
Preview#getTargetFrameRate
และPreview.Builder#setTargetFrameRate
เพื่อให้ตั้งค่าและเรียกดูอัตราเฟรมเป้าหมายสำหรับกรณีการใช้งานเวอร์ชันตัวอย่างได้ (If4f22) - ตอนนี้
VideoRecordEvent.Finalize
จะเสร็จสมบูรณ์พร้อมรหัสข้อผิดพลาดERROR_RECORDING_GARBAGE_COLLECTED
เมื่อออบเจ็กต์Recording
หยุดทำงานเนื่องจากการเก็บขยะ (Iba974)
การแก้ไขข้อบกพร่อง
- แก้ไข
NullPointerException
เมื่อขนาดเอาต์พุตที่แคชไว้ในStreamConfigurationMapCompat
เป็นค่าว่าง (Idf124, b/282025204) - แก้ไขปัญหาที่
Preview.setSurfaceProvider(null)
ไม่หยุดแสดงตัวอย่างชั่วคราวในส่วนขยาย (Ia903e) - แก้ไขปัญหาที่ระบบแสดง
ConcurrentModificationException
ระหว่างเปิดกล้องเมื่อมีการเชื่อมโยงVideoCapture
(Ic8ac4)
เวอร์ชัน 1.3.0-alpha06
19 เมษายน 2023
androidx.camera:camera-*:1.3.0-alpha06
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha06 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- กล้องพร้อมกันเป็นฟีเจอร์ใหม่ที่เปิดตัวใน Android 11 ซึ่งรองรับการสตรีมอุปกรณ์กล้องพร้อมกัน เช่น ช่วยให้อุปกรณ์มีทั้งกล้องหน้าและกล้องหลังทำงานพร้อมกันได้ ปัจจุบัน CameraX รองรับเฉพาะกล้องคู่ที่ทำงานพร้อมกัน ซึ่งช่วยให้กล้อง 2 ตัวทำงานพร้อมกันได้ โดยแต่ละกล้องจะเชื่อมโยงกับ {@link UseCase} ได้สูงสุด 2 รายการ ความละเอียดสูงสุดคือ 720p หรือ 1440p ดูรายละเอียดเพิ่มเติมได้ที่ลิงก์ต่อไปนี้ CameraManager#getConcurrentCameraIds()
- ขอแนะนํา
ResolutionSelector
API ใหม่ที่มีฟีเจอร์ต่อไปนี้- แอปพลิเคชันสามารถระบุสัดส่วนภาพและกลยุทธ์ความละเอียดเพื่อเลือกความละเอียดที่ดีที่สุดตามความต้องการ
- พารามิเตอร์ขนาดและสัดส่วนภาพทั้งหมดจะแสดงเป็นพิกัดของเซ็นเซอร์อุปกรณ์กล้อง
- แอปพลิเคชันสามารถใช้ตัวกรองความละเอียดที่กำหนดเองเพื่อจัดเรียงขนาดที่รองรับตามลำดับที่ต้องการ
- แอปพลิเคชันยังเปิดใช้การจับภาพความละเอียดสูงเพื่อให้ได้รูปภาพที่มีความละเอียดสูงขึ้นได้ด้วย อย่างไรก็ตาม โปรดทราบว่าการใช้ความละเอียดสูงอาจทำให้เวลาในการจับภาพช้าลง
- เพิ่ม API การมิเรอร์
VideoCapture
รายการ ระบบจะไม่มิเรอร์วิดีโอที่บันทึกโดยVideoCapture
โดยค่าเริ่มต้น อย่างไรก็ตาม ระบบจะปรับภาพตัวอย่างของกล้องให้เหมือนกับภาพในกระจกในกล้องหน้าโดยค่าเริ่มต้นVideoCapture
mirroring API ช่วยให้คุณจัดแนวกับตัวอย่างภาพจากกล้องได้เมื่อใช้กล้องหน้า มีMirrorMode
3 รายการ ได้แก่OFF
,ON
และON_FRONT_ONLY
หากต้องการปรับให้ตรงกับตัวอย่างภาพจากกล้อง เราขอแนะนำให้ใช้ON_FRONT_ONLY
ซึ่งหมายความว่าระบบจะไม่เปิดใช้การมิเรอร์สำหรับกล้องหลัง แต่เปิดใช้สำหรับกล้องหน้า
การเปลี่ยนแปลง API
- เปิดตัว
ResolutionSelector
API ใหม่ แอปพลิเคชันสามารถระบุสัดส่วนภาพและกลยุทธ์ความละเอียดด้วยกฎสำรองหรือตัวกรองความละเอียดที่กำหนดเองเพื่อให้ได้ผลลัพธ์ที่ต้องการ แอปพลิเคชันสามารถระบุ Flag เพื่อเปิดใช้การจับภาพความละเอียดสูง ซึ่งจะช่วยให้ CameraX เลือกความละเอียดที่สูงขึ้นเมื่อถ่ายภาพหรือวิดีโอได้ อย่างไรก็ตาม โปรดทราบว่าการใช้ความละเอียดสูงอาจทำให้เวลาในการจับภาพช้าลง (Ibed95) - ตอนนี้คุณค้นหาช่วง FPS ที่อัลกอริทึม AE รองรับได้ผ่าน
CameraInfo#getSupportedFrameRateRanges()
(Iaa67f) - รวมชื่อของวิธีการอัตราเฟรมทั้งหมดเข้าด้วยกันโดยใช้ "FrameRate" แก้ไขข้อผิดพลาด Javadoc ใน
VideoCapture#getTargetFrameRate()
(I83304) - เลิกใช้งาน
setTargetAspectRatio
และsetTargetResolution
API เดิม โปรดใช้ResolutionSelector
API เวอร์ชันใหม่แทน (I542c3) - เพิ่ม API สาธารณะสำหรับกล้องคู่ที่ใช้พร้อมกัน ซึ่งรวมถึง
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
boolean isConcurrentCameraModeOn()
และConcurrentCameraConfig
,SingleCameraConfig
และConcurrentCamera
(Iab1c1)
- ทําให้
ImageProcessor.Response#getOutputImage
NonNull (Ib9c60) - เพิ่ม API การมิเรอร์
VideoCapture
ซึ่งรวมถึงVideoCapture.Builder.setMirrorMode(int)
และVideoCapture.getMirrorMode()
API มีประโยชน์สําหรับแอปพลิเคชันที่จําเป็นต้องมีการบันทึกวิดีโอให้สอดคล้องกับลักษณะการทํางานของภาพพรีวิวของกล้องทั่วไป เช่น ภาพพรีวิวของกล้องหลังไม่ได้เป็นแบบมิเรอร์ แต่ภาพพรีวิวของกล้องหน้าเป็นแบบมิเรอร์ (I713b6, b/194634656) - เพิ่ม
setTargetFrameRate()
API ในVideoCapture.Builder
และgetTargetFramerate()
API ในVideoCapture
(I109d4) - ทําให้
SurfaceOutput
ขยาย Closable และซ่อนตัวสร้างแบบสาธารณะของ SurfaceOutput.Event
(I60ea8) - เพิ่ม
Recording.mute
เพื่อปิดหรือเปิดเสียงไฟล์บันทึกที่กำลังประมวลผลอยู่แบบไดนามิกRecordingStats
จะมีAudioStats.AUDIO_STATE_MUTED
เมื่อวิดีโอบันทึกที่กำลังประมวลผลถูกปิดเสียงไว้อย่างชัดเจน (Ie17fc) - ทำให้พารามิเตอร์
#setEffects()
ไม่ใช่ค่า Null เพิ่ม#clearEffects()
API สำหรับการล้างเอฟเฟกต์ แอปควรเรียก#clearEffects()
เพื่อนำเอฟเฟกต์ออก (I4b4d9) - เพิ่มตัวสร้างที่ 2 สำหรับ
ViewfinderSurfaceRequest.Builder
เพื่อใช้ตัวสร้างสำหรับตัวสร้างแบบคัดลอก (I621a7)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่แอปที่เรียกใช้ Extensions API อาจขัดข้องเมื่อปิดกล้อง (Ib27e5)
- แก้ไขปัญหาที่
VideoCapture
ไม่ทำงานกับกล้องหน้าในอุปกรณ์บางรุ่น เช่น ใน Samsung Galaxy S23 และ Xiaomi 2107113SG (Ibec7e, b/270656244) - แก้ไขปัญหาการถ่ายภาพโดยใช้ไฟล์ในโฟลเดอร์สาธารณะของพื้นที่เก็บข้อมูลภายนอกจะดำเนินการไม่สำเร็จใน Android 10 ขึ้นไปเสมอ โปรดทราบว่าใน Android 10 การถ่ายภาพโดยใช้ไฟล์ในโฟลเดอร์สาธารณะของที่จัดเก็บข้อมูลภายนอกจะต้องตั้งค่า
requestLegacyExternalStorage
เป็น true ในแท็กแอปพลิเคชันด้วย (I11b2c) - แก้ไขข้อขัดข้องของ
RejectedExecutionException
ในDefaultSurfaceProcessor
ข้อขัดข้องอาจเกิดขึ้นเมื่อมีการเชื่อมโยงVideoCapture
และกิจกรรมหยุดชั่วคราว (Idb46a, b/273713906)
เวอร์ชัน 1.3.0-alpha05
22 มีนาคม 2023
androidx.camera:camera-*:1.3.0-alpha05
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha05 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม API การหมุนเวียน
VideoCapture
ซึ่งรวมถึงVideoCapture.Builder.setTargetRotation(int)
,VideoCapture.setTargetRotation(int)
,VideoCapture.setTargetRotationDegrees(int)
และVideoCapture.getTargetRotation()
API เหล่านี้มีประโยชน์สําหรับแอปพลิเคชันที่ล็อกการวางแนวของอุปกรณ์ ระบบจะเพิ่มImageCapture.setTargetRotationDegrees(int)
และImageAnalysis.setTargetRotationDegrees(int)
ด้วย (Id3ffe, b/205242781) - อนุญาตให้ใช้
VIDEO_CAPTURE
และPREVIEW|VIDEO_CAPTURE
เป็นเป้าหมายของเอฟเฟกต์ เอฟเฟกต์ที่กำหนดเป้าหมายเป็นVIDEO_CAPTURE
จะใช้กับ UseCaseVideoCapture
ส่วนเอฟเฟกต์ที่กำหนดเป้าหมายเป็นPREVIEW|VIDEO_CAPTURE
จะใช้กับสตรีมที่ใช้ร่วมกันก่อนที่จะคัดลอกไปยังสตรีมพรีวิวและสตรีมVideoCapture
(Iee6f3)
การแก้ไขข้อบกพร่อง
- จากกล้อง
1.2.2
: แก้ไขปัญหาที่ส่วนขยาย CameraX ไม่ทำงานอย่างถูกต้องเมื่อเปิดใช้ ProGuard ในอุปกรณ์บางรุ่น เช่น Pixel (I90aa2) - แก้ไขข้อบกพร่อง
PreviewView
ที่ว่าหากแอปจัดการการวางแนวหน้าจอเอง การแสดงตัวอย่างอาจบิดเบี้ยวเมื่อหมุน ปัญหานี้จะเกิดขึ้นในอุปกรณ์บางรุ่นเท่านั้น ฟีเจอร์นี้สามารถแสดงผลใน Pixel 4a, Pixel 5 และ Pixel 6a (I14340, b/223488673)
เวอร์ชัน 1.3.0-alpha04
22 กุมภาพันธ์ 2023
androidx.camera:camera-*:1.3.0-alpha04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha04 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
ฟีเจอร์ใหม่ที่รองรับการรวม Surface ที่ไม่รองรับก่อนหน้านี้ด้วยการแชร์สตรีมเดียวไปยัง Use Case หลายรายการ
- ก่อนหน้านี้ เมื่อมีการเชื่อมโยง "Preview, VideoCapture, ImageAnalysis" ในฮาร์ดแวร์กล้องระดับ FULL และต่ำกว่า หรือเชื่อมโยง "Preview, VideoCapture, ImageCapture" ในฮาร์ดแวร์ระดับ LEGACY ทาง CameraX จะแสดงข้อผิดพลาด
IllegalArgumentException
- ลักษณะการทำงานใหม่คือ การเชื่อมโยงจะทํางานโดยไม่แสดงข้อยกเว้น แต่จะใช้ OpenGL เพื่อคัดลอกสตรีมที่ใช้ร่วมกันไปยังทั้งการแสดงตัวอย่างและ VideoCapture แทน
- เนื่องจากต้นทุนของการคัดลอกบัฟเฟอร์ แอปอาจมีความล่าช้าและการใช้พลังงานเพิ่มขึ้น
การเปลี่ยนแปลง API
- เพิ่ม API เพื่อแปลง
ImageProxy
เป็นBitmap
รูปแบบImageProxy
ที่รองรับคือImageFormat.YUV_420_888
และPixelFormat.RGBA_8888
หากรูปแบบไม่ถูกต้อง ระบบจะแสดงIllegalArgumentException
(Ic7110) - เพิ่ม
CoroutineCameraViewfinder
เพื่อรองรับการกำหนดค่าช่องมองภาพโดยใช้ฟังก์ชันที่ระงับการทำงานใน Kotlin (I657bc) - เพิ่มคอนสตรัคเตอร์แบบสาธารณะใหม่สําหรับ
ViewfinderSurfaceRequest
ซึ่งให้ความยืดหยุ่นเมื่อผู้ใช้ไม่สามารถระบุCameraCharacteristics
(Ie6549)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องของส่วนขยายที่เกิดขึ้นในอุปกรณ์ Samsung บางรุ่นเมื่อหยุด/กลับมาเปิดแอปอีกครั้งเร็วเกินไป (Iaca26)
เวอร์ชัน 1.3.0-alpha03
25 มกราคม 2023
androidx.camera:camera-*:1.3.0-alpha03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha03 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
CameraInfo.getIntrinsicZoomRatio
เพื่อระบุข้อมูลมุมมองที่สัมพันธ์กับกล้องเริ่มต้น (Ib300c) - เพิ่ม
CameraInfo.getLensFacing
เพื่อระบุข้อมูลเลนส์ที่หันไปทาง เพิ่มCameraSelector#LENS_FACING_EXTERNAL
เป็นฟีเจอร์ทดลองสำหรับเลือกกล้องภายนอก (Icaf3e) - เพิ่ม
#setEffect()
ลงในCameraController
ซึ่งอนุญาตให้เพิ่มเอฟเฟกต์ลงในเอาต์พุตของกล้อง (I1d21f) - เพิ่มวิธีการ
invalidate()
ลงในSurfaceRequest
ผู้ให้บริการแพลตฟอร์มสามารถแจ้งได้ว่าแพลตฟอร์มที่ระบุก่อนหน้านี้ไม่ถูกต้องแล้ว (Idc649) - เพิ่ม
ImageProcessor
API อินเทอร์เฟซนี้มีไว้สําหรับแทรกเอฟเฟกต์หลังการประมวลผลลงในไปป์ไลน์ImageCapture
(I575c6) - เพิ่ม API
Recorder.Builder.setAspectRatio()
ซึ่งสามารถใช้ร่วมกับQualitySelector
เพื่อรองรับความละเอียดของวิดีโอได้มากขึ้น (I8a082) - เพิ่ม
Recorder.Builder#setTargetVideoEncodingBitRate
เพื่อตั้งค่าการเข้ารหัสวิดีโอเป้าหมายBitRate
และRecorder#getTargetVideoEncodingBitRate
เพื่อรับอัตราบิตการเข้ารหัสวิดีโอเป้าหมาย (I5984d)
การแก้ไขข้อบกพร่อง
- แก้ไข
ImageCapture
ไม่สำเร็จเมื่อไม่มีหน่วยแฟลชและโหมดแฟลชเปิดอยู่ (I9e8b4, b/263391112) - แก้ไขปัญหาการเขียนข้อมูลตำแหน่ง Exif ในอุปกรณ์ Samsung Android 12 บางรุ่นทำให้รูปภาพ JPEG เสียหาย (Ib7086, b/263747161, b/263289024)
- เมื่อตั้งค่าไฟฉาย/การซูมก่อนการเริ่มต้นใช้งานกล้องจะเสร็จสมบูรณ์ เช่น การเรียกใช้
CameraController#enableTorch
ระบบจะแคชการดำเนินการที่รอดำเนินการและส่งเมื่อการเริ่มต้นใช้งานเสร็จสมบูรณ์ (I11e92, b/264157663)
เวอร์ชัน 1.3.0-alpha02
7 ธันวาคม 2022
androidx.camera:camera-*:1.3.0-alpha02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม API ใหม่สำหรับการใช้เอฟเฟกต์หลังประมวลผลกับเอาต์พุตของตัวอย่าง (Ic17d5)
- เปลี่ยนชื่อ
OutputOptions.getDurationLimit
เป็นOutputOptions.getDurationLimitMillis
และOutputOptions.setDurationLimit
เป็นOutputOptions.setDurationLimitMillis
(I91f0c) - เพิ่มคลาส
AudioConfig
เพื่อจัดการการตั้งค่าที่เกี่ยวข้องกับเสียงขณะบันทึกวิดีโอ ระบบย้ายคำอธิบายประกอบ@RequiresPermission
จากฟังก์ชันstartRecording
ไปยังAudioConfig
เพื่อหลีกเลี่ยงคำขอสิทธิ์ที่ไม่จำเป็นในกรณีที่ไม่ต้องใช้เสียง (I28755) - นำคลาส Metadata,
OnVideoSavedCallback
,OutputFileOptions
และOutputFileResults
ออกซึ่งไม่ได้ใช้งานอีกต่อไปหลังจากใช้ Video Capture API ใหม่ (I38cd8) - ใช้ API การจับภาพวิดีโอใหม่ ระบบจะใช้เมธอด
getVideoCaptureTargetQuality
และsetVideoCaptureTargetQuality
แทนเมธอดgetVideoCaptureTargetSize
และsetVideoCaptureTargetSize
เนื่องจากระบบไม่รองรับsetTargetResolution
อีกต่อไป (I2a1d5)
การแก้ไขข้อบกพร่อง
- นำ
core.VideoCapture
API ที่เลิกใช้งานแล้วออก (I531e0) - แก้ไขปัญหาที่ระบบไม่เรียกใช้การเรียกกลับ
onError
เมื่อถ่ายภาพโดยไม่ได้รับสิทธิ์เข้าถึงพื้นที่เก็บข้อมูล (I936db, b/244807669) - ปรับปรุงคุณภาพและความน่าเชื่อถือของส่วนขยายกล้อง ระบบจะปิดใช้ส่วนขยายกล้องในอุปกรณ์ Motorola ที่ใช้ส่วนขยายกล้องเวอร์ชัน 1.1.0 หรือเก่ากว่าเนื่องจากปัญหาการรองรับโบเก้ การจับภาพ และการแสดงตัวอย่างที่กลับมาทำงานไม่ได้ (Id3ce3)
- แก้ไขข้อขัดข้องแบบเนทีฟเมื่อเปิดใช้การครอบตัดวิดีโอผ่าน
ViewPort
ในอุปกรณ์รุ่นเดิม (I16b8a, b/251357665)
เวอร์ชัน 1.3.0-alpha01
9 พฤศจิกายน 2022
androidx.camera:camera-*:1.3.0-alpha01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เผยแพร่
Camera-viewfinder
อย่างเป็นทางการแล้วCamera-viewfinder
มีวิดเจ็ตช่องมองภาพพื้นฐานที่แสดงฟีดกล้องสำหรับ Camera2 ได้ โปรดดูตัวอย่างในโค้ดตัวอย่าง
การเปลี่ยนแปลง API
- เพิ่ม
OutputOptions.setDurationLimit
เพื่ออนุญาตให้ตั้งค่าขีดจำกัดระยะเวลาของวิดีโอ ระบบจะสิ้นสุดการบันทึกโดยอัตโนมัติเมื่อเกินระยะเวลาที่ระบุ (I902a0) - เพิ่มสถานะข้อผิดพลาดของเสียงในการบันทึกวิดีโอ
AudioStats.AUDIO_STATE_SOURCE_ERROR
ส่งเมื่อตั้งค่าแหล่งที่มาของเสียงไม่สำเร็จหรือเกิดข้อผิดพลาดบางอย่าง (I37410)
การแก้ไขข้อบกพร่อง
- เพิ่มข้อบกพร่องเพื่ออนุญาตให้อุปกรณ์ที่มีปัญหาบางเครื่องลองจับภาพอีกครั้งเมื่อจับภาพไม่สำเร็จ (Id4795)
- แก้ไขปัญหาหน้าจอสีดําของการติดตั้ง
PreviewView
SurfaceView
ในViewPager2
ในการแก้ไขPreviewView
จะใช้SurfaceView
ซ้ำหากไม่มีการแก้ไขความละเอียดที่ขอ (Ib3f27) - รองรับการครอบตัดวิดีโอ (ฟีเจอร์ WYSIWYG) เมื่อใช้
ViewPort
หรือCameraController
API (Ifbba8, b/201085351) - แก้ไขวิดีโอที่บันทึกด้วยกล้องหน้าใน Huawei P40 lite บันทึกไม่สำเร็จ (I87c57, b/250807400)
เวอร์ชัน 1.2
เวอร์ชัน 1.2.3
24 พฤษภาคม 2023
androidx.camera:camera-*:1.2.3
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.3 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
VideoCapture
ไม่ทำงานกับกล้องหน้าในอุปกรณ์บางรุ่น เช่น ใน Samsung Galaxy S23 และ Xiaomi 2107113SG (Ibec7e, b/270656244)
เวอร์ชัน 1.2.2
22 มีนาคม 2023
androidx.camera:camera-*:1.2.2
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.2 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ส่วนขยาย CameraX ไม่ทำงานอย่างถูกต้องเมื่อเปิดใช้ ProGuard ในอุปกรณ์บางรุ่น เช่น Pixel (I90aa2)
เวอร์ชัน 1.2.1
25 มกราคม 2023
androidx.camera:camera-*:1.2.1
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.1 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการเขียนข้อมูลตำแหน่ง Exif ในอุปกรณ์ Samsung Android 12 บางรุ่นทำให้รูปภาพ JPEG เสียหาย (b/263289024)
เวอร์ชัน 1.2.0
7 ธันวาคม 2022
androidx.camera:camera-*:1.2.0
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.1.0
- ไลบรารีใหม่ camera-mlkit-vision ผสานรวม CameraX กับฟีเจอร์ MLKit มากมายได้อย่างง่ายดาย ซึ่งรวมถึงการสแกนบาร์โค้ด การตรวจจับใบหน้า การตรวจจับข้อความ ฯลฯ เพิ่ม
MLKitAnalyzer
เป็น API ใหม่ - API การทดสอบใหม่สำหรับเวลาในการตอบสนองของชัตเตอร์เป็น 0 เพิ่มประสิทธิภาพไปป์ไลน์การจับภาพเพื่อให้เวลาในการตอบสนองดีขึ้นโดยยังคงคุณภาพรูปภาพที่ดี เมื่อตั้งค่าโหมดการจับภาพเป็น
CAPTURE_MODE_ZERO_SHUTTER_LAG
ระบบจะลดเวลาในการตอบสนองระหว่างการคลิกปุ่มชัตเตอร์กับเวลาที่ถ่ายภาพให้น้อยที่สุดเมื่อเทียบกับโหมดการจับภาพอื่นๆ ในอุปกรณ์ที่ไม่รองรับZERO_SHUTTER_LAG
ระบบจะใช้CAPTURE_MODE_MINIMIZE_LATENCY
แทน - เลิกใช้งาน
android.camera.core.VideoCapture
- เพิ่ม
setStreamUseCase()
เป็นCamera2Interop
API สาธารณะ - เพิ่มข้อกำหนดระดับ API สำหรับ
setOutputImageRotationEnabled
- เปลี่ยนชื่อ
ImageAnalysis.Analyzer#getTargetResolutionOverride()
เป็นImageAnalysis.Analyzer#getDefaultTargetResolution()
แล้ว - เพิ่ม API สำหรับการตั้งค่าข้อมูลเมตาตำแหน่งในวิดีโอที่บันทึกไว้
- แก้ไขเฟรมเรตต่ำเมื่อใช้
VideoCapture
และกรณีการใช้งานของตัวอย่างเพลงที่มีสัดส่วนภาพ 16:9 - แก้ไขปัญหาการแสดงตัวอย่างเป็นสีดําที่เกิดขึ้นเมื่อเปิดใช้ส่วนขยายโบเก้ในอุปกรณ์ Samsung บางรุ่นและผู้ใช้เปลี่ยนกล้อง
- แก้ไขปัญหา
Preview/VideoCapture
การยืดของ Samsung J7 Prime (SM-G610M) และ J7 (SM-J710MN) ในอุปกรณ์ API ระดับ 27 - ปิดใช้วิธีแก้ปัญหาในการพลิกพื้นที่ AF ของกล้องหน้าในแนวนอนบน Samsung Android T เนื่องจากปัญหาได้รับการแก้ไขแล้ว
เวอร์ชัน 1.2.0-rc01
24 ตุลาคม 2022
androidx.camera:camera-*:1.2.0-rc01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-rc01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
setStreamUseCase
API สำหรับOutputConfiguration
ผู้ใช้สามารถระบุ Use Case ของสตรีมสำหรับเซสชันสตรีม โดยลบล้างตรรกะภายในของ CameraX เพื่อเลือก Use Case ของสตรีมเพื่อเพิ่มประสิทธิภาพตามต้องการ (Ib1a95)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา
Preview/VideoCapture
การยืดของ Samsung J7 Prime (SM-G610M) และ J7 (SM-J710MN) ในอุปกรณ์ API ระดับ 27 ความละเอียด 1920x1080 จะทําให้รูปภาพPreview/VideoCapture
ยืดออก เพิ่มวิธีแก้ปัญหาเพื่อไม่ให้เลือกความละเอียด 1920x1080 สำหรับตัวอย่างเพลงหรือVideoCapture
เพื่อหลีกเลี่ยงปัญหาการยืดรูปภาพ (I0e04e) - แก้ไขเฟรมเรตต่ำเมื่อใช้กรณีการใช้งาน
VideoCapture
และพรีวิวที่มีสัดส่วนภาพ 16:9 ในอุปกรณ์ Huawei บางรุ่น (If8c88, b/223643510) - แก้ไขการเปิดกล้องไม่สำเร็จเมื่อไม่ได้ตั้งค่า
SurfaceProvider
ของการแสดงตัวอย่าง การแก้ไขนี้ทำให้ระบบไม่กําหนดค่าตัวอย่างที่ไม่มีการตั้งค่าSurfaceProvider
ในเซสชันการจับภาพด้วยกล้อง (I99681)
เวอร์ชัน 1.2.0-beta02
21 กันยายน 2022
androidx.camera:camera-*:1.2.0-beta02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-beta02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มข้อกําหนดระดับ API สําหรับ
setOutputImageRotationEnabled
(I26e3e, b/240993561)
การแก้ไขข้อบกพร่อง
- ปิดใช้วิธีแก้ปัญหาในการพลิกพื้นที่ AF ของกล้องหน้าในแนวนอนบน Samsung Android T เนื่องจากปัญหาได้รับการแก้ไขแล้ว (I05f69)
- แก้ไขปัญหาการแสดงตัวอย่างเป็นสีดําที่เกิดขึ้นเมื่อเปิดใช้ส่วนขยาย
BOKEH
ในอุปกรณ์ Samsung บางรุ่นและผู้ใช้เปลี่ยนกล้อง (If6168)
เวอร์ชัน 1.2.0-beta01
24 สิงหาคม 2022
androidx.camera:camera-*:1.2.0-beta01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-beta01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ไลบรารีใหม่
camera-mlkit-vision
ผสานรวม CameraX กับฟีเจอร์ MLKit หลายอย่างได้อย่างง่ายดาย ซึ่งรวมถึงการสแกนบาร์โค้ด การตรวจจับใบหน้า การตรวจจับข้อความ ฯลฯ โปรดดูโค้ดตัวอย่างที่นี่ - Zero-Shutter Lag API เวอร์ชันทดลองใหม่ เพิ่มประสิทธิภาพไปป์ไลน์การจับภาพเพื่อให้เวลาในการตอบสนองดีขึ้นโดยยังคงคุณภาพรูปภาพที่ดี เมื่อตั้งค่าโหมดการจับภาพเป็น CAPTURE_MODE_ZERO_SHUTTER_LAG ระบบจะลดเวลาในการตอบสนองระหว่างการคลิกปุ่มชัตเตอร์กับเวลาที่กล้องจับภาพให้น้อยที่สุดเมื่อเทียบกับโหมดการจับภาพอื่นๆ ในอุปกรณ์ที่ไม่รองรับ ZERO_SHUTTER_LAG ระบบจะใช้ CAPTURE_MODE_MINIMIZE_LATENCY แทน
- กำหนดให้
ImageAnalysis.Analyzer
และMLKitAnalyzer
เป็น API อย่างเป็นทางการ - API ที่เปิดเผยสำหรับการตั้งค่าข้อมูลเมตาตำแหน่งให้กับวิดีโอที่บันทึกไว้
- เปลี่ยนชื่อ
ImageAnalysis.Analyzer#getTargetResolutionOverride()
เป็นImageAnalysis.Analyzer#getDefaultTargetResolution()
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการจับภาพรูปภาพ Alps k61v1_basic_ref รูปภาพ JPEG ที่บันทึกจาก HAL มีข้อมูลเมตา Exif ไม่ถูกต้อง ข้อมูลเมตา Exif ไม่มีแท็ก 0xffd9 หรือ 0xffda เพื่อให้
ExifInterface
แยกวิเคราะห์แอตทริบิวต์ได้อย่างถูกต้อง ถ่ายภาพในรูปแบบ YUV แล้วบีบอัดเป็นรูปภาพเอาต์พุต JPEG เพื่อแก้ปัญหานี้ (I45abb)
เวอร์ชัน 1.2.0-alpha04
27 กรกฎาคม 2022
androidx.camera:camera-*:1.2.0-alpha04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha04 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ
ImageAnalysis.Analyzer#getTargetResolutionOverride()
เป็นImageAnalysis.Analyzer#getDefaultTargetResolution()
นอกจากนี้ ระบบยังเปลี่ยนลักษณะการทํางานเพื่อให้ค่าของImageAnalysis#setTargetResolution()
ลบล้างค่าที่แสดงผลโดยเมธอดนี้ได้ (If1d36) - API ที่เปิดเผยสำหรับการตั้งค่าข้อมูลเมตาตำแหน่งให้กับวิดีโอที่บันทึกไว้ คุณตั้งค่าออบเจ็กต์
android.location.Location
ผ่าน API ใหม่androidx.camera.video.OutputOptions.Builder.setLocation(Location)
ได้ (I313a0, b/204197544)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการถ่ายภาพด้วยตัวอย่างการเลิกเชื่อมโยง (Ie70b6, b/235119898)
- แก้ไขข้อขัดข้องใน
Recorder
เมื่อพยายามบันทึกขณะที่แหล่งที่มาของเสียงไม่พร้อมใช้งาน (I9f652)
เวอร์ชัน 1.2.0-alpha03
29 มิถุนายน 2022
androidx.camera:camera-*:1.2.0-alpha03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำคำอธิบายประกอบเวอร์ชันทดลองของ
ImageAnalysis.Analyzer
และMLKitAnalyzer
ออกแล้ว (I0ff22)
การแก้ไขข้อบกพร่อง
- เพิ่มการหมดเวลาเริ่มต้นของโฟกัสอัตโนมัติ 5000ms ซึ่งจะทําให้ส่วน AF เสร็จสมบูรณ์ด้วย
isFocusSuccessful
false หากไม่ยกเลิกFocusMeteringAction
และส่วน AF ไม่ได้บรรจบกันภายในระยะเวลาดังกล่าว (Ibc2e3) - แก้ไขปัญหาการถ่ายภาพด้วยตัวอย่างการเลิกเชื่อมโยง (I1d3a2, b/235119898)
- เปิดใช้การใช้งานตัวขยายขั้นสูงและอัปเดตเวอร์ชันอินเทอร์เฟซส่วนขยายที่รองรับของ CameraX เป็น 1.2 (I92256)
เวอร์ชัน 1.2.0-alpha02
1 มิถุนายน 2022
androidx.camera:camera-*:1.2.0-alpha02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แสดง CameraX Zero-Shutter Lag API เป็นเวอร์ชันทดลอง
การเปลี่ยนแปลง API
- เพิ่มโหมดการจับภาพใหม่
CAPTURE_MODE_ZERO_SHUTTER_LAG
ในImageCapture
และเพิ่มisZslSupported
ในCameraInfo
เพื่อค้นหาความสามารถของอุปกรณ์ โหมดCAPTURE_MODE_ZERO_SHUTTER_LAG
มีเป้าหมายเพื่อให้เวลาในการตอบสนองต่ำสุดสำหรับการจับภาพทันที การดำเนินการนี้ใช้บัฟเฟอร์แบบวงแหวน ซึ่งจะแคชผลการจับภาพขั้นกลางไว้เพื่อประมวลผลอีกครั้งในภายหลังเมื่อผู้ใช้กดปุ่มเพื่อถ่ายภาพ หากมีการเชื่อมโยง {@link VideoCapture} หรือโหมดแฟลชไม่ได้ปิดอยู่ หรือส่วนขยาย OEM เปิดอยู่ ระบบจะปิดใช้โหมดนี้โดยอัตโนมัติ (I9ae74) - เพิ่มวิธีการ
ImageAnalysis.getBackgroundExecutor()
(Icc945)
การแก้ไขข้อบกพร่อง
- แก้ไขแล้ว
ImageCapture
เมธอด takePicture จะปิดไฟฉายในอุปกรณ์ที่รายงาน (Ib5eb5, b/228272227) - แก้ไขข้อบกพร่องที่ระบบไม่จัดการ
AssertionError
เมื่อรับลักษณะCONTROL_ZOOM_RATIO_RANGE
(/Ia248a, b/231701345)
เวอร์ชัน 1.2.0-alpha01
18 พฤษภาคม 2022
androidx.camera:camera-*:1.2.0-alpha01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปิดตัวคลังภาพ camera-mlkit-vision ใหม่
การแก้ไขข้อบกพร่อง
- แก้ไข
QualitySelector
บันทึกวิดีโอ UHD ไม่ได้เมื่อเปิดใช้กลยุทธ์สำรอง ปัญหานี้เกิดขึ้นเมื่อVideoCapture
เชื่อมโยงกับImageCapture
และแสดงตัวอย่างในอุปกรณ์กล้องระดับฮาร์ดแวร์ FULL ขึ้นไป กลยุทธ์สำรองของQualitySelector
ทำให้VideoCapture
ได้รับความละเอียด FHD อย่างไม่ถูกต้อง ระบบรองรับความละเอียด UHD สำหรับชุดค่าผสม Use Case นี้จริงๆ และควรนำมาใช้ (I0e788, b/230651237) - แก้ไข
NullPointerException
ในวันที่ImageCapture.takePicture()
(I92366, b/230454568, b/229766155) - แก้ไขลักษณะการหยุดชั่วคราวแบบไม่พร้อมกันของ
androidx.camera.video.Recorder
(Ia8ce8)
Camera-Camera2, Camera-Core, Camera-Lifecycle และ Camera-Video เวอร์ชัน 1.1.0
เวอร์ชัน 1.1.0
29 มิถุนายน 2022
androidx.camera:camera-*:1.1.0
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.0.0
- ไลบรารีภาพแรกที่แสดงเมื่อผู้ใช้เข้าชม, ชิ้นงาน และวิดีโอคอลเวอร์ชัน RC แรก ตั้งแต่ 1.1.0-beta01 เป็นต้นไป ไลบรารี CameraX ทั้งหมดจะใช้หมายเลขเวอร์ชันเดียวกัน ซึ่งจะช่วยให้นักพัฒนาแอปติดตามเวอร์ชันได้ง่ายขึ้นมากและลดความซับซ้อนของเมทริกซ์ความเข้ากันได้ของเวอร์ชันขนาดใหญ่
- เปิดตัว API และฟีเจอร์ใหม่ๆ แบบสาธารณะ ซึ่งรวมถึง
- เพิ่มไลบรารีวิดีโอจากกล้องอย่างเป็นทางการเพื่อรองรับกรณีการใช้งานต่างๆ ของวิดีโอ
- ความสามารถในการแปลง YUV เป็น RGB และการหมุน (
ImageAnalysis.Builder.setOutputImageRotationEnabled
และsetOutputImageFormat
) - รองรับโหมดหลายหน้าต่างโดยอนุญาตให้แอปพลิเคชัน CameraX กลับมาใช้กล้องต่อได้เมื่อแอปอื่นขัดจังหวะการใช้งานกล้องและโฟกัสกลับมาทำงานอีกครั้ง
- ตรวจสอบว่า CameraX ทำงานได้ดีในอุปกรณ์แบบพับได้ด้วยการแก้ไขปัญหาการแสดงตัวอย่างบางส่วน
- เพิ่ม
CameraState
API ที่แสดงผ่าน CameraInfo - เพิ่ม API
ProcessCameraProvider.getAvailableCameraInfos()
เพื่อดึงข้อมูลเกี่ยวกับกล้องที่ใช้ได้โดยตรง - รูปแบบเอาต์พุต JPEG สำหรับ
ImageCapture#OnImageCapturedCallback
เมื่อเปิดใช้ส่วนขยาย - เพิ่ม API
isFocusMeteringSupported
ในCameraInfo
ซึ่งช่วยให้แอปพลิเคชันตรวจสอบได้ว่ากล้องปัจจุบันรองรับFocusMeteringAction
ที่ระบุหรือไม่ - แสดง
getResolutionInfo
API เพื่อระบุข้อมูลความละเอียดสำหรับตัวอย่างImageCapture
และImageAnalysis
- เพิ่ม API ใหม่
ImageCapture.Builder#setJpegQuality
เพื่ออนุญาตให้เปลี่ยนคุณภาพการบีบอัดรูปภาพ JPEG ขาออกเมื่อถ่ายภาพ - เพิ่ม
CameraSelector#filter
ลงใน Public API เพื่อกรองรายการCameraInfos
ตามCameraSelector
- เพิ่ม
Camera2CameraControl.clearCaptureRequestOptions
สำหรับการล้างตัวเลือกคำขอบันทึกที่มีอยู่ - เพิ่ม API เวอร์ชันทดลองสำหรับการใช้
CameraController
กับไลบรารีการประมวลผลรูปภาพภายนอก เช่น MLKit - เพิ่ม API ทดลอง
CameraInfo#getCameraSelector()
ซึ่งแสดงผลCameraSelector
ที่ไม่ซ้ำกันสำหรับกล้อง - โปรโมต API การทดสอบหลายรายการเป็น API สาธารณะอย่างเป็นทางการ
- แทนที่คำอธิบายประกอบ
@Experimental
ด้วย@RequiresOptIn
ใน API เวอร์ชันทดลอง หากต้องการเรียกใช้ API เวอร์ชันทดลอง ให้ใช้ androidx.annotation.OptIn แทน androidx.annotation.experimental.UseExperimental ที่เลิกใช้งานแล้ว - โปรโมต API ทดลองต่อไปนี้เป็น API อย่างเป็นทางการ
CameraXConfig.Builder#setAvailableCamerasLimiter()
,CameraXConfig.Builder#setMinimumLoggingLevel()
,CameraXconfig.Builder#setSchedulerHandler()
,CameraXConfig#getAvailableCamerasLimiter()
,CameraXConfig#getMinimumLoggingLevel()
,CameraXConfig#getCameraExecutor()
,CameraXConfig#getSchedulerHandler()
@ExperimentalCameraFilter
API- API การชดเชยแสงเวอร์ชันทดลอง
- โปรโมต
UseCaseGroup
API เวอร์ชันทดลองสําหรับ camera-core, camera-lifecycle และ camera-video เพิ่มViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
และViewPort.Builder#setScaleType
สำหรับการปรับแต่งวิวพอร์ต - โปรโมต
ExperimentalUseCaseGroupLifecycle
เป็น API สาธารณะอย่างเป็นทางการ - การเปลี่ยนแปลง API ที่มีอยู่
Renamed MediaStoreOutputOptions.getCollection
เพื่อMediaStoreOutputOptions.getCollectionUri
- เปลี่ยนชื่อ
ActiveRecording
เป็น "การบันทึก" เพื่อลดความซับซ้อน - เปลี่ยน
QualitySelector
Creator API เป็น API อิงตามรายการ
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา
YuvToJpegProcessor
EOFException
เมื่อเปิดใช้โหมดส่วนขยายและตั้งค่าโหมดImageCapture#CAPTURE_MODE_MAX_QUALITY
- กำหนดค่าตัวแปลงรหัสแบบคงที่ไม่สำเร็จเนื่องจากระบบกำลังปิดการบันทึกวิดีโอ
- แก้ไขสัดส่วนภาพตัวอย่าง/วิดีโอที่ยืดออกเมื่อบันทึกที่ FHD
- แก้ไขเสียง/วิดีโอไม่ตรงกันหลังจากหยุดชั่วคราวและเล่นต่อในอุปกรณ์บางเครื่อง
- แก้ไขปัญหาที่ระบบเปิดแฟลชระหว่างการแตะเพื่อโฟกัส (
startFocusAndMetering
) เมื่อโหมดแฟลชเป็นอัตโนมัติหรือเปิดอยู่เสมอในสภาพแวดล้อมที่มีแสงน้อย
เวอร์ชัน 1.1.0-rc02
1 มิถุนายน 2022
androidx.camera:camera-*:1.1.0-rc02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-rc02 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไข
NullPointerException
ในวันที่ImageCapture.takePicture()
(I92366, b/230454568, b/229766155) - แก้ไขข้อบกพร่องที่ระบบไม่จัดการ
AssertionError
เมื่อรับลักษณะCONTROL_ZOOM_RATIO_RANGE
(Ia248a, b/231701345)
เวอร์ชัน 1.1.0-rc01
11 พฤษภาคม 2022
androidx.camera:camera-*:1.1.0-rc01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-rc01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เผยแพร่ RC เวอร์ชันแรกสำหรับ camera-video, camera-view และ camera-extension
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ไม่มีการปล่อยตัวแปลงรหัสวิดีโอเมื่อยกเลิกการเชื่อมโยง
VideoCapture<Recorder>
ซึ่งทำให้การใช้VideoCapture<Recorder>
ในบันทึกด้วยMediaCodec.CodecException
ล้มเหลวในภายหลัง โดยเฉพาะในอุปกรณ์ API 21-22 (Ie7f68) - แก้ไขรูปภาพที่จับภาพ
CameraExtensionsActivity
ไม่ให้ถูกลบในImageCaptureTest
เวอร์ชัน 1.1.0-beta03
6 เมษายน 2022
androidx.camera:camera-*:1.1.0-beta03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-beta03 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- จำกัดตัวสร้าง
CaptureRequestOptions
(I261b6) - เพิ่ม API เวอร์ชันทดลองสำหรับการใช้
CameraController
กับไลบรารีการประมวลผลรูปภาพภายนอก เช่น MLKit (I4ea71)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ตัวอย่างเพลงแสดงในแนวนอนใน
PreviewView
เมื่อกิจกรรมไม่เริ่มต้นขึ้นอีกครั้งหลังจากหมุนอุปกรณ์ในโหมดหลายหน้าต่าง (I1ea36, b/223488673) - แก้ไขปัญหาหลายหน้าต่างที่เมื่อโฟกัสเปลี่ยนกลับไปที่แอปแล้ว กล้องจะกลับมาทำงานไม่ได้เมื่อ (1) แอปอื่นๆ ที่มีลำดับความสำคัญสูงเปิดกล้องอื่น (2) อุปกรณ์เป็น Samsung Android 12 (I7e9f2)
- วิธีการแก้ปัญหาสำหรับอุปกรณ์ที่ขัดข้องเมื่อตรวจสอบความพร้อมใช้งานของแฟลช อุปกรณ์เหล่านี้จะไม่มีไฟฉาย (If26a3, b/216667482)
- แก้ไขปัญหา
AbstractMethodError
ที่จะเกิดขึ้นเมื่อแอปใช้ส่วนขยายและเปิดใช้ ProGuard (I7cbaf, b/222726805) - บังคับปิดใช้โหมดการขยายโบเก้ในอุปกรณ์ Motorola razr 5G ซึ่งจะทำให้เกิดปัญหาหน้าจอแสดงตัวอย่างเป็นสีดํา (I35d49)
- แก้ไขเสียง/วิดีโอไม่ตรงกันหลังจากหยุดชั่วคราวและเล่นต่อในอุปกรณ์ Samsung บางรุ่นที่ใช้ API เวอร์ชันก่อน 29 (I64622, b/202798609, b/202798572)
- แก้ไขเสียง/วิดีโอไม่ซิงค์กันหลังจากหยุดชั่วคราวและเล่นต่อใน Sony G3125 (I2a1a5, b/202799148)
- แก้ไขข้อขัดข้องเมื่อโปรแกรมอัดเสียงพบ
InvalidConfigException
อย่างไรก็ตาม การแก้ไขนี้จะช่วยป้องกันไม่ให้แอปขัดข้องเท่านั้น แต่จะไม่ได้แก้ไขสาเหตุของInvalidConfigException
หากยังคงกําหนดค่าRecorder
ไม่ได้ แอปพลิเคชันจะได้รับการเรียกกลับข้อผิดพลาดเมื่อเริ่มบันทึก (I89c29, b/213617227)
การมีส่วนร่วมจากภายนอก
- อัปเดต :compose:ui:ui-test api (updateApi) เนื่องจากการย้ายข้อมูล test-coroutines-lib (I3366d)
เวอร์ชัน 1.1.0-beta02
23 กุมภาพันธ์ 2022
androidx.camera:camera-*:1.1.0-beta02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-beta02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มความสามารถในการระบุรหัสกล้องจริงผ่าน Camera2Interop (I5aed8)
การแก้ไขข้อบกพร่อง
- แก้ปัญหาการแสดงตัวอย่างที่ยืดบน Oppo Find N (I7d004)
- แก้ปัญหา Galaxy J7 Prime ที่ภาพตัวอย่างบิดเบี้ยว (I4c500)
- ใช้อัตราบิตที่เข้ากันได้เพื่อค้นหาโปรแกรมเปลี่ยนไฟล์วิดีโอ (d969052)
เวอร์ชัน 1.1.0-beta01
26 มกราคม 2022
androidx.camera:camera-*:1.1.0-beta01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-beta01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ตั้งแต่ 1.1.0-beta01 เป็นต้นไป ไลบรารี CameraX ทั้งหมดจะใช้หมายเลขเวอร์ชันเดียวกัน ซึ่งจะช่วยให้นักพัฒนาแอปติดตามเวอร์ชันได้ง่ายขึ้นมากและลดความซับซ้อนของตารางความเข้ากันได้ของเวอร์ชันขนาดใหญ่
การเปลี่ยนแปลง API
- เพิ่ม
Camera2CameraControl.clearCaptureRequestOptions
สำหรับล้างตัวเลือกคำขอบันทึกที่มีอยู่ (Ifa07d)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องเมื่อบันทึกวิดีโอในอุปกรณ์บางรุ่นก่อน Android O(API 26) (I88fdf, b/212328261)
- แก้ไขปัญหาบริเวณโฟกัสอัตโนมัติไม่ถูกต้องเมื่อใช้
cameraControl#startFocusAndMetering()
ในกล้องเลนส์หน้าของอุปกรณ์ Samsung (Ifbf59, b/210548792) - ใช้ไฟฉายเป็นแฟลชใน Pixel 3a/Pixel 3a XL เพื่อปรับปรุงความเร็วและคุณภาพของภาพที่ถ่ายในที่มืด (Ib12b6, b/211474332)
- แอปพลิเคชันที่เปิดใช้เพื่อกลับมาใช้กล้องต่อเมื่อแอปพลิเคชันอื่นๆ ที่มีลำดับความสำคัญสูงกว่าขัดจังหวะกล้องในโหมดหลายหน้าต่าง และโฟกัสเปลี่ยนกลับไปที่แอปพลิเคชัน โปรดทราบว่าอาจมีความล่าช้า(1 วินาทีถึง 10 วินาทีขึ้นไป) ระหว่างการเปลี่ยนแปลงโฟกัสกับการเปิดกล้องอีกครั้งเนื่องจากปัญหาเฟรมเวิร์ก (I4d092)
เวอร์ชัน 1.1.0-alpha12
15 ธันวาคม 2021
androidx.camera:camera-*:1.1.0-alpha12
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha12 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำคำอธิบายประกอบ
@RequiresApi(21)
ที่ไม่จำเป็นออกจากคลาส/อินเทอร์เฟซภายใน (I8e286, b/204917951) - เราได้เปลี่ยนค่าคงที่ด้านคุณภาพและค่าคงที่ของกลยุทธ์สำรองของ
QualitySelector
ให้แสดงโดยออบเจ็กต์คลาส เช่นQualitySelector.QUALITY_HD
เปลี่ยนเป็นQuality.HD
และQualitySelector.FALLBACK_STRATEGY_LOWER
เปลี่ยนเป็นอินสแตนซ์ที่FallbackStrategy.lowerQualityOrHigherThan(Quality)
แสดง API ที่ใช้สร้างQualitySelector
ได้เปลี่ยนเป็น API ตามรายการแล้ว API ใหม่QualitySelector.fromOrderedList(List<Quality>)
จะอ้างอิงลำดับของรายการคุณภาพอินพุตแทนลำดับที่QualitySelector.Procedure
สร้างขึ้น นำชั้นเรียนQualitySelector.Procedure
ออกแล้ว (I43343) PendingRecording.withEventListener()
ถูกนําออกแล้ว และตอนนี้ต้องส่ง Listener เหตุการณ์ไปยังPendingRecording.start()
ข้อกําหนดของ Listener เหตุการณ์นี้มีไว้เพื่อส่งเสริมการจัดการข้อผิดพลาดแบบไม่พร้อมกันที่รายงานในเหตุการณ์VideoRecordEvent.Finalize
(I1e71d)- เปลี่ยนชื่อ
ActiveRecording
เป็นRecording
เพื่อลดความซับซ้อน (I77ceb)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่รูปภาพที่ถ่ายในโหมด
FLASH_AUTO
แสดงแสงน้อยในสภาพแสงมืดใน Pixel 3a และ Pixel 3a XL (I13f19, b/205373142) - ใช้ขนาดการแสดงผลล่าสุดเสมอเพื่อกำหนดตัวอย่าง
Resolution
(I4a694) - กรองกล้องที่ไม่มี
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
ออก กล้องที่มีREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
มีชุดความสามารถขั้นต่ำที่อุปกรณ์กล้องทุกเครื่องรองรับ กล้องที่ไม่มีREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
อาจเป็นกล้องที่รองรับฟังก์ชันการทำงานพิเศษและไม่รองรับเอาต์พุตสีมาตรฐานCameraX
ไม่รองรับกรณีการใช้งานPreview
,ImageCapture
,ImageAnalysis
หรือVideoCapture
สำหรับกล้องเหล่านั้น ดังนั้นจึงควรกรองกล้องเหล่านั้นออกเพื่อป้องกันการใช้งานที่ไม่ถูกต้อง (Ib8cda) CameraSelector#filter
ไม่แสดงIllegalArgumentException
อีกต่อไปเมื่อชุดผลลัพธ์ว่างเปล่า (I27804)- ตอนนี้เราใช้วิธีการเฮuristic ที่ชาญฉลาดมากขึ้นเพื่อเลือกการตั้งค่าโปรแกรมเปลี่ยนไฟล์ตามโปรไฟล์ที่ OEM ระบุ (Iaeef0)
- ตัวอย่างแบบคงที่จะมีเส้นสีที่ซ้อนกันหลังจากเริ่มบันทึกวิดีโอ UHD ใน Pixel 1 (I833c6, b/205340278)
เวอร์ชัน 1.1.0-alpha11
17 พฤศจิกายน 2021
androidx.camera:camera-*:1.1.0-alpha11
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha11 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม CameraSelector#filter ลงใน Public API เพื่อกรองรายการ CameraInfo ตาม CameraSelector (I105d0)
เพิ่ม API setOutputImageRotationEnabled สําหรับการกําหนดค่า ImageAnalysis ผู้ใช้สามารถเปิดใช้การหมุนสําหรับบัฟเฟอร์รูปภาพ YUV/RGB ได้ องศาการหมุนคือการหมุนแบบสัมพัทธ์ที่คำนวณตามการหมุนของเซ็นเซอร์และการหมุนของเป้าหมายเพื่อให้รูปภาพอยู่ด้านหน้าเสมอ
เพิ่ม API setOutputImageRotationEnabled สําหรับการกําหนดค่า ImageAnalysis ผู้ใช้สามารถเปิดใช้การหมุนสําหรับบัฟเฟอร์รูปภาพ YUV/RGB ได้ องศาการหมุนคือการหมุนแบบสัมพัทธ์ที่คำนวณตามการหมุนของเซ็นเซอร์และการหมุนของเป้าหมายเพื่อให้รูปภาพอยู่ด้านหน้าเสมอ
เพิ่ม
getSensorToBufferTransformMatrix
API ใน ImageInfo เมทริกซ์ที่แสดงผลคือการแมปจากพิกัดเซ็นเซอร์ไปยังพิกัดบัฟเฟอร์ ซึ่งก็คือจากค่าCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE
ถึง(0, 0, image.getWidth, image.getHeight)
เมทริกซ์นี้สามารถใช้เพื่อจับคู่พิกัดจาก {UseCase} หนึ่งไปยังอีก {UseCase} หนึ่ง เช่น การแมปพิกัดของใบหน้าที่ตรวจพบด้วย ImageAnalysis กับตัวอย่าง (I9ff1e)เพิ่ม API ใหม่ ImageCapture.Builder#setJpegQuality เพื่ออนุญาตให้เปลี่ยนคุณภาพการบีบอัดรูปภาพ JPEG ขาออกเมื่อถ่ายภาพ (I8dcf4)
เปลี่ยนชื่อ MediaStoreOutputOptions.getCollection เป็น MediaStoreOutputOptions.getCollectionUri (I16639)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่แฟลชทริกเกอร์ระหว่างการแตะเพื่อโฟกัส (startFocusAndMetering) เมื่อโหมดแฟลชเป็นอัตโนมัติหรือ always_on ในสภาพแวดล้อมที่มีแสงน้อย (Id4c11)
- ปิดใช้ HDR+ ใน Pixel 2 XL / Pixel 3 XL ในโหมด MINIMIZE_LATENCY เพื่อลดเวลาในการตอบสนอง (Ib6270, b/203505523)
การมีส่วนร่วมจากภายนอก
เวอร์ชัน 1.1.0-alpha10
13 ตุลาคม 2021
androidx.camera:camera-*:1.1.0-alpha10
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha10 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปิดตัว
androidx.camera:camera-video:1.1.0-alpha10
เป็นเวอร์ชันอัลฟ่าแรกสำหรับวิดีโออย่างเป็นทางการ มีปัญหาที่ทราบหลายประการซึ่งจะได้รับการแก้ไขในรุ่นที่ใหม่กว่า
การเปลี่ยนแปลง API
- เพิ่มคำอธิบายประกอบ
@RequiresApi(21)
ลงในคลาส CameraX ทั้งหมด และนำ minSdkVersion ออกจาก AndroidManifest.xml วิธีนี้จะช่วยให้ผสานรวม camera-core เข้ากับแอปพลิเคชันที่มี minSdkVersion น้อยกว่า 21 ได้โดยง่าย แต่ต้องการใช้เส้นทางโค้ดแบบมีเงื่อนไขซึ่งอาศัย API เวอร์ชัน 21 ขึ้นไป สําหรับแอปพลิเคชันที่มี minSdkVersion 21 ขึ้นไป การเปลี่ยนแปลงนี้ไม่จําเป็นต้องดําเนินการใดๆ (Ie7f2e, b/200599470)
การแก้ไขข้อบกพร่อง
- แสดง InitializationException เพื่อให้แอปจัดการ AssertionError ที่เกิดขึ้นเมื่อสร้าง CameraCharacteristics ได้อย่างราบรื่น (Ibec79)
เวอร์ชัน 1.1.0-alpha09
29 กันยายน 2021
androidx.camera:camera-camera2:1.1.0-alpha09
, androidx.camera:camera-core:1.1.0-alpha09
และ androidx.camera:camera-lifecycle:1.1.0-alpha09
เผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha09 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ระบบได้นำคำอธิบายประกอบ ExperimentalUseCaseGroup ออกแล้วเนื่องจาก API ไม่ได้อยู่ในขั้นทดลองอีกต่อไป (I01ef5)
การแก้ไขข้อบกพร่อง
- แก้ปัญหาที่รูปภาพที่ถ่ายเบลอในโหมด
MAXIMIZE_QUALITY
(I173a9, b/193823892) - แก้ไขปัญหา Samsung Galaxy J5 ที่กล้องค้างหลังจากถ่ายภาพโดยเปิดแฟลช/อัตโนมัติในสภาพแวดล้อมที่มืด (I3aab9)
- เมื่อจำเป็นต้องครอบตัดสำหรับ ImageCapture ให้บีบอัดรูปภาพที่ครอบตัดเอาต์พุตด้วยระดับคุณภาพ JPEG ที่ระบุตามโหมดการจับภาพที่ตั้งไว้ หากโหมดการจับภาพเป็น
CAPTURE_MODE_MINIMIZE_LATENCY
คุณภาพการบีบอัด JPEG จะเป็น 95 หากโหมดการจับภาพเป็นCAPTURE_MODE_MAXIMIZE_QUALITY
คุณภาพการบีบอัด JPEG จะเป็น 100 (Ieb37c, b/142856426)
เวอร์ชัน 1.1.0-alpha08
18 สิงหาคม 2021
androidx.camera:camera-camera2:1.1.0-alpha08
, androidx.camera:camera-core:1.1.0-alpha08
และ androidx.camera:camera-lifecycle:1.1.0-alpha08
เผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha08 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่ม setOutputImageFormat API สําหรับการกําหนดค่าการวิเคราะห์รูปภาพ ผู้ใช้สามารถเลือก ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 หรือ ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888 โดยค่าเริ่มต้น ระบบจะเลือก ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 (I7902d)
การเปลี่ยนแปลง API
- ระบบได้นำคำอธิบายประกอบ ExperimentalUseCaseGroupLifecycle ออกแล้วเนื่องจาก API ไม่ได้เป็นแบบทดลองอีกต่อไป (I17b85)
การแก้ไขข้อบกพร่อง
- แก้ไขหน้าจอแสดงตัวอย่างสว่างเกินไปใน Huawei P20 Lite ปัญหานี้จะเกิดขึ้นเมื่อใช้ความละเอียดของตัวอย่างเพลงพิเศษบางรายการร่วมกับค่าการซูมเข้าขนาดใหญ่เท่านั้น (Idefce, b/192129158)
- แก้ไขปัญหาที่แฟลชไม่ทำงานในอุปกรณ์บางรุ่นเมื่อตั้งค่าโหมดแฟลชเป็น FLASH_MODE_ON แล้วถ่ายภาพต่อ (Ieb49b)
- แก้ปัญหาที่การแสดงตัวอย่างจะหยุดชั่วคราวเมื่อถ่ายภาพหากมีการเชื่อมโยง VideoCapture, ImageCapture และ Preview (I56197, b/193864120)
- อนุญาตให้ ImageAnalysis เลือกความละเอียดที่มากกว่า 1080p อุปกรณ์ที่ระดับ LIMITED ขึ้นไปรองรับความละเอียดขนาด RECORD สำหรับ ImageAnalysis เมื่อมีการเชื่อมโยงกับ Preview และ ImageCapture ข้อเสียคือความละเอียดที่เลือกสำหรับ ImageCapture จะต้องเป็นความละเอียดขนาด RECORD ด้วย หากต้องการเลือกความละเอียดขนาด RECORD สําหรับ ImageAnalysis ให้สําเร็จ คุณควรตั้งค่าความละเอียดเป้าหมายขนาด RECORD ทั้งใน ImageCapture และ ImageAnalysis ซึ่งบ่งชี้ว่าแอปพลิเคชันเข้าใจข้อเสียเปรียบอย่างชัดเจนและต้องการให้ ImageAnalysis มีความละเอียดมากกว่า ImageCapture ที่มีความละเอียดสูงสุด ดูคำจำกัดความของ RECORD, MAXIMUM และรายละเอียดเพิ่มเติมได้ที่ https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture ขนาด RECORD หมายถึงความละเอียดในการบันทึกสูงสุดที่อุปกรณ์กล้องรองรับตามที่ CamcorderProfile กำหนด ขนาด MAXIMUM หมายถึงความละเอียดเอาต์พุตสูงสุดของอุปกรณ์กล้องสำหรับรูปแบบหรือเป้าหมายนั้นจาก StreamConfigurationMap.getOutputSizes(int) (I1ee97, b/192911449)
- เพิ่มข้อมูล Exif ลงในรูปภาพที่ถ่าย (I01ff0, b/193342619)
- ใน ImageCapture ให้แสดงผล URI ของรูปภาพที่บันทึกไว้หากตำแหน่งที่บันทึกคือไฟล์ (Ib5b49, b/149241379)
- แก้ไขปัญหาที่รูปภาพที่ถ่ายโดยใช้แฟลชมืดในอุปกรณ์หลายรุ่น (I4e510)
เวอร์ชัน 1.1.0-alpha07
21 กรกฎาคม 2021
androidx.camera:camera-camera2:1.1.0-alpha07
, androidx.camera:camera-core:1.1.0-alpha07
และ androidx.camera:camera-lifecycle:1.1.0-alpha07
เผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha07 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา Samsung Galaxy Note 5 ที่กล้องค้างหลังจากถ่ายภาพโดยเปิดแฟลช/อัตโนมัติในที่มืด (If6871)
- แก้ไขปัญหา
YuvToJpegProcessor
EOFException เมื่อเปิดใช้โหมดส่วนขยายและตั้งค่าโหมดImageCapture#CAPTURE_MODE_MAX_QUALITY
(I538bd, b/192017012)
เวอร์ชัน 1.1.0-alpha06
30 มิถุนายน 2021
androidx.camera:camera-camera2:1.1.0-alpha06
, androidx.camera:camera-core:1.1.0-alpha06
และ androidx.camera:camera-lifecycle:1.1.0-alpha06
เผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha06 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- โปรโมต API การชดเชยแสงเวอร์ชันทดลองสําหรับ camera-core (I08ee8)
- เพิ่ม API isFocusMeteringSupported ใน CameraInfo ซึ่งช่วยให้แอปพลิเคชันตรวจสอบได้ว่ากล้องปัจจุบันรองรับ FocusMeteringAction ที่ระบุหรือไม่ (Ib45ae, b/188606490)
- เปิดเผย getResolutionInfo API เพื่อแสดงข้อมูลความละเอียดสำหรับ Preview, ImageCapture และ ImageAnalysis (I2b613, b/188600718)
- โปรโมต API ทดลองต่อไปนี้เป็น API อย่างเป็นทางการ CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). (I2ade2)
- แสดงอินเทอร์เฟซ CameraProvider เพื่อให้สิทธิ์เข้าถึงชุดกล้อง (I1a7b1)
- โปรโมต UseCaseGroup API เวอร์ชันทดลองสําหรับ camera-core, camera-lifecycle และ camera-video เพิ่ม
ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
และViewPort.Builder#setScaleType
สำหรับการปรับแต่งวิวพอร์ต (I7cee8)
เวอร์ชัน 1.1.0-alpha05
2 มิถุนายน 2021
androidx.camera:camera-camera2:1.1.0-alpha05
, androidx.camera:camera-core:1.1.0-alpha05
และ androidx.camera:camera-lifecycle:1.1.0-alpha05
เผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha05 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำชั้นเรียน
Camera2CameraFilter
ออกแล้ว แนะนำให้เลือกกล้องตาม CameraFilter และดึงข้อมูล CameraCharacteristics หรือข้อมูลอื่นๆ ที่เกี่ยวข้องกับ Camera2 ผ่าน Camera2CameraInfo หากจำเป็น (Ib887c) ExperimentalCameraFilter
API ไม่ได้อยู่ในระยะทดลองแล้ว และกลายเป็น API อย่างเป็นทางการ สามารถใช้ได้โดยไม่ต้องมีคำอธิบายประกอบ OptIn (I4bc94)- เพิ่ม API สถานะกล้องที่แสดงผ่าน
CameraInfo#getCameraState()
(Ia86b4) - เพิ่ม API ทดลอง
CameraInfo#getCameraSelector()
ซึ่งแสดงผล CameraSelector ที่ไม่ซ้ำกันสำหรับกล้อง (I77f9f)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ ListenableFuture แสดงผลใน setZoomRatio และ setLinearZoom ไม่เสร็จสมบูรณ์ในอุปกรณ์ Android 11 บางรุ่น (I716d7)
- เพิ่มความเร็วในการสลับกล้องและลดอัตราการเกิดข้อผิดพลาดของอุปกรณ์กล้อง (I34c99)
- แทนที่ ExperimentalUseCaseGroupLifecycle ด้วย ExperimentalUseCaseGroup (I3b2ef, b/159033688)
เวอร์ชัน 1.1.0-alpha04
21 เมษายน 2021
androidx.camera:camera-camera2:1.1.0-alpha04
, androidx.camera:camera-core:1.1.0-alpha04
และ androidx.camera:camera-lifecycle:1.1.0-alpha04
เผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha04 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการรั่วไหลของหน่วยความจำที่เกิดจากหลายเธรดเข้าถึงคอลเล็กชันเดียวกันพร้อมกัน การรั่วไหลของหน่วยความจําอาจทําให้อินสแตนซ์ของ Preview เก็บกิจกรรมหรือข้อมูลโค้ดไว้ (I7b4b8)
- แทนที่คำอธิบายประกอบ
@Experimental
ด้วย@RequiresOptIn
ใน API เวอร์ชันทดลอง สําหรับการเรียก API เวอร์ชันทดลอง ให้ใช้androidx.annotation.OptIn
แทนandroidx.annotation.experimental.UseExperimental
ที่เลิกใช้งานแล้ว (Iff226) - การจับภาพแบบคงที่ซึ่งเปิดแฟลช/อัตโนมัติจะถ่ายภาพที่ซีดบน Samsung Galaxy S7 (I30001)
- เพิ่ม CameraState API ที่แสดงผ่าน CameraInfo (I75392)
เวอร์ชัน 1.1.0-alpha03
24 มีนาคม 2021
androidx.camera:camera-camera2:1.1.0-alpha03
, androidx.camera:camera-core:1.1.0-alpha03
และ androidx.camera:camera-lifecycle:1.1.0-alpha03
เผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha03 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- รูปแบบเอาต์พุต JPEG สำหรับ
ImageCapture#OnImageCapturedCallback
เมื่อเปิดใช้โหมดส่วนขยาย (I0d7b1) - แก้ไขข้อผิดพลาดในการเริ่มต้นในอุปกรณ์ UMIDIGI BISON (I57d9e, b/180818665)
- แก้ไขการแสดงตัวอย่างที่ยืดของ Samsung A3 ใน PreviewView (Iacb30, b/180121821)
เวอร์ชัน 1.1.0-alpha02
24 กุมภาพันธ์ 2021
androidx.camera:camera-camera2:1.1.0-alpha02
, androidx.camera:camera-core:1.1.0-alpha02
และ androidx.camera:camera-lifecycle:1.1.0-alpha02
เผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม API
ProcessCameraProvider.getAvailableCameraInfos()
เพื่อดึงข้อมูลเกี่ยวกับกล้องที่ใช้ได้โดยตรง ซึ่งอาจเป็นกล้องทั้งหมดของอุปกรณ์ หรือกล้องที่เลือกโดยCameraSelector
ที่ระบุไว้ในCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector)
(Ieac08)
การแก้ไขข้อบกพร่อง
- ตอนนี้ CameraX จะพยายามเปิดกล้องโดยบังคับในครั้งแรก ซึ่งอาจส่งผลให้ CameraX แย่งกล้องจากโปรแกรมรับส่งข้อมูลกล้องอื่นๆ เมื่อแอปของ CameraX มีลําดับความสําคัญสูงกว่า (Iab069, b/175820568)
- แก้ไขการทดสอบ Robolectric ที่ไม่สําเร็จเมื่อใช้ setAvailableCamerasLimiter ใน CameraXConfig (Ice307)
- การเปลี่ยนแปลงนี้จะจับข้อยกเว้นเมื่อคิวรูปภาพมีจำนวนถึงขีดสูงสุดใน ImageAnalysis คุณจึงอาจเห็นว่ากรณีการใช้งานอื่นๆ ค้างหรือทำงานช้าแทนที่จะขัดข้อง เช่น การแสดงตัวอย่างค้าง/ทำงานช้า (Ic12da, b/175851631)
- แก้ไข ExtensionsErrorListener เพื่อรายงานข้อผิดพลาดเมื่อมีการเชื่อมโยงเฉพาะ Preview หรือ ImageCapture (I5ae39)
- แก้ไขการถดถอยของประสิทธิภาพ ImageCapture โดยการนําการตรวจสอบตําแหน่งที่จัดเก็บรูปภาพออกก่อนถ่ายภาพ หลังจากทำการเปลี่ยนแปลงนี้ หากปลายทางของบันทึกไม่ถูกต้อง ระบบจะใช้เวลานานขึ้นในการตอบกลับว่าไม่สำเร็จเนื่องจากจะพยายามบันทึกรูปภาพหลังจากถ่ายภาพ (I1fd4e, b/177061560)
- แก้ไขการถดถอยของประสิทธิภาพ ImageCapture ด้วย OutputFileOptions ประเภท "File" (I5164a, b/177061560)
- อัปเดตเอกสารประกอบเพื่อแนะนำไม่ให้ใช้
ProcessCameraProvider.configureInstance(...)
จากโค้ดไลบรารี (Ib8a9f)
เวอร์ชัน 1.1.0-alpha01
27 มกราคม 2021
androidx.camera:camera-camera2:1.1.0-alpha01
, androidx.camera:camera-core:1.1.0-alpha01
และ androidx.camera:camera-lifecycle:1.1.0-alpha01
เผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha01 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- วิธีการแก้ปัญหาสำหรับข้อมูลรูปภาพที่เสียหายเป็นระยะใน JPEG บนกล้องหลังของ SM-G930T (I52001, b/159831206)
- แก้ไขปัญหา
IllegalArgumentException
ที่จะเกิดขึ้นเมื่อขนาดที่รองรับการแสดงตัวอย่างทั้งหมดมีขนาดเล็กกว่า 640x480 และขนาดการแสดงผลมีขนาดใหญ่กว่า 640x480 (I2a63c, b/150506192) - ตอนนี้ทรัพยากรในห้องสมุดที่ไม่มีทรัพยากรสาธารณะที่ประกาศไว้อย่างชัดเจน (เช่น ผ่าน public.xml) จะเป็นแบบส่วนตัวโดยค่าเริ่มต้น (Ia1dcc, b/170882230)
Camera-Camera2, Camera-Core และ Camera-Lifecycle เวอร์ชัน 1.0.2
เวอร์ชัน 1.0.2
29 กันยายน 2021
androidx.camera:camera-camera2:1.0.2
, androidx.camera:camera-core:1.0.2
และ androidx.camera:camera-lifecycle:1.0.2
เผยแพร่แล้ว เวอร์ชัน 1.0.2 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ปัญหาที่รูปภาพที่ถ่ายเบลอในโหมด
MAXIMIZE_QUALITY
(I173a9, b/193823892) - แก้ไขปัญหาที่รูปภาพที่ถ่ายโดยใช้แฟลชมืดในอุปกรณ์หลายรุ่น (I4e510)
Camera-Camera2, Camera-Core และ Camera-Lifecycle เวอร์ชัน 1.0.1
เวอร์ชัน 1.0.1
21 กรกฎาคม 2021
androidx.camera:camera-camera2:1.0.1
, androidx.camera:camera-core:1.0.1
และ androidx.camera:camera-lifecycle:1.0.1
เผยแพร่แล้ว เวอร์ชัน 1.0.1 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
แก้ไขปัญหาที่
ListenableFuture
แสดงในsetZoomRatio
และsetLinearZoom
ดำเนินการไม่เสร็จสมบูรณ์ในอุปกรณ์ Android 11 บางรุ่น (I716d7)แก้ไขปัญหาที่กล้องค้างอยู่ในสถานะปิดกล้องในอุปกรณ์บางเครื่องและทำให้การแสดงตัวอย่างเป็นสีดํา (I34c99)
Camera-Camera2, Camera-Core และ Camera-Lifecycle เวอร์ชัน 1.0.0
เวอร์ชัน 1.0.0
5 พฤษภาคม 2021
androidx.camera:camera-camera2:1.0.0
, androidx.camera:camera-core:1.0.0
และ androidx.camera:camera-lifecycle:1.0.0
เผยแพร่แล้ว เวอร์ชัน 1.0.0 มีคอมมิตเหล่านี้
ฟีเจอร์หลักของ 1.0.0
- CameraX รองรับการแสดงตัวอย่าง การจับภาพ และการวิเคราะห์
- CameraX จัดการวงจรของกล้องภายใน API ที่ใช้งานง่าย
- CameraX มีเป้าหมายที่จะให้บริการเลเยอร์ความเข้ากันได้ซึ่งจะแก้ไขปัญหาต่างๆ มากมายในระบบนิเวศของกล้อง Android
ปัญหาที่ทราบ
เวอร์ชัน 1.0.0-rc05
21 เมษายน 2021
androidx.camera:camera-camera2:1.0.0-rc05
, androidx.camera:camera-core:1.0.0-rc05
และ androidx.camera:camera-lifecycle:1.0.0-rc05
เผยแพร่แล้ว เวอร์ชัน 1.0.0-rc05 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- การจับภาพแบบคงที่ซึ่งเปิดแฟลช/อัตโนมัติจะถ่ายภาพที่ซีดบน Samsung Galaxy S7 (I30001)
เวอร์ชัน 1.0.0-rc04
24 มีนาคม 2021
androidx.camera:camera-camera2:1.0.0-rc04
, androidx.camera:camera-core:1.0.0-rc04
และ androidx.camera:camera-lifecycle:1.0.0-rc04
เผยแพร่แล้ว เวอร์ชัน 1.0.0-rc04 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขการเริ่มต้นไม่สำเร็จในอุปกรณ์ UMIDIGI BISON (I57d9e, b/180818665)
เวอร์ชัน 1.0.0-rc03
24 กุมภาพันธ์ 2021
androidx.camera:camera-camera2:1.0.0-rc03
, androidx.camera:camera-core:1.0.0-rc03
และ androidx.camera:camera-lifecycle:1.0.0-rc03
เผยแพร่แล้ว เวอร์ชัน 1.0.0-rc03 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อผิดพลาดเกี่ยวกับรูปแบบในเอกสารของ
ProcessCameraProvider#getInstance
- แก้ไขการทดสอบ Robolectric ที่ไม่สําเร็จเมื่อใช้ setAvailableCamerasLimiter ใน CameraXConfig
- แก้ไขการถดถอยของประสิทธิภาพ ImageCapture โดยการนําการตรวจสอบตําแหน่งที่จัดเก็บรูปภาพออกก่อนถ่ายภาพ หลังจากทำการเปลี่ยนแปลงนี้ หากปลายทางของบันทึกไม่ถูกต้อง ระบบจะใช้เวลานานขึ้นในการตอบกลับว่าไม่สำเร็จเนื่องจากจะพยายามบันทึกรูปภาพหลังจากถ่ายภาพ
- การเปลี่ยนแปลงนี้จะจับข้อยกเว้นเมื่อคิวรูปภาพมีจำนวนถึงขีดสูงสุดใน ImageAnalysis คุณจึงอาจเห็นว่ากรณีการใช้งานอื่นๆ ค้างหรือทำงานช้าแทนที่จะเกิดข้อขัดข้อง เช่น การแสดงตัวอย่างค้าง/ทำงานช้า
- วิธีการแก้ปัญหาสำหรับข้อมูลรูปภาพที่เสียหายเป็นระยะใน JPEG บนกล้องหลังของ SM-G930T (I52001, b/159831206)
- การเปลี่ยนแปลงนี้จะจับข้อยกเว้นเมื่อคิวรูปภาพมีจำนวนถึงขีดสูงสุดใน ImageAnalysis คุณจึงอาจเห็นว่ากรณีการใช้งานอื่นๆ ค้างหรือทำงานช้าแทนที่จะเกิดข้อขัดข้อง เช่น การแสดงตัวอย่างค้าง/ทำงานช้า (Ic12da, b/175851631)
- แก้ไขการทดสอบ Robolectric ที่ไม่สําเร็จเมื่อใช้ setAvailableCamerasLimiter ใน CameraXConfig (Ice307)
- แก้ไขการถดถอยของประสิทธิภาพ ImageCapture โดยการนําการตรวจสอบตําแหน่งที่จัดเก็บรูปภาพออกก่อนถ่ายภาพ หลังจากทำการเปลี่ยนแปลงนี้ หากปลายทางของบันทึกไม่ถูกต้อง ระบบจะใช้เวลานานขึ้นในการตอบกลับว่าไม่สำเร็จเนื่องจากจะพยายามบันทึกรูปภาพหลังจากถ่ายภาพ (I1fd4e, b/177061560)
- แก้ไขการถดถอยของประสิทธิภาพ ImageCapture ด้วย OutputFileOptions ประเภท "File" (I5164a, b/177061560)
เวอร์ชัน 1.0.0-rc02
27 มกราคม 2021
androidx.camera:camera-camera2:1.0.0-rc02
, androidx.camera:camera-core:1.0.0-rc02
และ androidx.camera:camera-lifecycle:1.0.0-rc02
เผยแพร่แล้ว เวอร์ชัน 1.0.0-rc02 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา IllegalArgumentException ที่จะเกิดขึ้นเมื่อขนาดทั้งหมดที่รองรับการแสดงตัวอย่างมีขนาดเล็กกว่า 640x480 และขนาดการแสดงผลใหญ่กว่า 640x480 (b/150506192)
จำกัดจำนวนครั้งที่พยายามเปิดกล้องอีกครั้ง ขณะพยายามกู้คืนจากปัญหาบางอย่างเมื่อเปิดกล้อง CameraX จะไม่พยายามเปิดกล้องอีกครั้งอย่างไม่มีกำหนดอีกต่อไป แต่ระบบจะหยุดหลังจากพยายาม 10 วินาทีI435d2
แก้ไขปัญหา
IllegalArgumentException
ที่จะเกิดขึ้นเมื่อขนาดที่รองรับการแสดงตัวอย่างทั้งหมดมีขนาดเล็กกว่า 640x480 และขนาดการแสดงผลมีขนาดใหญ่กว่า 640x480 (I2a63c, b/150506192)
เวอร์ชัน 1.0.0-rc01
16 ธันวาคม 2020
androidx.camera:camera-camera2:1.0.0-rc01
, androidx.camera:camera-core:1.0.0-rc01
และ androidx.camera:camera-lifecycle:1.0.0-rc01
เผยแพร่แล้ว เวอร์ชัน 1.0.0-rc01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยน CameraFilter และ Camera2Filter ให้รับ CameraInfo (I6883d)
- เพิ่มคลาส Camera2CameraControl เวอร์ชันทดลองเพื่ออนุญาตให้ทํางานร่วมกับ Camera2 API แบบไดนามิก (I45cf3)
- เปลี่ยนชื่อ Camera2CameraInfo#fromCameraInfo เป็น #from (Ia2bd6)
- เพิ่ม API setAvailableCamerasLimiter เวอร์ชันทดลองลงใน CameraXConfig เพื่อช่วยให้แอปเพิ่มประสิทธิภาพเวลาในการตอบสนองของอินทิอลไลเซชันได้ด้วยการหลีกเลี่ยงการอินทิอลไลเซชันกล้องที่ไม่ได้ใช้ (I6cf88)
- เพิ่มเมธอดทดลอง
CameraXConfig.Builder#setMinimumLoggingLevel()
เพื่ออนุญาตให้ตั้งค่าระดับการบันทึกขั้นต่ำสำหรับบันทึกของ CameraX หากไม่ได้ตั้งค่าไว้ ระบบจะใช้Log#DEBUG
เป็นค่าเริ่มต้น (Ic3245)
การแก้ไขข้อบกพร่อง
- แก้ปัญหาข้อมูลรูปภาพที่เสียหายเป็นระยะในไฟล์ JPEG บนกล้องหลังของ SM-G930V (I5aca5, b/159831206)
- แก้ไขปัญหาที่การถ่ายภาพไม่แสดงผลเมื่อแฟลชเปิดอยู่เสมอ/เปิดอยู่ และสภาพแวดล้อมมืดในอุปกรณ์ Samsung SM-A716 (If98b2, b/172036589)
- แก้ไขปัญหาที่หยุดการแสดงตัวอย่างไม่ได้ด้วยการเรียกใช้
Preview.setSurfaceProvider(null)
(I3ac18) - แก้ปัญหาการวางแนวเมื่อจับภาพ 4:3 ในอุปกรณ์บางรุ่น (I0e3fb, b/171492111)
กล้อง Camera2, Core และ Lifecycle เวอร์ชัน 1.0.0-beta12
11 พฤศจิกายน 2020
androidx.camera:camera-camera2:1.0.0-beta12
, androidx.camera:camera-core:1.0.0-beta12
และ androidx.camera:camera-lifecycle:1.0.0-beta12
เผยแพร่แล้ว เวอร์ชัน 1.0.0-beta12 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ปิดใช้แฟลชอัตโนมัติในอุปกรณ์ Samsung A3 เพื่อแก้ไขปัญหาข้อขัดข้องเมื่อถ่ายภาพด้วยโหมด AE แฟลชอัตโนมัติในอุปกรณ์ Samsung A3 (Ia5fe3, b/157535165)
- แก้ไขปัญหาที่ภาพตัวอย่างถูกยืดในอุปกรณ์ Nexus 4 ที่ใช้ Android L (API ระดับ 21 และ 22) (I4d407, b/158749159)
- การใช้งาน
OnImageCapturedCallback#onCaptureSuccess
คลาสพื้นฐานจะไม่ปิดรูปภาพอีกต่อไป การดำเนินการนี้มีไว้เพื่อป้องกันไม่ให้นักพัฒนาแอปพบลักษณะการทำงานที่ไม่คาดคิด นักพัฒนาแอปไม่ควรใช้ super.onCaptureSuccess เพื่อปิดรูปภาพ (Ifbf9c) - เราได้เลิกใช้งานตัวแปร androidx ของคำอธิบายประกอบเวอร์ชันทดลองเพื่อให้สอดคล้องกับ Kotlin เราได้แทนที่แอตทริบิวต์นี้ด้วยแอตทริบิวต์ RequiresOptIn และอัปเดตโปรแกรมตรวจสอบโค้ดที่ทำงานกับ Java ให้รองรับทั้งแอตทริบิวต์ Kotlin ใหม่และตัวแปร androidx ใหม่ (I52495, b/151331381)
Camera-Camera2 เวอร์ชัน 1.0.0-beta11
14 ตุลาคม 2020
androidx.camera:camera-camera2:1.0.0-beta11
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta11 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- รองรับ Android 11
CONTROL_ZOOM_RATIO
API สําหรับการซูมในอุปกรณ์ Android 11 ขึ้นไปซึ่งมีCONTROL_ZOOM_RATIO_RANGE
ที่ถูกต้อง (I62cc6)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา NumberFormatException ที่เกิดขึ้นเมื่อรหัสกล้องไม่ใช่รหัสกล้องที่เป็นจำนวนเต็ม (Ib2228)
- ปรับปรุงเวลาในการตอบสนองของการสร้างค่าเริ่มต้นและ bindToLifecycle (I61dc5) ของ CameraX
- การสร้าง UseCase ไม่จำเป็นต้องมีการเริ่มต้นใช้งาน CameraX ให้เสร็จสมบูรณ์ การกำหนดค่าเฉพาะการใช้งานทั้งหมดจะตั้งค่าใน UseCase เมื่อแนบกับอินสแตนซ์ Camera ซึ่งสำหรับ API สาธารณะคือ
ProcessCameraProvider.bindToLifecycle()
(Ia5411) <UseCase>.getTargetRotation()
จะแสดงผลเป็นSurface.ROTATION_0
หากเรียกใช้ก่อนที่จะแนบกับอินสแตนซ์ Camera เว้นแต่จะมีการตั้งค่า targetRotation ใน Builder หรือ UseCase (I80fcd)
Camera-Core เวอร์ชัน 1.0.0-beta11
14 ตุลาคม 2020
androidx.camera:camera-core:1.0.0-beta11
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta11 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- รองรับ Android 11 CONTROL_ZOOM_RATIO
API สำหรับการซูมในอุปกรณ์ Android 11 ขึ้นไปซึ่งมี CONTROL_ZOOM_RATIO_RANGE
ที่ถูกต้อง (I62cc6)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา NumberFormatException ที่เกิดขึ้นเมื่อรหัสกล้องไม่ใช่รหัสกล้องที่เป็นจำนวนเต็ม (Ib2228)
- การสร้าง UseCase ไม่จำเป็นต้องเริ่มต้นใช้งาน CameraX ให้เสร็จสมบูรณ์ การกำหนดค่าเฉพาะการใช้งานทั้งหมดจะตั้งค่าใน UseCase เมื่อแนบกับอินสแตนซ์ Camera ซึ่งสำหรับ API สาธารณะคือ
ProcessCameraProvider.bindToLifecycle()
(Ia5411) <UseCase>.getTargetRotation()
จะแสดงผลเป็นSurface.ROTATION_0
หากเรียกใช้ก่อนที่จะแนบกับอินสแตนซ์ Camera เว้นแต่จะมีการตั้งค่า targetRotation ใน Builder หรือ UseCase (I80fcd)
Camera-Core เวอร์ชัน 1.0.0-beta10
23 กันยายน 2020
androidx.camera:camera-core:1.0.0-beta10
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta10 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องในการตรวจสอบปลายทางของไฟล์ที่จะบันทึกสำหรับการจับภาพ (I8c565, b/167697553)
Camera-Camera2 เวอร์ชัน 1.0.0-beta10
23 กันยายน 2020
androidx.camera:camera-camera2:1.0.0-beta10
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta10 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- รุ่นที่รองรับ Camera-Core 1.0.0-beta10
Camera-Camera2 เวอร์ชัน 1.0.0-beta09
16 กันยายน 2020
androidx.camera:camera-camera2:1.0.0-beta09
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta09 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- Camera2CameraInfo จะใช้อินสแตนซ์ CameraInfo เมื่อสร้างเพื่อดึงข้อมูลที่เกี่ยวข้องกับ Camera2 แทนที่จะระบุเมธอดแบบคงที่ (I5b844)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาสัดส่วนการแสดงผลเป้าหมายในอุปกรณ์แท็บเล็ต ควรเลือกขนาด 16:9 เมื่อตั้งค่าสัดส่วนการแสดงผลเป้าหมายเป็น
AspectRatio.RATIO_16_9
(Ib7fcf, b/151969438) - แสดง
InitializationException
เพื่อให้แอปจัดการ AssertionError ที่เกิดขึ้นเมื่อสร้าง CameraCharacteristics ได้อย่างราบรื่น (I89c8c, b/160524721) - เพิ่มอินเทอร์เฟซเวอร์ชันทดลองสําหรับ ExposureCompensation (If96c7)
Camera-Core เวอร์ชัน 1.0.0-beta09
16 กันยายน 2020
androidx.camera:camera-core:1.0.0-beta09
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta09 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- แก้ไขข้อบกพร่องที่ทําเครื่องหมายวิวพอร์ตเป็น "ไม่ใช่ Null" ใน UseCaseGroup นักพัฒนาแอปควรสร้างวิวพอร์ตได้โดยไม่ต้องตั้งค่าวิวพอร์ต (Ie3d2e)
- เพิ่มอินเทอร์เฟซเวอร์ชันทดลองสำหรับ
ExposureCompensation
(If96c7) - อนุญาตให้หมุนเป้าหมายแบบกำหนดเองสำหรับการแสดงตัวอย่าง ระบบจะคํานวณข้อมูลการเปลี่ยนรูปแบบและแสดงผลต่อผู้ใช้ทันทีผ่าน
TranformationInfoListener
callback ใหม่ (I21470)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่แฟลชในอุปกรณ์บางเครื่องปิดไม่ได้ ซึ่งเกิดขึ้นเมื่อตั้งค่าโหมดแฟลชเป็น
FLASH_MODE_ON
เพื่อถ่ายภาพ และเปลี่ยนเป็นFLASH_MODE_OFF
เมื่อแฟลชทำงาน อาการนี้เหมือนกับเปิดใช้โหมดไฟฉาย (Ib4451, b/162568128) - บังคับ PreviewView ให้ใช้ TextureView หากเปิดใช้เอฟเฟกต์ส่วนขยายและการติดตั้งใช้งานไลบรารีของผู้ให้บริการต้องดำเนินการพิเศษบนพื้นผิวเอาต์พุต (I0c3cc)
- แก้ไขข้อบกพร่องเกี่ยวกับกิจกรรม/Framgent เมื่อมีการส่งผ่านบริบทของกิจกรรม/Framgent ไปยัง
ProcessCameraProvider.getInstance(Context)
ปัญหาที่ทราบ
- เมื่อตั้งค่า ViewPort สี่เหลี่ยมผืนผ้าครอบตัดของ ImageCapture อาจไม่ถูกต้องในอุปกรณ์ที่หมุนบัฟเฟอร์รูปภาพใน HAL เราจะแก้ไขปัญหานี้ในรุ่นถัดไป
Camera-Camera2 เวอร์ชัน 1.0.0-beta08
19 สิงหาคม 2020
androidx.camera:camera-camera2:1.0.0-beta08
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta08 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่มประสิทธิภาพ bindToLifecycle ให้ทำงานได้อย่างรวดเร็วในเธรดหลัก (I1d57e)
- DisplayOrientedMeteringPointFactory จะรับอินสแตนซ์ CameraInfo แทน CameraSelector เพื่อให้มีการแมปโดยตรงกับกล้องที่โรงงานจะสร้างจุด คลาสทั้งหมดที่ใช้ DisplayOrientedMeteringPointFactory จะรับอินสแตนซ์ CameraInfo แทน CameraSelector ด้วย (I400c1)
- แก้ไขปัญหาการจัดกลุ่มขนาดสัดส่วนการแสดงผลความละเอียดอัตโนมัติที่เลือกขนาด 16:9 mod16 (864x480) เมื่อการตั้งค่าความละเอียดเป้าหมายคือ 2016x1080 และมีอีกขนาด 1920x1080 16:9 ที่รองรับ (I53167, b/159363774)
- แก้ไขปัญหา CameraControl ที่ใช้งานไม่ได้เนื่องจาก Race Condition (I2279f, b/152333890, b/160714166)
Camera-Core เวอร์ชัน 1.0.0-beta08
19 สิงหาคม 2020
androidx.camera:camera-core:1.0.0-beta08
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta08 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
DisplayOrientedMeteringPointFactory
จะรับอินสแตนซ์CameraInfo
แทนCameraSelector
เพื่อให้มีการแมปโดยตรงกับกล้องที่โรงงานจะสร้างคะแนน คลาสทั้งหมดที่ใช้DisplayOrientedMeteringPointFactory
จะรับอินสแตนซ์CameraInfo
แทนCameraSelector
ด้วย (I400c1)
การแก้ไขข้อบกพร่อง
- สำหรับการจับภาพ ให้เขียนทับ Flag พลิกแนวนอนในข้อมูลเมตาตามทิศทางของกล้อง (I28499)
- การเริ่มต้นจะไม่ขัดข้องอีกต่อไปเมื่อใช้ Context ที่ไม่ให้ออบเจ็กต์แอปพลิเคชันจาก
Context.getApplicationContext()
(I3d3c9, b/160817073)
Camera-Camera2 เวอร์ชัน 1.0.0-beta07
22 กรกฎาคม 2020
androidx.camera:camera-camera2:1.0.0-beta07
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta07 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ภาพตัวอย่างยืดออกในอุปกรณ์รุ่นเดิมของ Android 5.0 (I0c03a)
- ยกเว้นขนาด JPEG ที่รองรับบางขนาดที่จะทำให้เกิดปัญหา WYSIWYG ในอุปกรณ์บางรุ่น (Ib5128)
Camera-Core เวอร์ชัน 1.0.0-beta07
22 กรกฎาคม 2020
androidx.camera:camera-core:1.0.0-beta07
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta07 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ผสานสไตล์ฟิต
FIT_CENTER
,FIT_START
และFIT_END
เข้ากับFIT
FIT
หมายความว่า Rect ครอบตัดที่แสดงผลจะเป็น Rect เซ็นเซอร์ที่ใหญ่ที่สุดที่เป็นไปได้ (Ia73c3) - วิวพอร์ตจะกำหนดค่าสี่เหลี่ยมผืนผ้าครอบตัดของตัวอย่าง ผู้ใช้ปลายทางควรเห็นเฉพาะพื้นที่ที่สี่เหลี่ยมผืนผ้าครอบตัดครอบคลุม (I142a4)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ภาพตัวอย่างยืดออกในอุปกรณ์รุ่นเดิมของ Android 5.0 (I0c03a)
- แก้ไขข้อยกเว้น
ConcurrentModificationException
เมื่อยกเลิกการเชื่อมโยง Use Case (I371c0)
Camera-Camera2 เวอร์ชัน 1.0.0-beta06
24 มิถุนายน 2020
androidx.camera:camera-camera2:1.0.0-beta06
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta06 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มอินเทอร์เฟซเวอร์ชันทดลองสำหรับการกรองกล้องตามรหัสกล้องและ CameraCharacteristics (I28f61)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ startFocusAndMetering จับโฟกัสใน Samsung Galaxy S7 ไม่สำเร็จ (If3be7, b/159039233)
- แก้ไขกล้องปิดไม่ได้หลังจากออกจากแอป (I7a7b3)
- แก้ไขการสลับกล้องซ้ำๆ ทำให้การแสดงตัวอย่างหยุดชะงักเมื่อใช้การใช้งาน PreviewView ของ SurfaceView (I920ce)
CameraControl#startFocusAndMetering
จะดำเนินการไม่สำเร็จหาก MeteringPoint ที่ระบุไม่สามารถสร้างสี่เหลี่ยมผืนผ้าการวัดผลที่ถูกต้อง (Id53ce)
Camera-Core เวอร์ชัน 1.0.0-beta06
24 มิถุนายน 2020
androidx.camera:camera-core:1.0.0-beta06
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta06 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มอินเทอร์เฟซเวอร์ชันทดลองสำหรับการกรองกล้องตามรหัสกล้องและ CameraCharacteristics (I28f61)
การแก้ไขข้อบกพร่อง
- ตอนนี้คุณกำหนดค่า CameraX ได้ด้วย
ProcessCameraProvider#configureInstance()
ก่อนการเรียกใช้ProcessCameraProvider#getInstance()
ซึ่งช่วยให้ปรับแต่งCameraXConfig
ได้โดยไม่ต้องติดตั้งใช้งานCameraXConfig.Provider
ในคลาสแอปพลิเคชันของแอป (Ia1a8d) CameraControl#startFocusAndMetering
จะดำเนินการไม่สำเร็จหาก MeteringPoint ที่ระบุไม่สามารถสร้างสี่เหลี่ยมผืนผ้าการวัดผลที่ถูกต้อง (Id53ce)
Camera-Camera2 เวอร์ชัน 1.0.0-beta05
10 มิถุนายน 2020
androidx.camera:camera-camera2:1.0.0-beta05
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta05 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องเมื่อแอปเริ่มต้นขึ้นขณะเริ่มต้น CameraX ขณะที่โทรศัพท์อยู่ในโหมดห้ามรบกวน
InitializationException
มีCameraUnavailableException
ที่จะตั้งค่าเป็นListenableFuture
ของผลลัพธ์การเริ่มต้นแทนที่จะขัดข้อง (I9909a, b/149413835) - แก้ไขข้อขัดข้องเมื่อเรียกใช้
startFocusAndMetering
ในอุปกรณ์ที่CONTROL_AF_STATE
เป็นค่าว่าง (Ife55e, b/157084254)
Camera-Core เวอร์ชัน 1.0.0-beta05
10 มิถุนายน 2020
androidx.camera:camera-core:1.0.0-beta05
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta05 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- แก้ไขข้อขัดข้องเมื่อแอปเริ่มต้นขึ้นขณะเริ่มต้น CameraX ขณะที่โทรศัพท์อยู่ในโหมดห้ามรบกวน
InitializationException
ที่มีCameraUnavailableException
จะตั้งค่าเป็นListenableFuture
ของผลลัพธ์การเริ่มต้นแทนที่จะทำให้แอปพลิเคชันขัดข้อง (I9909a, b/149413835)
การแก้ไขข้อบกพร่อง
- อัปเดต Javadoc ของ
setTargetResolution
และsetTargetRotation
(Iae16f)
Camera-Camera2 เวอร์ชัน 1.0.0-beta04
27 พฤษภาคม 2020
androidx.camera:camera-camera2:1.0.0-beta04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta04 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- อนุญาตให้แอปพลิเคชันตั้งค่าพารามิเตอร์คำขอการจับภาพ camera2 ผ่าน
Camera2Interop
โดยไม่ทำให้เกิดการขัดข้อง โปรดทราบว่าหากมีปัญหาเกิดขึ้นเนื่องจากการลบล้างพารามิเตอร์ เราไม่รับประกันความเสถียรและลักษณะการทำงานเมื่อลบล้างพารามิเตอร์โดยใช้ Camera2Interop (Ibe5a1, b/149103700) - การเริ่มต้นอัตโนมัติจะได้รับการแก้ไขเมื่อใช้แอปในอุปกรณ์ที่ใช้ภาษาจำลอง (I3bef3, b/154767663)
- แปลงบันทึกข้อผิดพลาดที่เกี่ยวข้องกับ Use Case ที่แยกออกเป็นบันทึกการแก้ไขข้อบกพร่องใน Camera2CameraImpl (I1a565, b/154422490)
- แก้ปัญหาที่บางครั้งรูปภาพที่ถ่ายออกมามืดเกินไปแม้ว่าจะมีการใช้แฟลชก็ตาม (I5d9fa, b/149729613)
- แก้ไขข้อบกพร่องที่บัฟเฟอร์ใน
ImageProxy
จากImageCapture
ไม่ได้กรอกลับ (I0c455, b/153249512) - แก้ไขปัญหาการเชื่อมโยง ImageCapture เท่านั้น (1) ถ่ายภาพด้วย MAX_QUALITY ไม่สำเร็จ (2) สร้างรูปภาพคุณภาพต่ำเนื่องจากการเปิดรับแสงอัตโนมัติไม่ทำงาน (I17782, b/145326998)
- ปรับปรุงความน่าเชื่อถือของการเปิดกล้องอีกครั้งเมื่อ CameraX ถูกตัดการเชื่อมต่อโดยกระบวนการอื่นหรือโค้ดพาธที่ลักลอบใช้กล้อง (I1fbc3, b/153714651)
Camera-Core เวอร์ชัน 1.0.0-beta04
27 พฤษภาคม 2020
androidx.camera:camera-core:1.0.0-beta04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta04 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม API เวอร์ชันทดลอง
CameraXConfig.Builder#setSchedulerHandler()
สำหรับการตั้งค่าตัวแฮนเดิลที่ใช้ภายในโดยสแต็กกล้อง CameraX API ใหม่นี้และCameraXConfig.Builder#setCameraExecutor()
ควรช่วยให้คุณควบคุมเธรดที่ใช้โดยสแต็กกล้อง CameraX ได้อย่างเต็มที่ (I7bf32, b/121160431)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องใน
ImageAnalysis
ที่เข้าถึงImageProxy
หลังจากที่ปิดImageReaderProxy
แล้ว นอกจากนี้Analyzer
จะต้องปิดImageProxy
ทั้งหมดที่ได้รับก่อนImageReaderProxy
จะปิดได้ (I4b299, b/145956416, b/154155377, b/156357269) - นําพารามิเตอร์
CameraInfo
ออกจากPreviewView#createSurfaceProvider()
แล้ว ตอนนี้PreviewView
จะดึงข้อมูลนี้จากSurfaceRequest
ภายใน (If18f0, b/154652477) - การเริ่มต้นอัตโนมัติจะได้รับการแก้ไขเมื่อใช้แอปในอุปกรณ์ที่ใช้ภาษาจำลอง (I3bef3, b/154767663)
- แก้ปัญหาที่บางครั้งรูปภาพที่ถ่ายออกมามืดเกินไปแม้ว่าจะมีการใช้แฟลชก็ตาม (I5d9fa, b/149729613)
- แก้ไขปัญหาเกี่ยวกับ
ImageAnalysis
ที่การเรียก setAnalyzer/clearAnalyzer หลายครั้งส่งผลให้เครื่องมือวิเคราะห์ไม่ได้รับรูปภาพที่จะวิเคราะห์ (I6169f, b/151605317, b/153514544) - แก้ไขข้อบกพร่องที่บัฟเฟอร์ใน
ImageProxy
จากImageCapture
ไม่ได้กรอกลับ (I0c455, b/153249512) - แก้ไขปัญหาที่ระบบไม่ได้เลือกกล้องตัวแรกในรายการที่รองรับจาก
CameraManager
มาใช้เสมอไป (I4c624, b/153418028) - แก้ไขข้อขัดข้องที่เกิดขึ้นเป็นพักๆ ซึ่งเกิดจากการตั้งค่า
Preview.SurfaceProvider
ที่ไม่ปล่อยพื้นผิวที่ขอก่อนหน้านี้“java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”
(I8e4e7, b/155936225)
Camera-Camera2 เวอร์ชัน 1.0.0-beta03
15 เมษายน 2020
androidx.camera:camera-camera2:1.0.0-beta03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta03 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- การแก้ไขเพื่อรองรับการเปิดตัว
camera-core
Camera-Core เวอร์ชัน 1.0.0-beta03
15 เมษายน 2020
androidx.camera:camera-core:1.0.0-beta03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta03 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขการถดถอยจาก beta03 ที่การเรียก
bindToLifecycle()
ที่มีUseCase
เป็น 0 จะทำให้เกิดข้อยกเว้น ซึ่งจะช่วยป้องกันไม่ให้ดึงข้อมูลCamera
โดยไม่เชื่อมโยงUseCase
Camera-Camera2 เวอร์ชัน 1.0.0-beta02
1 เมษายน 2020
androidx.camera:camera-camera2:1.0.0-beta02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta02 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไข
ImageInfo.getRotationDegrees()
จากImageProxy
ที่ImageCapture
สร้างขึ้นเพื่อให้ตรงกับค่าการหมุนการวางแนว EXIF (Id4281, b/150802561) - คุณไม่จำเป็นต้องจัดเรียงอย่างชัดแจ้งของ Dependency ของ CameraX ภายใน
build.gradle
เพื่อใช้การติดตั้งใช้งาน CameraX/Camera2 เริ่มต้นอีกต่อไป ในกรณีที่จำเป็นต้องประกาศ Dependency ที่เข้มงวด ตอนนี้คุณรวม Dependency ทั้งหมดของ CameraX ไว้ในไฟล์บิลด์ได้แล้ว (I46e88) - แก้ไขปัญหา
IllegalArgumentException
ที่เกิดขึ้นในอุปกรณ์ที่มีขนาดการแสดงผลน้อยกว่า 640x480 (Ife3f2, b/150506192) - แก้ไข
bindToLifecycle
เพื่อให้แก้ไข UseCase เฉพาะในกรณีที่มีการเชื่อมโยงสำเร็จเท่านั้น ก่อนหน้านี้เมื่อเรียกใช้bindToLifecycle
เพื่อคํานวณความละเอียด ระบบจะอัปเดต UseCase ตอนนี้ไม่จําเป็นต้องอัปเดต UseCase เพื่อทําการคํานวณอีกต่อไป (I78d9e)
Camera-Core เวอร์ชัน 1.0.0-beta02
1 เมษายน 2020
androidx.camera:camera-core:1.0.0-beta02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta02 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไข
ImageInfo.getRotationDegrees()
จากImageProxy
ที่ImageCapture
สร้างขึ้นเพื่อให้ตรงกับค่าการหมุนการวางแนว EXIF (Id4281, b/150802561) - แก้ไข
bindToLifecycle
เพื่อให้แก้ไข UseCase เฉพาะในกรณีที่มีการเชื่อมโยงสำเร็จเท่านั้น ก่อนหน้านี้เมื่อเรียกใช้bindToLifecycle
เพื่อคํานวณความละเอียด ระบบจะอัปเดต UseCase ตอนนี้ไม่จําเป็นต้องอัปเดต UseCase เพื่อทําการคํานวณอีกต่อไป (I78d9e) - แก้ไขปัญหาที่เซสชันการจับภาพของ Use Case
Preview
ไม่ได้รับการอัปเดตเมื่อแพลตฟอร์มแสดงตัวอย่างมีการเปลี่ยนแปลงหลังจากเรียกใช้Preview.setSurfaceProvider()
มากกว่า 1 ครั้ง
Camera-Camera2 เวอร์ชัน 1.0.0-beta01
26 กุมภาพันธ์ 2020
androidx.camera:camera-camera2:1.0.0-beta01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta01 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เปลี่ยนชื่อ
SurfaceRequest.setSurface(Surface)
เป็นSurfaceRequest.provideSurface(Surface)
และSurfaceRequest.setWillNotComplete()
เป็นSurfaceRequest.willNotProvideSurface()
(I224fe) - แก้ปัญหาสัดส่วนภาพของรูปภาพที่บันทึกไม่ถูกต้องหลังจากเปลี่ยนค่าการหมุนเป้าหมายโดยใช้
ImageCapture.setTargetRotation()
(I474ea, b/148763432) - แก้ไขการเริ่มต้นตัวแปรแอปที่เปิดใช้ ProGuard โดยการคง Flag ที่กำหนดผู้ให้บริการ
CameraXConfig
เริ่มต้นไว้ (I2d6c1)
Camera-Core เวอร์ชัน 1.0.0-beta01
26 กุมภาพันธ์ 2020
androidx.camera:camera-core:1.0.0-beta01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- แทนที่
ListenableFuture
ในSurfaceRequest.provideSurface()
ด้วยExecutor
และCallback
วิธีนี้ทำให้ API ทำงานได้ง่ายขึ้นโดยไม่ต้องจัดการข้อยกเว้นในprovideSurface()
อีกต่อไป และบังคับให้ยกเลิกการเรียกกลับprovideSurface()
ไม่ได้ การดำเนินการนี้เป็นการป้องกันการขัดข้องในอุปกรณ์รุ่นเก่าที่เกิดจากการเปิดตัวแพลตฟอร์มก่อนเวลาอันควร ตอนนี้ระบบจะใช้ออบเจ็กต์SurfaceRequest.Result
เพื่อติดตามวิธีที่SurfaceRequest
ใช้Surface
ที่ระบุ (I7854b) - เปลี่ยนชื่อ
SurfaceRequest.setSurface(Surface)
เป็นSurfaceRequest.provideSurface(Surface)
และSurfaceRequest.setWillNotComplete()
เป็นSurfaceRequest.willNotProvideSurface()
(I224fe)
การแก้ไขข้อบกพร่อง
- แก้ปัญหาสัดส่วนภาพของรูปภาพที่บันทึกไม่ถูกต้องหลังจากเปลี่ยนค่าการหมุนเป้าหมายโดยใช้
ImageCapture.setTargetRotation()
(I474ea, b/148763432) - แก้ไขการเริ่มต้นตัวแปรแอปที่เปิดใช้ ProGuard โดยการคง Flag ที่กำหนดผู้ให้บริการ
CameraXConfig
เริ่มต้นไว้ (I2d6c1) - อัปเดตเอกสารประกอบสําหรับ API โหมดแฟลชเพื่อระบุค่าที่เป็นไปได้ (I4a3ec)
Camera-Camera2 เวอร์ชัน 1.0.0-alpha10
10 กุมภาพันธ์ 2020
androidx.camera:camera-camera2:1.0.0-alpha10
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha10 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ปรับปรุงความเสถียรในอุปกรณ์
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
โดยตรวจสอบว่าSurface
จะเก็บไว้เฉพาะในช่วงที่ Camera2 ใช้เท่านั้น (I9dac2) - แก้ไขปัญหาตัวอย่างที่แสงน้อยในอุปกรณ์รุ่นเดิมด้วยการปรับ
CONTROL_AE_TARGET_FPS_RANGE
อย่างเหมาะสม (1224638)
Camera-Core เวอร์ชัน 1.0.0-alpha10
10 กุมภาพันธ์ 2020
androidx.camera:camera-core:1.0.0-alpha10
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha10 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- อัปเดต
ImageCapture
เพื่ออนุญาตให้บันทึกรูปภาพไปยังUri
และOutputStream
รวมวิธีการtakePicture
ที่โอเวอร์โหลดไว้ด้วยกัน อัปเดตแอปทดสอบให้ใช้Uri
เป็นตัวอย่างมาตรฐาน (Ia3bec) - เปลี่ยนชื่อ
Preview.PreviewSurfaceProvider
เป็นPreview.SurfaceProvider
แล้วSurfaceProvider
ไม่ได้กำหนดให้นักพัฒนาแอปต้องสร้างListenableFuture
ของตนเองอีกต่อไป และตอนนี้การระบุSurface
ทำได้ผ่านออบเจ็กต์SurfaceRequest
ใหม่ ระบบได้นำเมธอดPreview.getPreviewSurfaceProvider()
ออกเนื่องจากมีความเสี่ยงที่จะนำไปใช้ในทางที่ผิดเมื่อใช้Preview
ร่วมกับคลาสอื่นๆ เช่นPreviewView
(I20105) - เพิ่ม
getTargetRotation()
และgetTargetName()
ไปยังPreview
แล้ว (Iceee7) - เพิ่ม
getTargetRotation()
,getBackpressureStrategy()
และgetImageQueueDepth()
ในImageAnalysis
แล้ว (I9d6d9) - เพิ่ม
getTargetRotation()
และgetCaptureMode()
ในImageCapture()
(I5bc17) - ตอนนี้อาร์กิวเมนต์
ImageCaptureException
รายการเดียวได้เข้ามาแทนที่อาร์กิวเมนต์ImageCapture.OnImageSavedCallback.onError()
และImageCapture.OnImageCapturedCallback.onError()
ก่อนหน้านี้แล้ว ซึ่งยังคงมีข้อมูลทั้งหมดที่ส่งก่อนหน้านี้ - ระบบได้นำอาร์กิวเมนต์ไฟล์ที่ส่งใน
ImageCapture.OnImageSavedCallback.onImageSaved()
ก่อนหน้านี้ออกแล้ว (I750d2) - ตอนนี้ชั้นเรียน
Preview
และImageCapture
มีสถานะเป็น "ขั้นสุดท้าย" แล้ว (I2500b) - API ได้รับการอัปเดต โดยมีเมธอด
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
และgetLinearZoom()
สำหรับการผสานCameraInfo
เข้ากับgetZoomState()
ซึ่งจะแสดงผลอินสแตนซ์ZoomState
(Ib19fe) - นําช่อง API
OPTION_TARGET_CLASS
และOPTION_TARGET_NAME
ออกจากCameraXConfig
เนื่องจากมีไว้สําหรับใช้กับคลังภายในเท่านั้น นําตัวสร้างของCameraXConfig.Builder
ออกแล้ว (I96912) - นำข้อกำหนดที่ว่าแอปต้องขยาย
Application
เพื่อเริ่มต้นใช้งาน CameraX ออก ตอนนี้ CameraX จะเริ่มต้นด้วยการกำหนดค่า Camera2 เริ่มต้น ตราบใดที่มีอาร์ติแฟกต์camera-camera2
รวมอยู่ในbuild.gradle
ของแอปพลิเคชัน (I58ff5) (b/146923574)
Camera-Camera2 เวอร์ชัน 1.0.0-alpha09
22 มกราคม 2020
androidx.camera:camera-camera2:1.0.0-alpha09
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha09 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
เพิ่มเส้นทางการทำงานร่วมกันของ Camera2 สำหรับการดึงรหัสกล้อง Camera2 คุณดึงข้อมูลรหัสกล้องจาก
CameraInfo
ได้โดยใช้Camera2CameraInfo.extractCameraId()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
คลาส
Camera2CameraInfo
ต้องใช้ExperimentalCamera2Interop
markerClass
Camera-Core เวอร์ชัน 1.0.0-alpha09
22 มกราคม 2020
androidx.camera:camera-core:1.0.0-alpha09
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha09 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- พารามิเตอร์
SurfaceOrientedMeteringPointFactory
useCaseForSurface
เปลี่ยนชื่อเป็นuseCaseForAspectRatio
และเอกสารอ้างอิงได้รับการขยาย - เครื่องมือสร้างจะแทนที่เมธอด
FocusMeteringAction.Builder.from()
FocusMeteringAction.Builder()
- นำ
DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)
ออกแล้ว แอปพลิเคชันควรใช้คอนสตรคเตอร์ที่ใช้พารามิเตอร์Display
และส่งผ่านการแสดงผลปัจจุบัน - การปรับปรุง Javadoc สําหรับ API ของโฟกัสและการวัดแสงเกี่ยวกับ Flag
MeteringMode
และ 3A รวมถึงการใช้พารามิเตอร์Display
- ขยายเอกสารอ้างอิงสำหรับ
setZoomRatio
และsetLinearZoom
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาเมื่อปิดแล้วเปิดกล้องส่งผลให้การตรวจสอบ "เงื่อนไขเบื้องต้น" ล้มเหลว
- แก้ไข
ConcurrentModificationException
ที่อาจเกิดขึ้นเมื่อใช้ไฟฉายและ API การซูม - แก้ไขปัญหาเพื่อเลือกความละเอียดที่ใกล้เคียงกับความละเอียดที่ขอเมื่อมีมิติข้อมูลขนาด mod16
- ตอนนี้
startFocusMetering
และcancelFocusMetering
API ทํางานตามที่อธิบายไว้แล้ว โดยมีเวลาถูกต้องและอาจแสดงข้อผิดพลาดเมื่อเกิดข้อผิดพลาดขึ้น - แก้ไขปัญหาเมื่อมีการขอความละเอียดเป้าหมายที่เจาะจงด้วยสัดส่วนการครอบตัดในอุปกรณ์ที่ไม่รองรับขนาดดังกล่าว ตอนนี้ระบบจะเลือกขนาดที่ไม่ได้ครอบตัดที่มีความละเอียดเพียงพอเพื่อจำกัดคำขอเดิม หากมี
Camera-Camera2 เวอร์ชัน 1.0.0-alpha08
18 ธันวาคม 2019
androidx.camera:camera-camera2:1.0.0-alpha08
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha08 มีการคอมมิตเหล่านี้
ปัญหาที่ทราบ
- ตัวเลือกคำขอการจับภาพ Camera2 บางรายการอาจใช้งานไม่ได้เมื่อใช้การทำงานร่วมกันของ Camera2 หากระบบไม่รองรับตัวเลือกที่ขอ เซสชันจะเริ่มไม่สำเร็จและอาจเกิดข้อผิดพลาดเช่นนี้
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่หน้าจอตัวอย่างเป็นสีดําหลังจากหมุนหรือเปลี่ยนกล้องสําหรับ API ระดับ 21 และ 22
การเปลี่ยนแปลง API
- ทดลอง: เพิ่มเส้นทางการทำงานร่วมกันของ camera2 สำหรับการดึงรหัสกล้อง
Camera-Core เวอร์ชัน 1.0.0-alpha08
18 ธันวาคม 2019
androidx.camera:camera-core:1.0.0-alpha08
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha08 มีการคอมมิตเหล่านี้
ปัญหาที่ทราบ
- แอปที่ใช้
PreviewView
หรือCameraView
อาจมีตัวอย่างอัตราส่วนที่ไม่ถูกต้อง ปัญหานี้เกิดขึ้นหลังจากหยุดชั่วคราวหรือเล่นต่อในอุปกรณ์ FULL บางรุ่น เช่น Pixel2
การแก้ไขข้อบกพร่อง
- อัปเดตเอกสารประกอบสำหรับ
FocusMeteringAction
และCameraControl
- ใช้งาน
TorchControl
สำหรับenableTorch()
และgetTorchState()
แล้ว
การเปลี่ยนแปลง API
- ซ่อน IntDef และย้ายค่าคงที่ IntDef ไว้นอกคําจํากัดความ IntDef
- ย้าย
rotationDegrees
จากชั้นOnImageCaptureCallback
ไปImageInfo
- ย้าย
rotationDegrees
จากชั้นAnalyzer
ไปImageInfo
Camera-Camera2 เวอร์ชัน 1.0.0-alpha07
4 ธันวาคม 2019
androidx.camera:camera-camera2:1.0.0-alpha07
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha07 ของ camera-camera2 มีคอมมิตเหล่านี้
Camera2Config
พร้อมใช้งานแล้วสำหรับการใช้กับการจัดเตรียมและการกำหนดค่าการใช้งาน Camera2 สำหรับ CameraX โปรดดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีใช้ข้อมูลนี้ในการเริ่มต้นใช้งานที่ส่วน camera-core ในหมายเหตุประจำรุ่น- ตอนนี้เราได้ทำเครื่องหมายฟังก์ชันการทำงานร่วมกันของ camera2 ว่าเป็นแบบทดลองและย้ายไปยังแพ็กเกจแยกต่างหากแล้ว
androidx.camera.camera2.interop.
Camera-Core เวอร์ชัน 1.0.0-alpha07
4 ธันวาคม 2019
androidx.camera:camera-core:1.0.0-alpha07
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha07 ของ camera-core มีคอมมิตเหล่านี้
โปรดทราบว่ารุ่นอัลฟ่านี้จะมีการเปลี่ยนแปลงที่สำคัญบางอย่างขณะที่เราเตรียมพร้อมสำหรับรุ่นเบต้า เราขอแนะนำให้คุณตรวจสอบการเปลี่ยนแปลงและแชร์ความคิดเห็นที่คุณอาจมีในกลุ่ม Google ของ CameraX สำหรับนักพัฒนาแอปที่ใช้ CameraX ในแอปที่อยู่ใน Play Store เราขอแนะนำให้รอการเปิดตัวรุ่นเบต้าอย่างเป็นทางการก่อนอัปเกรดไลบรารีภายในแอปพลิเคชัน
การเปลี่ยนแปลง API
สำคัญ: การเปลี่ยนแปลงในการเริ่มต้นใช้งาน CameraX แอปพลิเคชันควรใช้
CameraXConfig.Provider
และใช้Camera2Config
เริ่มต้นที่androidx.camera.camera2
ระบุ การใช้งานทั่วไปมีดังนี้import androidx.camera.camera2.Camera2Config import androidx.camera.core.CameraXConfig public class MyCameraXApplication : Application(), CameraXConfig.Provider { override fun getCameraXConfig(): CameraXConfig { return Camera2Config.defaultConfig(this) } }
คลาส CameraX ถูกนําออกแล้ว ตอนนี้
bindToLifecycle()
,unbind()
,unbindAll()
,isBound()
และhasCamera()
ที่ก่อนหน้านี้มีให้ใช้งานผ่านการเรียกใช้คลาส CameraX พร้อมใช้งานผ่านProcessCameraProvider
แล้วอินสแตนซ์
ProcessCameraProvider
ต่อกระบวนการจะรับแบบไม่พร้อมกันโดยใช้เมธอดแบบคงที่ProcessCameraProvider.getInstance()
ซึ่งจะแสดงผลลัพธ์เป็น Future ที่ฟังได้ ซึ่งจะให้ProcessCameraProvider
เมื่อดำเนินการเสร็จสมบูรณ์ ที่นี่จะแสดงเป็นonCreate()
สำหรับการใช้งานทั่วไป คุณสามารถเรียกใช้getInstance()
ในภายหลังในวงจรชีวิตของกิจกรรมเพื่อเลื่อนเวลาในการตอบสนองของอินทิเกรชันไปไว้ภายหลัง (เช่น เมื่อผู้ใช้ดำเนินการเปิด UI กล้อง)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); }
คุณสามารถเพิ่มผู้ฟังลงใน
ListenableFuture
ที่getInstance()
แสดงผล วิธีนี้ช่วยให้ดึงข้อมูลผู้ให้บริการกล้องจากFuture
ได้โดยไม่ต้องบล็อกในFuture.get()
cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))
ตอนนี้การเลือกกล้องจะดำเนินการโดยตัวเลือกกล้องแทนการเลือกตามกรณีการใช้งาน
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
CameraProvider.bindToLifecycle
จะได้รับเจ้าของวงจร ตัวเลือกกล้อง และกรณีการใช้งาน จากนั้นระบบจะเชื่อมโยงกับเจ้าของวงจรที่ระบุและเรียกใช้สำหรับกล้องที่เลือกcameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)
นำคลาส "Config" ของ Use Case ออก แต่ให้สร้าง Use Case โดยตรงโดยตั้งค่าตัวเลือกในเครื่องมือสร้าง Use Case แต่ละรายการ เช่น
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
เราได้อัปเดต Use Case ของตัวอย่างเพลงให้ยอมรับแพลตฟอร์มที่สร้างขึ้นและจัดการโดยแอปพลิเคชันเพื่อให้เป็นไปตามแนวทางปฏิบัติแนะนำของ Android เราขอแนะนําอย่างยิ่งให้ใช้คลาสมุมมอง
PreviewView
ที่ให้มากับแพ็กเกจมุมมองกล้องpreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
ดูเอกสารประกอบเกี่ยวกับการแนบแพลตฟอร์มที่จัดการโดยแอป ในกรณีเหล่านี้ แอปจะจัดการวงจรชีวิตของแพลตฟอร์ม
สำคัญ: การใช้งานเมธอด
ImageAnalysis
Analyzer ต้องเรียกimage.close()
ในรูปภาพที่รับเมื่อใช้เสร็จแล้ว ไม่เช่นนั้น ระบบอาจไม่รับภาพใหม่หรือกล้องอาจหยุดทำงาน ทั้งนี้ขึ้นอยู่กับการตั้งค่า Back Pressure โปรดดูรายละเอียดในเอกสารอ้างอิงตอนนี้
ImageAnalysis ImageReaderMode
เปลี่ยนเป็นกลยุทธ์การลดแรงดันintdef
แล้วมีการทำเครื่องหมาย
ImageProxy.getImage()
ว่าเป็นการทดสอบ แอปพลิเคชันควรกำกับเนื้อหาการใช้งาน เช่น ผ่าน@androidx.camera.core.ExperimentalGetImage
นำข้อกำหนดคำอธิบายประกอบ
UIThread
สำหรับAnalyzer
ออกแล้วเพิ่มฟังก์ชัน
ImageAnalysis.clearAnalyzer()
เพื่อนำเครื่องมือวิเคราะห์ออกเปลี่ยนชื่อ Listeners ที่มีเมธอดมากกว่า 1 รายการเป็น Callback แล้ว
ImageCapture.OnImageCapturedListener
เปลี่ยนชื่อเป็นImageCapture.OnImageCapturedCallback
แล้วImageCapture.OnImageSavedListener
เปลี่ยนชื่อเป็นImageCapture.OnImageSavedCallback
แล้วVideoCapture.OnVideoSavedListener
เปลี่ยนชื่อเป็นVideoCapture.OnVideoSavedCallback
แล้ว
เปลี่ยน Enum เป็น IntDef แล้ว
เพิ่มตัวควบคุมการซูมแล้ว
CameraControl.setLinearZoom()
CameraControl.setZoomRatio()
CameraInfo.getLinearZoom()
CameraInfo.getMaxZoomRatio()
CameraInfo.getZoomRatio()
เพิ่ม
CameraInfo.hasFlashUnit()
เพื่อระบุว่ามีฮาร์ดแวร์แฟลช/ไฟฉายหรือไม่นำ
CameraInfo.isFlashAvailable()
ออกแล้ว ไฟฉายจะลบล้างฟังก์ชันการทำงานของแฟลช ดูรายละเอียดเพิ่มเติมได้ในเอกสารอ้างอิงฟิลด์
ImageCapture.Metadata
จะถูกแทนที่ด้วยตัวรับอินพุต get/set/isตอนนี้
startFocusMetering
และcancelFocusMetering
จะแสดงผลเป็นListenableFutures
ซึ่งแสดงถึงการดำเนินการแบบอะซิงโครนัสของการเรียกMeteringPoints
ทำงานเป็นแฮนเดิลสําหรับการวัดผลและผลิตโดยโรงงาน แอปควรใช้โรงงานที่มีอยู่แทนโรงงานที่กำหนดเอง
ปัญหาที่แก้ไขแล้ว
- แก้ปัญหาเมื่อถ่ายภาพเมื่อกลับมาทำงานต่อ (หลังจากการหยุดชั่วคราวก่อนหน้านี้มีการถ่ายภาพที่รอดำเนินการให้เสร็จสมบูรณ์)
- ปัญหาที่ทราบ:
CameraControl.enableTorch()
ทํางานได้ แต่ListenableFuture<Void>
ที่แสดงผลจะเป็นcomplete(success)
ในอนาคตทันทีเสมอ แม้ว่าจะไม่มีหน่วยแฟลชก็ตาม เวอร์ชันในอนาคตจะแก้ไขลักษณะการทำงานนี้ให้เป็นลักษณะการทำงานสุดท้าย: เมื่อไม่มีหน่วยแฟลชenableTorch(true)
จะดำเนินการไม่สำเร็จทันที (จะไม่ส่งคำขอไปยังCaptureSession
) และTorchState
จะยังคงปิดอยู่ - ปัญหาที่ทราบ:
startFocusAndMetering
และcancelFocusAndMetering
เริ่มและยกเลิกการวัดแสงแบบโฟกัส แต่แสดงผลcompleted (success)
ในอนาคตทันที ซึ่งไม่ได้แสดงถึงลักษณะการทำงานที่บันทึกไว้FocusMeteringResult
จากListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()
คือผลลัพธ์ปลอมซึ่งisFocusSuccessful()
และมีค่าเป็น "เท็จ" เสมอ ซึ่งแตกต่างจากลักษณะการทำงานที่ตั้งใจไว้และบันทึกไว้ - ปัญหาที่ทราบ: กําลังพัฒนาโรงงานจุดวัดผลเพื่อใช้กับ
PreviewView
เหตุการณ์การแตะ ขณะนี้แอปที่เชื่อมต่อกับแพลตฟอร์มที่จัดการเองจะสามารถใช้โรงงานจุดวัดแสงที่มีอยู่ได้ หากไม่เช่นนั้น ฟังก์ชันการโฟกัสด้วยการแตะจะไม่พร้อมใช้งานสำหรับPreviewView
Camera-Camera2 และ Camera-Core เวอร์ชัน 1.0.0-alpha06
9 ตุลาคม 2019
androidx.camera:camera-camera2:1.0.0-alpha06
และ androidx.camera:camera-core:1.0.0-alpha06
เผยแพร่แล้ว เหล่านี้คือการคอมมิตที่รวมอยู่ใน camera-camera2:1.0.0-alpha06
และเหล่านี้คือการคอมมิตที่รวมอยู่ใน camera-core:1.0.0-alpha06
ฟีเจอร์ใหม่
การเปลี่ยนแปลงการตั้งค่าสัดส่วนภาพ
- เพิ่ม
setTargetAspectRatioMode()
และยอมรับอาร์กิวเมนต์ enum ซึ่งจะตั้งค่าโหมดสัดส่วนภาพด้วยตัวเลือกRATIO_4_3
หรือRATIO_16_9
แทนสัดส่วนภาพที่กำหนดเอง วิธีนี้แสดงถึงความจริงที่ว่ากล้องมีเฉพาะสัดส่วนภาพบางแบบเท่านั้น ไม่ใช่สัดส่วนภาพแบบกำหนดเอง- ปัจจุบันสัดส่วนภาพที่ใช้ได้มีเพียง 16:9 และ 4:3 ในกรณีที่เป็น 1:1 เฉพาะอุปกรณ์บางรุ่นเท่านั้นที่ถ่ายจากกล้องได้ และต้องเป็นความละเอียดที่จำกัดเท่านั้น แอปพลิเคชันที่ออกแบบอินเทอร์เฟซหรือการประมวลผลแบบ 1:1 ควรใช้ตัวเลือก 16:9 หรือ 4:3 ที่ยืดหยุ่นกว่า และครอบตัดการแสดงผลหรือประมวลผลพื้นที่ย่อย
- สัดส่วนภาพเหล่านี้มีไว้เพื่อใช้พื้นที่เซ็นเซอร์สูงสุด
- เพิ่ม
getTargetAspectRatio()
ลงใน API การกำหนดค่า Use Case ซึ่งจะแสดงผลสัดส่วนการแสดงผลที่กำหนดเป้าหมายสำหรับเอาต์พุต Use Case - มีการเปลี่ยนแปลงเมธอด
setTargetAspectRatio(Rational aspectRatio)
สำหรับ ImageCapture เป็นsetTargetAspectRatioCustom(Rational aspectRatio)
เมื่อตั้งค่าแล้ว Output ของ ImageCapture จะครอบตัดตามนั้น
Executor API
- ฟังก์ชันต่อไปนี้ยอมรับพารามิเตอร์ตัวดำเนินการ ซึ่งช่วยให้แอปควบคุมตัวดำเนินการที่ฟังก์ชันจะทำงานได้
Preview.setOnPreviewOutputUpdateListener()
API หากไม่มีผู้ดำเนินการสำหรับฟังก์ชันนั้น ฟังก์ชันจะดำเนินการในเธรดหลักPreview.setOnPreviewOutputUpdateListener
FocusMeteringAction.Builder.setAutoFocusCallback
ImageAnalysis.setAnalyzer
ImageCapture.takePicture
CameraView.takePicture
CameraView.startRecording
VideoCapture.startRecording
เพิ่ม CameraInfo ด้วย API ตรวจสอบว่าแฟลชพร้อมใช้งานและ API การหมุนเซ็นเซอร์
เพิ่ม
CameraInfo
และเมธอดgetCameraInfo
ซึ่งช่วยให้แอปตรวจสอบได้ว่าเลนส์ที่หันหน้าเข้าหา CameraInfo พร้อมใช้งานหรือไม่ และกล้องนั้นมีแฟลชหรือไม่ เช่นtry { CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing); LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable(); flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE); } catch (CameraInfoUnavailableException e) { Log.w(TAG, "Cannot get flash available information", e); flashToggle.setVisibility(View.VISIBLE); }
เพิ่ม
CameraInfo.getSensorRotationDegrees()
แล้ว ข้อมูลนี้ระบุการวางแนวของเซ็นเซอร์กล้องสัมพันธ์กับการวางแนวตามปกติของอุปกรณ์ หรือเพื่อประโยชน์ใช้สอย ข้อมูลนี้อาจระบุการวางแนวสัมพันธ์กับการวางแนวที่อธิบายโดยการหมุนพื้นผิว (ซึ่งอธิบายการวางแนวสัมพันธ์กับการวางแนวตามปกติ)
การเปลี่ยนแปลง API และการแก้ไขข้อบกพร่อง
- สัดส่วนภาพ: สําหรับแต่ละกรณีการใช้งาน แอปพลิเคชันควรเรียกใช้
setTargetResolution()
หรือsetTargetAspectRatio()
เพียงรายการเดียว การเรียกใช้ทั้ง 2 รายการในตัวสร้างเดียวกันจะแสดงข้อผิดพลาด- โดยทั่วไป เราขอแนะนำให้ใช้
setTargetAspectRatio()
ตามการออกแบบ UI ของแอปพลิเคชัน การแก้ปัญหาที่เฉพาะเจาะจงจะขึ้นอยู่กับกรณีการใช้งาน เช่น การแสดงตัวอย่างมีความละเอียดใกล้เคียงกับหน้าจอและการจับภาพจะให้ภาพนิ่งที่มีความละเอียดสูง ดูข้อมูลเพิ่มเติมได้ที่ตารางการแก้ปัญหาอัตโนมัติ - ใช้
setTargetResolution()
สำหรับกรณีที่เฉพาะเจาะจงมากขึ้น เช่น เมื่อต้องใช้ความละเอียดขั้นต่ำ (เพื่อประหยัดการคำนวณ) หรือความละเอียดสูงสุด (สำหรับการประมวลผลรายละเอียด)
- โดยทั่วไป เราขอแนะนำให้ใช้
- Executor API: นำการเรียก
setCallbackHandler()
ออกจาก API การกำหนดค่า Use Case แล้ว แต่แอปพลิเคชันสามารถตั้งค่าผู้ดำเนินการเป็นพารามิเตอร์ใน API อื่นๆ ต่างๆ ที่ตั้งค่าการเรียกกลับได้ - อัปเดตคำอธิบายประกอบ Null สำหรับฟังก์ชันต่างๆ
- แก้ไขปัญหาที่ทำให้ระบบแสดง
java.lang.IllegalStateException at Camera$StateCallback.onError
เมื่อเปิดกล้อง - แก้ไขปัญหาที่ระบบจะเลือกความละเอียดที่มีขนาดเล็กเกินไป (น้อยกว่า 640x480) เมื่อแอปขอความละเอียดที่ใหญ่ขึ้นหรือความละเอียดเริ่มต้น ซึ่งส่งผลให้ภาพตัวอย่างแตกหรือเบลอ แอปพลิเคชันที่ต้องการความละเอียดที่เล็กลงโดยเฉพาะจะขอความละเอียดดังกล่าวได้อย่างชัดเจน
- แก้ไขปัญหาที่กล้องแสดงหน้าจอสีดํา (เริ่มกล้องไม่สําเร็จ) หลังจากกลับมาจาก Intent ที่เปิดแอปพลิเคชันกล้องอื่น
- แก้ไขข้อบกพร่องที่แสดงข้อผิดพลาดต่อไปนี้เมื่อเริ่มหรือหยุดแอปซ้ำๆ
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
- แก้ไขข้อผิดพลาดต่อไปนี้ที่เกิดขึ้นเมื่อปิดใช้ ImageAnalysis:
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
- เพิ่มการทดสอบเพิ่มเติมสำหรับขั้นตอนการยกเลิกการเชื่อมต่อกล้อง
- ปรับปรุงความเสถียรของระบบการทดสอบเมื่อทำการทดสอบกล้องติดต่อกัน
Camera-Camera2 และ Camera-Core เวอร์ชัน 1.0.0-alpha05
5 กันยายน 2019
androidx.camera:camera-camera2:1.0.0-alpha05
และ androidx.camera:camera-core:1.0.0-alpha05
เผยแพร่แล้ว เหล่านี้คือการคอมมิตที่รวมอยู่ใน camera-camera2:1.0.0-alpha05 และเหล่านี้คือการคอมมิตที่รวมอยู่ใน camera-core:1.0.0-alpha05
การเปลี่ยนแปลง API: เปลี่ยนชื่อตัวแปรข้อผิดพลาดของ Use Case ดังนี้
- เปลี่ยนชื่อ
ImageCapture.UseCaseError
เป็นImageCapture.ImageCaptureError
- เปลี่ยนชื่อ
VideoCapture.UseCaseError
เป็นVideoCapture.VideoCaptureError
- เปลี่ยนชื่อ
เพิ่ม
CameraControl
API ที่มี API การแตะเพื่อโฟกัสเพิ่ม API เพื่อรับ
CameraControl
จาก CameraX สำหรับกล้องที่เลือกตามทิศทางของเลนส์CameraX.getCameraControl(LensFacing lensFacing)
เพิ่ม
MeteringPointFactory
,MeteringPoint
,MeteringMode
และFocusMeteringAction
เพื่อเรียกใช้ฟีเจอร์แตะเพื่อโฟกัส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();
เพิ่ม API สำหรับ
CameraControl
เพื่อเริ่มและยกเลิกการวัดแสงแบบโฟกัสgetCameraControl(lensFacing).startFocusAndMetering(action);
getCameraControl(lensFacing).cancelFocusAndMetering();
เพิ่ม API สําหรับ Factories ของจุดวัดผลที่จะช่วยแปลพิกัดการแตะเป็นพิกัดเซ็นเซอร์ตามคลาสมุมมอง
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);
MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
บังคับใช้การเรียกใช้เมธอดต่อไปนี้บนเธรดหลัก (UI) โดยจะแสดงข้อผิดพลาด
IllegalStateException
เมื่อไม่ได้เรียกใช้ เวอร์ชันในอนาคตจะอนุญาตให้ใช้กับเธรดอื่นๆ และรับประกันการจัดรูปแบบCameraX.bindToLifecycle()
CameraX.unbind()
CameraX.unbindAll()
ImageAnalysis.setAnalyzer()
ImageAnalysis.getAnalyzer()
ImageAnalysis.removeAnalyzer()
Preview.removePreviewOutputListener()
Preview.getOnPreviewOutputUpdateListener()
Preview.setOnPreviewOutputUpdateListener()
ตอนนี้การตั้งค่าการกําหนดค่าต่างๆ ยอมรับพารามิเตอร์ Null และ Get ที่เกี่ยวข้องอาจแสดงผลเป็น Null
แก้ไขปัญหาเมื่อทดสอบบนโปรแกรมจำลองที่ไม่รองรับการตั้งค่า AF/AE/AWB
แก้ไขข้อบกพร่องที่ทำให้โปรแกรมขัดข้องเมื่อหมุนขณะวิเคราะห์รูปภาพ
แก้ไขข้อบกพร่องที่ภาพตัวอย่างเป็นสีดําเมื่อเริ่มต้น (ไม่มีข้อมูลกล้อง) หลังจากการหมุนหรือสลับระหว่างกล้องหน้าและกล้องหลัง
นำการทดสอบสำหรับกรณีการใช้งานการวิเคราะห์รูปภาพหลายรายการพร้อมกันออก แอปพลิเคชันควรแนบกรณีการใช้งานการวิเคราะห์รูปภาพเพียงรายการเดียวเพื่อให้มั่นใจว่าเข้ากันได้
เพิ่มการทดสอบ Robolectric เบื้องต้นสำหรับกล้องจำลองในชุดทดสอบกล้อง (อยู่ระหว่างดำเนินการ)
นำการทดสอบ Camera2Inititalizer ออกเนื่องจากความครอบคลุมไม่ชัดเจน/ทำให้เข้าใจผิด
Camera-Camera2 และ Camera-Core เวอร์ชัน 1.0.0-alpha04
7 สิงหาคม 2019
androidx.camera:camera-camera2:1.0.0-alpha04
และ androidx.camera:camera-core:1.0.0-alpha04
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha04 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
การเปลี่ยนแปลงตัวเลือกอัตราส่วนและความละเอียด
เป้าหมายของ CameraX คือเริ่มต้นเซสชันกล้องให้สําเร็จ ซึ่งหมายความว่า CameraX จะลดความละเอียด/สัดส่วนภาพตามความสามารถของอุปกรณ์เพื่อเริ่มเซสชันการจับภาพเป็นเป้าหมายแรก และอาจไม่ดำเนินการตามคำขอที่แน่นอน ซึ่งอาจเกิดจากสาเหตุต่อไปนี้
- อุปกรณ์ที่ไม่รองรับความละเอียดที่ขอ
- ปัญหาความเข้ากันได้ เช่น ในอุปกรณ์รุ่นเดิมที่ต้องใช้ความละเอียดบางอย่างเพื่อให้ทำงานได้อย่างถูกต้อง
- ในอุปกรณ์บางรุ่น รูปแบบบางอย่างจะใช้ได้เฉพาะในอัตราส่วนภาพบางอัตราเท่านั้น
- ค่ากำหนดสำหรับ "mod16 ที่ใกล้ที่สุด" สำหรับการเข้ารหัส JPEG หรือวิดีโอ ดู
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
แม้ว่า CameraX จะสร้างและจัดการเซสชัน แต่คุณควรตรวจสอบขนาดรูปภาพที่แสดงผลในเอาต์พุต Use Case ในโค้ดของคุณเสมอและปรับตามความเหมาะสม
เราได้ทําการเปลี่ยนแปลงบางอย่างเกี่ยวกับการตั้งค่าความละเอียดและสัดส่วนภาพ โดยมีจุดประสงค์เพื่อทําให้ API ชัดเจนยิ่งขึ้น ดังนี้
- ตอนนี้ระบบจะถือว่า Use Case ของตัวอย่างเพลงมีสัดส่วนการแสดงผลเริ่มต้นเป็น 4:3 เมื่อไม่ได้ตั้งค่าไว้
- เมื่อ CameraX พิจารณาการเปลี่ยนแปลงความละเอียดและอัตราส่วนการแสดงผลที่ขอภายในตามความสามารถของอุปกรณ์ ระบบจะพยายามรักษาสัดส่วนการแสดงผลเดิมไว้ก่อน (ตามที่ระบุโดยการเรียกใช้
setTargetAspectRatio
หรือsetTargetResolution
) - ระบบจะถือว่าความละเอียดเวอร์ชัน "Nearest mod16" เป็นสัดส่วนภาพเดียวกัน
โหมดที่ไม่มีการบล็อกของ ImageAnalysis
- ลักษณะการทํางานของ
ImageReaderMode.ACQUIRE_LATEST_IMAGE
จะไม่บล็อกอีกต่อไป โดยจะรับภาพล่าสุดในคิว แต่ทิ้งภาพที่ไม่ได้ใช้อย่างต่อเนื่องเพื่อให้ไปป์ไลน์ของกล้องทำงานได้อย่างต่อเนื่อง - เครื่องมือวิเคราะห์สามารถเก็บรูปภาพรายการเดียวไว้ได้แบบไม่จำกัดโดยไม่ทำให้ไปป์ไลน์หยุดชะงัก
- หากแอปพลิเคชันระบุผู้ดำเนินการซึ่งบล็อกไว้ กรณีการใช้งาน ImageAnalysis ก็จะบล็อก
- Executor เริ่มต้นที่ตั้งค่าไว้ภายในจะทํางานแบบไม่บล็อก
การแก้ไขข้อบกพร่อง
- แก้ปัญหาการหมดเวลาขณะรอการรวม 3A เมื่อถ่ายภาพในอุปกรณ์ที่ไม่มีโฟกัสอัตโนมัติ การเปิดรับแสงอัตโนมัติ และการปรับสมดุลสีขาวอัตโนมัติ
- แก้ไขปัญหาเมื่อถ่ายภาพอย่างรวดเร็วด้วย ImageCapture แก้ไขข้อผิดพลาด:
java.lang.IllegalStateException: maxImages (2) has already been acquired
- แก้ปัญหาเมื่อไม่ได้เรียกใช้
setLensFacing
สำหรับ Use Case ซึ่งส่งผลให้เกิดjava.lang.IllegalArgumentException: Unable to get camera ID for use case
- แก้ไขปัญหาที่อุปกรณ์รุ่นเดิมกำหนดให้ใช้สัดส่วนการแสดงผลที่เฉพาะเจาะจงเป็นความละเอียด JPEG สูงสุด
- แก้ไขปัญหาเมื่อแอปทำงานอยู่เบื้องหลังขณะที่กล้องเปิดอยู่
- แก้ไขปัญหาใน API < 25 ซึ่งนำข้อผิดพลาด
checkAndUpdateEglState: invalid current EGLDisplay
ออก - แก้ปัญหาเมื่อยกเลิกการเชื่อมโยงตัวอย่างหลังจากเปิดใช้และเริ่มส่วนขยาย
- ตอนนี้ชิ้นงานบิลด์สำหรับมุมมองกล้องและส่วนขยายกล้องจะเผยแพร่เป็นเวอร์ชันอัลฟ่า
Camera-Camera2 และ Camera-Core เวอร์ชัน 1.0.0-alpha03
2 กรกฎาคม 2019
androidx.camera:camera-core:1.0.0-alpha03
และ androidx.camera:camera-camera2:1.0.0-alpha03
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha03 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มคำอธิบาย Javadoc สำหรับ "target" ในคําเรียกการกําหนดค่า setTarget
Camera-Core
- แก้ไขข้อขัดข้องของอินพุต/เอาต์พุตที่ยังไม่ได้กําหนดค่าเมื่อเปิด/ปิดหรือเชื่อมโยง/ยกเลิกการเชื่อมโยงอย่างรวดเร็ว
- เปลี่ยนไปใช้การใช้งาน Futures เวอร์ชันใหม่
- ทดสอบการแก้ไขเพื่อการทดสอบที่มีประสิทธิภาพมากขึ้น
- ตอนนี้การทดสอบการผสานรวมหลักจะแสดงเวลาจับภาพสำหรับรูปภาพ
- พัฒนาคลาสความเข้ากันได้ภายในสําหรับผู้ดําเนินการ
- การทดสอบเวลาในการจับภาพแอปจะรอให้ภาพก่อนหน้าเสร็จสมบูรณ์และปรับปรุงความเสถียร
ส่วนขยาย
- เพิ่มการตรวจสอบเวอร์ชัน
- การครอบคลุมการทดสอบเพิ่มเติม - การติดต่อกลับเหตุการณ์ส่วนขยาย
- การปรับปรุงรูปภาพและข้อมูลเมตาที่เกี่ยวข้องภายใน
- การแก้ไขการเปลี่ยนโหมดในแอปทดสอบ
Camera-Camera2 และ Camera-Core เวอร์ชัน 1.0.0-alpha02
5 มิถุนายน 2019
androidx.camera:camera-core:1.0.0-alpha02
และ androidx.camera:camera-camera2:1.0.0-alpha02
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha02 มีการคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ปัญหาการหารด้วย 0 เมื่อใช้โปรแกรมจำลอง
- แก้ไขข้อผิดพลาด NullPointerException/Surface Abandoned ที่จะเกิดขึ้นในอุปกรณ์บางรุ่นเมื่อถ่ายภาพอย่างรวดเร็วขณะเลิกเชื่อมโยงและเชื่อมโยง Use Case อีกครั้งอย่างรวดเร็ว
- แก้ไขปัญหาภายในเพื่อให้การอัปเดตคำขอบันทึกส่งผลต่อแพลตฟอร์มทั้งหมดอย่างสอดคล้องกัน
- การปรับปรุงความเสถียรเมื่อเริ่มใช้งาน Use Case อีกครั้งในอินสแตนซ์แอปใหม่
- การเปลี่ยนแปลงสถาปัตยกรรมภายในเพื่อเตรียมรองรับผู้ดำเนินการใน API
- คําชี้แจงเพิ่มเติมเกี่ยวกับ Javadoc สําหรับคลาส CameraX และการจัดการวงจร
- เพิ่มการทดสอบที่มีเครื่องมือวัดผลสําหรับแอปทดสอบประสิทธิภาพ Antelope
- ไม่จำเป็นต้องใช้ "-keepattributes Signature" ในการกำหนดค่า Proguard ของแอป
Camera-Camera2 และ Camera-Core 1.0.0-alpha01
7 พฤษภาคม 2019
androidx.camera:camera-core:1.0.0-alpha01
และ
androidx.camera:camera-camera2:1.0.0-alpha01
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha01 มีการคอมมิตเหล่านี้
Camera-Lifecycle เวอร์ชัน 1.0.0-beta11
14 ตุลาคม 2020
androidx.camera:camera-lifecycle:1.0.0-beta11
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta11 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
<UseCase>.getTargetRotation()
จะแสดงผลเป็นSurface.ROTATION_0
หากเรียกใช้ก่อนที่จะแนบกับอินสแตนซ์ Camera เว้นแต่จะมีการตั้งค่า targetRotation ใน Builder หรือ UseCase (I80fcd)
Camera-Lifecycle เวอร์ชัน 1.0.0-beta10
23 กันยายน 2020
androidx.camera:camera-lifecycle:1.0.0-beta10
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta10 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- รุ่นที่รองรับ Camera-Core 1.0.0-beta10
Camera-Lifecycle เวอร์ชัน 1.0.0-beta09
16 กันยายน 2020
androidx.camera:camera-lifecycle:1.0.0-beta09
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta09 มีการคอมมิตเหล่านี้
Camera-Lifecycle เวอร์ชัน 1.0.0-beta08
19 สิงหาคม 2020
androidx.camera:camera-lifecycle:1.0.0-beta08
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta08 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- การเริ่มต้นจะไม่ขัดข้องอีกต่อไปเมื่อใช้ Context ที่ไม่ให้ออบเจ็กต์แอปพลิเคชันจาก
Context.getApplicationContext()
(I3d3c9, b/160817073)
Camera-Lifecycle เวอร์ชัน 1.0.0-beta07
22 กรกฎาคม 2020
androidx.camera:camera-lifecycle:1.0.0-beta07
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta07 มีการคอมมิตเหล่านี้
Camera-Lifecycle เวอร์ชัน 1.0.0-beta06
24 มิถุนายน 2020
androidx.camera:camera-lifecycle:1.0.0-beta06
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta06 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้คุณกำหนดค่า CameraX ได้ด้วยวิธีใช้ ProcessCameraProvider#configureInstance() ก่อนเรียกใช้ ProcessCameraProvider#getInstance() ซึ่งจะช่วยให้ปรับแต่ง CameraXConfig ได้โดยไม่ต้องใช้ CameraXConfig.Provider ในคลาส Application ของแอป (Ia1a8d)
Camera-Lifecycle เวอร์ชัน 1.0.0-beta05
10 มิถุนายน 2020
androidx.camera:camera-lifecycle:1.0.0-beta05
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta05 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องเมื่อแอปเริ่มต้นขึ้นเมื่อเริ่มต้นใช้งาน CameraX ขณะที่โทรศัพท์อยู่ในโหมดห้ามรบกวน
InitializationException
ที่มีCameraUnavailableException
จะตั้งค่าเป็นListenableFuture
ของผลลัพธ์การเริ่มต้นแทนที่จะทำให้แอปพลิเคชันพลิกคว่ำ (I9909a, b/149413835)
Camera-Lifecycle เวอร์ชัน 1.0.0-beta04
27 พฤษภาคม 2020
androidx.camera:camera-lifecycle:1.0.0-beta04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta04 มีการคอมมิตเหล่านี้
Camera-Lifecycle เวอร์ชัน 1.0.0-beta03
15 เมษายน 2020
androidx.camera:camera-lifecycle:1.0.0-beta03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta03 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขการถดถอยจาก beta03 ที่การเรียก
bindToLifecycle()
ที่มีUseCase
เป็น 0 จะทำให้เกิดข้อยกเว้น ซึ่งจะช่วยป้องกันไม่ให้ดึงข้อมูลCamera
โดยไม่เชื่อมโยงUseCase
- การแก้ไขเพื่อรองรับการเปิดตัว
camera-core
Camera-Lifecycle เวอร์ชัน 1.0.0-beta01
26 กุมภาพันธ์ 2020
androidx.camera:camera-lifecycle:1.0.0-beta01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta01 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขเอกสารประกอบเพื่อระบุว่าเมื่อได้รับ
ProcessCameraProvider
ระหว่างการเริ่มต้น ระบบจะใช้การกำหนดค่าเริ่มต้นและขยายApplication
หรือไม่ก็ได้ (I5e395)
เวอร์ชัน Camera-Lifecycle 1.0.0-beta02
1 เมษายน 2020
androidx.camera:camera-lifecycle:1.0.0-beta02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta02 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- อัปเดตเพื่อรองรับการแก้ไขข้อบกพร่องในอาร์ติแฟกต์
camera-camera2:1.0.0-beta02
และcamera-core:1.0.0-beta02
Camera-Lifecycle เวอร์ชัน 1.0.0-alpha10
10 กุมภาพันธ์ 2020
androidx.camera:camera-lifecycle:1.0.0-alpha10
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha10 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มคำอธิบายประกอบ
@MainThread
ลงในเมธอด BindToLifecycle, unbind และ unbindAll (I990d2)
Camera-Lifecycle เวอร์ชัน 1.0.0-alpha03
22 มกราคม 2020
androidx.camera:camera-lifecycle:1.0.0-alpha03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha03 มีการคอมมิตเหล่านี้
อัปเดต
- การแก้ไขและการอัปเดตต่างๆ เพื่อรองรับการเปลี่ยนแปลงของ Camera Core และ Camera2
Camera-Lifecycle เวอร์ชัน 1.0.0-alpha02
18 ธันวาคม 2019
androidx.camera:camera-lifecycle:1.0.0-alpha02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลงทรัพยากร Dependency
- อัปเดตเพื่อใช้
androidx.camera:camera-core:1.0.0-alpha08
เวอร์ชัน Camera-Lifecycle 1.0.0-alpha01
4 ธันวาคม 2019
androidx.camera:camera-lifecycle:1.0.0-alpha01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha01 ของ camera-lifecycle มีการคอมมิตเหล่านี้
หมายเหตุเกี่ยวกับ API
- ระบบจะเพิ่มอาร์ติแฟกต์วงจรของกล้อง ซึ่งให้อินเทอร์เฟซ
LifeCycleCameraProvider
และการใช้งานที่เรียกว่าProcessCameraProvider
ซึ่งให้ฟังก์ชันต่างๆ ของคลาส CameraX เวอร์ชันก่อนหน้าในโค้ดหลักและรับผ่านเมธอดgetInstance()
- แอปควรมีไลบรารีวงจรชีวิตของกล้องเพื่อใช้ CameraX
- ดูหมายเหตุในส่วน camera-core เพื่อดูวิธีเริ่มต้นใช้งาน CameraX โดยใช้
ProcessCameraProvider
Camera-Extensions และ Camera-View เวอร์ชัน 1.0.0
เวอร์ชัน 1.0.0-alpha32
15 ธันวาคม 2021
androidx.camera:camera-extensions:1.0.0-alpha32
และ androidx.camera:camera-view:1.0.0-alpha32
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha32 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำคำอธิบายประกอบ
@RequiresApi(21)
ที่ไม่จำเป็นออกจากคลาส/อินเทอร์เฟซภายใน (I8e286, b/204917951) - อัปเดตไฟล์ API สําหรับอาร์ติแฟกต์ส่วนขยายกล้อง (If683a, b/161377155)
การแก้ไขข้อบกพร่อง
- ไม่อนุญาตให้แอปเปิดใช้โหมดส่วนขยายเมื่อมีการเชื่อมโยง
VideoCapture
ส่วนขยาย CameraX รองรับเฉพาะImageCapture
และPreview
ระบบยังไม่รองรับVideoCapture
หากแอปเชื่อมโยงVideoCapture
และเปิดใช้โหมดส่วนขยาย ระบบจะแสดงIllegalArgumentException
(I0d87b) CameraSelector#filter
ไม่แสดงIllegalArgumentException
อีกต่อไปเมื่อชุดผลลัพธ์ว่างเปล่า (I27804)- เปลี่ยนชื่อ API
ExtensionsManager#getInstance
เป็นgetInstanceAsync
เนื่องจากแสดงผลเป็นListenableFuture
ส่วนต่อท้าย Async ของชื่อฟังก์ชันแสดงได้อย่างชัดเจนว่าเป็นฟังก์ชันแบบแอ็กซิงคิวทีฟ (I279d2) - นำพารามิเตอร์ความละเอียดออกจาก
ExtensionsManager#getEstimatedCaptureLatencyRange
API เนื่องจากผู้ใช้ไม่ทราบขนาดที่รองรับสำหรับกรณีการใช้งานImageCapture
และไม่สามารถแยกแยะได้ว่าข้อมูลเวลาในการตอบสนองที่แสดงผลนั้นสำหรับขนาดเอาต์พุตการจับภาพสูงสุดหรือพารามิเตอร์ความละเอียดอินพุต (I74bb2) - ย้ายพารามิเตอร์
CameraProvider
ของฟังก์ชันExtensionsManager
ไปยังgetInstance()
API เพื่อไม่ให้ผู้ใช้ต้องป้อนพารามิเตอร์CameraProvider
ทุกครั้งที่เรียกใช้ฟังก์ชันExtensionsManager
(Ic7e48)
เวอร์ชัน 1.0.0-alpha31
17 พฤศจิกายน 2021
androidx.camera:camera-extensions:1.0.0-alpha31
และ androidx.camera:camera-view:1.0.0-alpha31
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha31 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม CameraSelector#filter ลงใน Public API เพื่อกรองรายการ CameraInfo ตาม CameraSelector (I105d0)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องเมื่อเปลี่ยนโหมดส่วนขยายอย่างรวดเร็วในอุปกรณ์บางเครื่อง (Iebbef)
เวอร์ชัน 1.0.0-alpha30
13 ตุลาคม 2021
androidx.camera:camera-extensions:1.0.0-alpha30
และ androidx.camera:camera-view:1.0.0-alpha30
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha30 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มคำอธิบายประกอบ @RequiresApi(21) ลงในคลาส CameraX ทั้งหมด และนำ minSdkVersion ออกจาก AndroidManifest.xml ซึ่งจะช่วยให้ผสานรวม camera-core เข้ากับแอปพลิเคชันที่มี minSdkVersion น้อยกว่า 21 ได้โดยง่าย แต่ต้องการใช้เส้นทางโค้ดแบบมีเงื่อนไขซึ่งอาศัย API เวอร์ชัน 21 ขึ้นไป สําหรับแอปพลิเคชันที่มี minSdkVersion 21 ขึ้นไป การเปลี่ยนแปลงนี้ไม่จําเป็นต้องดําเนินการใดๆ (Ie7f2e, b/200599470)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหา AbstractMethodError ซึ่งเกิดขึ้นเมื่อเปิดใช้ ProGuard (Iae468, b/201177844)
เวอร์ชัน 1.0.0-alpha29
29 กันยายน 2021
androidx.camera:camera-extensions:1.0.0-alpha29
และ androidx.camera:camera-view:1.0.0-alpha29
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha29 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ระบบได้นำคำอธิบายประกอบ ExperimentalUseCaseGroup ออกแล้วเนื่องจาก API ไม่ได้อยู่ในขั้นทดลองอีกต่อไป (I01ef5)
- นำ
RotationProvider#removeAllListeners()
ออก โปรดใช้RotationProvider#removeListener(...)
แทน (Id9d4a) - อัปเดตคลาส RotationReceiver: เปลี่ยน set/clear Listener เป็น add/remove/removeAll นำรูปแบบ setListener ที่ใช้เธรดหลักโดยค่าเริ่มต้นออก และเพิ่มคำอธิบายประกอบของเมธอด (Ib1669)
การแก้ไขข้อบกพร่อง
- เปลี่ยนชื่อ ExtensionMode#BEAUTY เป็น FACE_RETOUCH เพื่อนำเสนอสิ่งที่โหมดส่วนขยายทําอย่างถูกต้อง (I61f54, b/198515274)
- แก้ไขปัญหาที่กล้องปิดโดยไม่คาดคิดเมื่อใช้ CameraController และ PreviewView หลายรายการในกิจกรรมเดียว (Ibfd18, b/197539358)
เวอร์ชัน 1.0.0-alpha28
18 สิงหาคม 2021
androidx.camera:camera-extensions:1.0.0-alpha28
และ androidx.camera:camera-view:1.0.0-alpha28
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha28 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ระบบได้นำคำอธิบายประกอบ ExperimentalUseCaseGroupLifecycle ออกแล้วเนื่องจาก API ไม่ได้เป็นแบบทดลองอีกต่อไป (I17b85)
- ปรับโครงสร้าง RotationListener และเปลี่ยนชื่อเป็น RotationProvider โดยยังคงให้บริการฟีเจอร์เดิมด้วย API ที่ต่างออกไปเล็กน้อย (Idffc5)
- เปลี่ยนชื่อ TAP_TO_FOCUS_UNSUCCESSFUL เป็น TAP_TO_FOCUS_NOT_FOCUSED และ TAP_TO_FOCUS_SUCCESSFUL เป็น TAP_TO_FOCUS_FOCUSED ทำให้ OutputSize เป็นค่าสุดท้าย (I099fa)
การแก้ไขข้อบกพร่อง
- นําคลาส
<EffectName><UseCase>Extender
, ExtensionsErrorListener และ ExtensionsManager API ที่เกี่ยวข้องซึ่งเลิกใช้งานแล้วออก (I3b8c3)
เวอร์ชัน 1.0.0-alpha27
21 กรกฎาคม 2021
androidx.camera:camera-extensions:1.0.0-alpha27
และ androidx.camera:camera-view:1.0.0-alpha27
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha27 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เลื่อนระดับ Viewport API ออกจากสถานะทดลอง นําคําอธิบายประกอบเวอร์ชันทดลองของ API ออก (I717ea)
- เปลี่ยนชื่อ
CoordinateTransform#getTransform
เป็นCoordinateTransform#transform
และอัปเดต JavaDoc (I864ae)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการยืดโหมด
PreviewView PERFORMANCE
เมื่อใช้ร่วมกับ UI ของเครื่องมือเขียน (Ie1137, b/183864890)
เวอร์ชัน 1.0.0-alpha26
30 มิถุนายน 2021
androidx.camera:camera-extensions:1.0.0-alpha26
และ androidx.camera:camera-view:1.0.0-alpha26
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha26 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มเมธอดใหม่
CameraController#getTapToFocusState()
ที่แสดงผลลัพธ์การแตะเพื่อโฟกัสล่าสุด (Iaccb0) - เพิ่มฟีเจอร์หลักของกล้องลงใน CameraController ได้แก่ Getter/Setter สำหรับสัดส่วนภาพเป้าหมาย ความละเอียดเป้าหมาย โหมดการจับภาพ CameraControl และตัวดำเนินการที่กำหนดเอง (Iea8f2)
- เพิ่มคลาส RotationReceiver ที่จะรับการเปลี่ยนแปลงการหมุนของ Surface ซึ่งสามารถใช้เพื่อตั้งค่าการหมุนเป้าหมายเมื่ออุปกรณ์อยู่ในโหมดแนวตั้ง/แนวนอนแบบคงที่ (Ib278f)
- เปิดเผย API สาธารณะ getEstimatedCaptureLatencyRange ใหม่ในคลาส ExtensionsManager (I6a8ec)
- ExtensionsErrorListener ที่เลิกใช้งาน ปัจจุบันอินเทอร์เฟซนี้ใช้เพื่อตรวจสอบว่า Preview หรือ ImageCapture ขาดหายไปหรือไม่เมื่อเปิดใช้โหมดส่วนขยาย CameraX จะเพิ่มการแสดงตัวอย่างหรือ ImageCapture เพิ่มเติมโดยอัตโนมัติเพื่อให้ฟังก์ชันส่วนขยายทำงานได้อย่างราบรื่น หลังจากนั้น ระบบจะไม่รายงานข้อผิดพลาดผ่านอินเทอร์เฟซนี้ (I47d9e)
- เปิดตัว ExtensionsManager getInstance, isExtensionAvailable และ getExtensionEnabledCameraSelector API สาธารณะใหม่ รวมถึงเลิกใช้งานคลาส
<EffectName><UseCase>Extender
เก่าและ API ที่เกี่ยวข้อง (I329e6)
เวอร์ชัน 1.0.0-alpha25
2 มิถุนายน 2021
androidx.camera:camera-extensions:1.0.0-alpha25
และ androidx.camera:camera-view:1.0.0-alpha25
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha25 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้ ExperimentalCameraFilter API ไม่ได้อยู่ในระยะทดลองแล้ว และกลายเป็น API อย่างเป็นทางการ สามารถใช้ได้โดยไม่ต้องมีคำอธิบายประกอบ OptIn (I4bc94)
- เพิ่มยูทิลิตีที่เปลี่ยนพิกัดระหว่างกรณีการใช้งาน ตัวอย่างการใช้งาน: การเปลี่ยนรูปแบบพิกัดที่ตรวจพบใน Use Case ของ ImageAnalysis และไฮไลต์วัตถุที่ตรวจพบในตัวอย่าง (I63ab1, b/137515129)
- นำ
CameraView
ออกแล้วCameraView
ได้รับการแทนที่โดยCameraController
แล้ว โปรดดูวิธีย้ายข้อมูลในคำแนะนำในการย้ายข้อมูล (Id5005)
การแก้ไขข้อบกพร่อง
- แทนที่
ExperimentalUseCaseGroupLifecycle
ด้วยExperimentalUseCaseGroup
แล้ว (I3b2ef, b/159033688)
เวอร์ชัน 1.0.0-alpha24
21 เมษายน 2021
androidx.camera:camera-extensions:1.0.0-alpha24
และ androidx.camera:camera-view:1.0.0-alpha24
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha24 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แทนที่คำอธิบายประกอบ
@Experimental
ด้วย@RequiresOptIn
ใน API เวอร์ชันทดลอง สําหรับการเรียก API เวอร์ชันทดลอง ให้ใช้androidx.annotation.OptIn
แทนandroidx.annotation.experimental.UseExperimental
ที่เลิกใช้งานแล้ว (Iff226) - แก้ไขปัญหา PreviewView ที่ยืดบน Samsung J5 Prime (Ib10b6)
ชิ้นงานกล้องและมุมมองเวอร์ชัน 1.0.0-alpha23
24 มีนาคม 2021
androidx.camera:camera-extensions:1.0.0-alpha23
และ androidx.camera:camera-view:1.0.0-alpha23
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha23 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เราจะเลิกใช้งาน CameraView โปรดใช้
LifecycleCameraController
แทน ดูคำแนะนำในการย้ายข้อมูล (Idac2c) - เพิ่มคําอธิบายประกอบ FloatRange ไปยัง setLinearZoom() (I69971)
การแก้ไขข้อบกพร่อง
- กำหนดให้ใช้อาร์ติแฟกต์ 1.0.0 กับรายการที่กําหนดไว้สำหรับมุมมองกล้อง การพึ่งพา camera-view จะไม่ทําให้ Gradle อัปเกรดข้อกําหนดของ camera-core, camera-camera2 และ camera-lifecycle เป็นอาร์ติแฟกต์ 1.1.0 เวอร์ชันล่าสุดโดยอัตโนมัติอีกต่อไป แม้ว่า camera-view จะยังคงเข้ากันได้กับอาร์ติแฟกต์เหล่านั้นหากมีการตั้งค่าให้ใช้ 1.1.0 อย่างชัดเจน (Ic8fa1, b/181599852)
- แก้ไขการแสดงตัวอย่างที่ยืดของ Samsung A3 ใน PreviewView (Iacb30, b/180121821)
- แก้ไขปัญหาที่ไม่สามารถตั้งค่าตัวเลือกกล้องก่อนที่จะเริ่มต้นกล้อง (Ic8bd0)
ชิ้นงานกล้องและมุมมองเวอร์ชัน 1.0.0-alpha22
24 กุมภาพันธ์ 2021
androidx.camera:camera-extensions:1.0.0-alpha22
และ androidx.camera:camera-view:1.0.0-alpha22
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha22 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม getter ของ CameraInfo ไปยัง CameraController (Ib8138, b/178251727)
การแก้ไขข้อบกพร่อง
- แก้ไข ExtensionsErrorListener ให้รายงานข้อผิดพลาดเมื่อมีการเชื่อมโยงเฉพาะ Preview หรือ ImageCapture (I5ae39)
ชิ้นงานกล้องและมุมมองเวอร์ชัน 1.0.0-alpha21
27 มกราคม 2021
androidx.camera:camera-extensions:1.0.0-alpha21
และ androidx.camera:camera-view:1.0.0-alpha21
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha21 มีการคอมมิตเหล่านี้
เผยแพร่เพื่อรองรับรายการอื่นๆ ในคลังกล้อง
ชิ้นงานกล้องและมุมมองเวอร์ชัน 1.0.0-alpha20
16 ธันวาคม 2020
androidx.camera:camera-extensions:1.0.0-alpha20
และ androidx.camera:camera-view:1.0.0-alpha20
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha20 มีคอมมิตเหล่านี้
เผยแพร่เพื่อรองรับรายการอื่นๆ ในคลังกล้อง
Camera-Extensions & Camera-View เวอร์ชัน 1.0.0-alpha19
11 พฤศจิกายน 2020
androidx.camera:camera-extensions:1.0.0-alpha19
และ androidx.camera:camera-view:1.0.0-alpha19
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha19 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่มคำอธิบายประกอบ
@ExperimentalVideo
ลงในมุมมองกล้อง คําอธิบายประกอบนี้จะทําเครื่องหมาย API ที่แสดงฟังก์ชันการทํางานของวิดีโอเวอร์ชันทดลอง ซึ่งอาจมีการเปลี่ยนแปลงเมื่อฟีเจอร์ได้รับการพัฒนาอย่างสมบูรณ์ วิธีการใดก็ตามที่ใช้ API เหล่านี้ควรใช้คำอธิบายประกอบ@UseExperimental
โดยให้ExperimentalVideo
เป็นmarkerClass
(I6d729)
Camera-Extensions เวอร์ชัน 1.0.0-alpha18
14 ตุลาคม 2020
androidx.camera:camera-extensions:1.0.0-alpha18
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha18 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ปรับปรุงเวลาในการตอบสนองของการสร้างค่าเริ่มต้นและ bindToLifecycle (I61dc5) ของ CameraX
<UseCase>.getTargetRotation()
จะแสดงผลเป็นSurface.ROTATION_0
หากเรียกใช้ก่อนที่จะแนบกับอินสแตนซ์ Camera เว้นแต่จะมีการตั้งค่า targetRotation ใน Builder หรือ UseCase (I80fcd)
มุมมองกล้องเวอร์ชัน 1.0.0-alpha18
14 ตุลาคม 2020
androidx.camera:camera-view:1.0.0-alpha18
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha18 มีการคอมมิตเหล่านี้
เผยแพร่เพื่อรองรับรายการอื่นๆ ในคลังกล้อง
Camera-Extensions เวอร์ชัน 1.0.0-alpha17
23 กันยายน 2020
androidx.camera:camera-extensions:1.0.0-alpha17
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha17 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- รุ่นที่รองรับ Camera-Core 1.0.0-beta10
มุมมองกล้องเวอร์ชัน 1.0.0-alpha17
23 กันยายน 2020
androidx.camera:camera-view:1.0.0-alpha17
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha17 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- รุ่นที่รองรับ Camera-Core 1.0.0-beta10
Camera-Extensions เวอร์ชัน 1.0.0-alpha16
16 กันยายน 2020
androidx.camera:camera-extensions:1.0.0-alpha16
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha16 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่มเมธอดใน
ExtensionsManager
เพื่อรับออบเจ็กต์Extensions
ซึ่งใช้ในการเปิดใช้และค้นหาส่วนขยายในอินสแตนซ์กล้อง (I4fb7e)
มุมมองกล้องเวอร์ชัน 1.0.0-alpha16
16 กันยายน 2020
androidx.camera:camera-view:1.0.0-alpha16
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha16 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำ
PreviewView#setDeviceRotationForRemoteDisplayMode()
และPreviewView#getDeviceRotationForRemoteDisplayMode()
ออกแล้ว 2 วิธีนี้มีไว้สำหรับการปรับแต่งการหมุนของตัวอย่างเพลงเมื่อการหมุนที่ต้องการไม่ใช่การหมุนของจอแสดงผล เช่น จอแสดงผลระยะไกล หากต้องการจัดการการหมุนของตัวอย่างเพลงที่ไม่ได้แสดงในตอนนี้ ให้ตั้งค่าการหมุนที่ต้องการด้วยPreview#setTargetRotation()
และPreviewView#getViewPort(targetRotation)
ที่เพิ่มใหม่ (Ib62cc) - เปลี่ยนชื่อ
createSurfaceProvider()
เป็นgetSurfaceProvider()
แล้ว เมธอดนี้จะแสดงผลอินสแตนซ์ Preview.SurfaceProvider เดียวกันเสมอ (Iff83c)
การแก้ไขข้อบกพร่อง
- บังคับ PreviewView ให้ใช้ TextureView หากเปิดใช้เอฟเฟกต์ส่วนขยายและการติดตั้งใช้งานไลบรารีของผู้ให้บริการต้องดำเนินการพิเศษบนพื้นผิวเอาต์พุต (I0c3cc)
- อนุญาตให้หมุนเป้าหมายแบบกำหนดเองสำหรับการแสดงตัวอย่าง ระบบจะคํานวณข้อมูลการเปลี่ยนรูปแบบและแสดงผลต่อผู้ใช้ทันทีผ่าน
TranformationInfoListener
callback ใหม่ (I21470)
ปัญหาที่ทราบ
- ใน PreviewView ระบบจะไม่เรียกใช้
OnClickListener#onClick()
เมื่อผู้ใช้ปลายทางคลิก PreviewView PreviewView#onTouchEvent() ใช้เหตุการณ์การสัมผัสโดยไม่ได้ตั้งใจ ปัญหานี้จะได้รับการแก้ไขในรุ่นถัดไป - MeteringPoint ที่ได้มาจาก
PreviewView#getMeteringPointFactory()
อาจไม่ถูกต้องหากใช้ ViewPort กับ PreviewView
Camera-Extensions เวอร์ชัน 1.0.0-alpha15
19 สิงหาคม 2020
androidx.camera:camera-extensions:1.0.0-alpha15
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha15 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ตอนนี้เมธอด
ExtensionsManager.init()
จะรับ Context เป็นพารามิเตอร์แทนที่จะมีอาร์กิวเมนต์ 0 รายการ (Ife754) การเริ่มต้นไม่ควรขัดข้องอีกต่อไปเมื่อใช้ Context ที่ไม่ให้ออบเจ็กต์แอปพลิเคชันจาก
Context.getApplicationContext()
(I3d3c9, b/160817073)มุมมองกล้องเวอร์ชัน 1.0.0-alpha15
19 สิงหาคม 2020
androidx.camera:camera-view:1.0.0-alpha15
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha15 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
DisplayOrientedMeteringPointFactory
จะรับอินสแตนซ์CameraInfo
แทนCameraSelector
เพื่อให้มีการแมปโดยตรงกับกล้องที่โรงงานจะสร้างคะแนน คลาสทั้งหมดที่ใช้DisplayOrientedMeteringPointFactory
จะรับอินสแตนซ์CameraInfo
แทนCameraSelector
ด้วย (I400c1)- นำ
TextureViewMeteringPointFactory
ออกแล้วPreviewView
มี API สาธารณะ (createMeteringPointFactory()
) เพื่อสร้างโรงงานจุดวัด ไม่ว่าจะใช้TextureView
หรือSurfaceView
ก็ตาม (Ide693) - เปลี่ยนชื่อโหมดการติดตั้งใช้งาน
SURFACE_VIEW
/TEXTURE_VIEW
ของ PreviewView เป็นPERFORMANCE
/COMPATIBLE
โดยPERFORMANCE
คือโหมดSURFACE_VIEW
เดิม และCOMPATIBLE
คือโหมดTEXTURE_VIEW
เดิม (I0edc2) - สําหรับการจับภาพ ให้เขียนทับ Flag พลิกแนวนอนในข้อมูลเมตาตามทิศทางของกล้อง (I28499)
Camera-Extensions เวอร์ชัน 1.0.0-alpha14
22 กรกฎาคม 2020
androidx.camera:camera-extensions:1.0.0-alpha14
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha14 มีการคอมมิตเหล่านี้
มุมมองกล้องเวอร์ชัน 1.0.0-alpha14
22 กรกฎาคม 2020
androidx.camera:camera-view:1.0.0-alpha14
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha14 มีการคอมมิตเหล่านี้
Camera-Extensions เวอร์ชัน 1.0.0-alpha13
24 มิถุนายน 2020
androidx.camera:camera-extensions:1.0.0-alpha13
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha13 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่มอินเทอร์เฟซเวอร์ชันทดลองสำหรับการกรองกล้องตามรหัสกล้องและ CameraCharacteristics (I28f61)
มุมมองกล้องเวอร์ชัน 1.0.0-alpha13
24 มิถุนายน 2020
androidx.camera:camera-view:1.0.0-alpha13
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha13 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- CameraView ไม่ขัดข้องด้วย IllegalArgumentException อีกต่อไปเมื่อมีการเชื่อมโยงกับ LifecycleOwner ที่ Lifecycle เปลี่ยนเป็นสถานะ DESTROYED ไม่นานหลังจากที่มีการเชื่อมโยง วงจรการเชื่อมโยงที่อยู่ในสถานะ "ถูกทำลาย" จะไม่ได้พยายามเปิดกล้อง (I7c2b8)
- ตอนนี้ StreamState ของ PreviewView พร้อมใช้งานผ่าน CameraView.getPreviewStreamState() แล้ว (I21a2b)
Camera-Extensions เวอร์ชัน 1.0.0-alpha12
10 มิถุนายน 2020
androidx.camera:camera-extensions:1.0.0-alpha12
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha12 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องเมื่อแอปเริ่มต้นขึ้นขณะเริ่มต้นใช้งาน CameraX ขณะที่โทรศัพท์อยู่ในโหมดห้ามรบกวน
InitializationException
ที่มีCameraUnavailableException
จะตั้งค่าเป็นListenableFuture
ของผลลัพธ์การเริ่มต้นแทนที่จะทำให้แอปพลิเคชันขัดข้อง (I9909a, b/149413835)
มุมมองกล้องเวอร์ชัน 1.0.0-alpha12
10 มิถุนายน 2020
androidx.camera:camera-view:1.0.0-alpha12
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha12 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่ม
PreviewView#getBitmap()
API ซึ่งแสดงผลเนื้อหาที่แสดงบนแพลตฟอร์มแสดงตัวอย่างเป็นภาพบิตแมป (I9b500, b/157659818)
Camera-Extensions เวอร์ชัน 1.0.0-alpha11
27 พฤษภาคม 2020
androidx.camera:camera-extensions:1.0.0-alpha11
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha11 มีการคอมมิตเหล่านี้
มุมมองกล้องเวอร์ชัน 1.0.0-alpha12
10 มิถุนายน 2020
androidx.camera:camera-view:1.0.0-alpha12
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha12 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
การเปลี่ยนแปลง API
การแก้ไขข้อบกพร่อง
- เพิ่ม
PreviewView#getBitmap()
API ซึ่งแสดงผลเนื้อหาที่แสดงบนแพลตฟอร์มแสดงตัวอย่างเป็นภาพบิตแมป (I9b500, b/157659818)
มุมมองกล้อง เวอร์ชัน 1.0.0-alpha11
27 พฤษภาคม 2020
androidx.camera:camera-view:1.0.0-alpha11
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha11 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
PreviewView#getPreviewStreamState
API ซึ่งอนุญาตให้แอปตรวจสอบว่ากำลังสตรีมตัวอย่างเพลงอยู่หรือไม่ เมื่อ PreviewView อยู่ในโหมด TEXTURE_VIEW สถานะ STREAMING จะรับประกันว่ารูปภาพตัวอย่างจะปรากฏขึ้นด้วย (Ic0906, b/154652477) - เพิ่ม
PreviewView#setDeviceRotationForRemoteDisplayMode()
API เพื่อระบุการหมุนอุปกรณ์สำหรับการคำนวณการเปลี่ยนรูปแบบหากแอปพลิเคชันทำงานในโหมดการแสดงผลระยะไกล (I59b95, b/153514525)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาการบิดเบือนของตัวอย่างในกล้อง
FULL/LIMITED/LEVEL_3
ที่ใช้ Android 7.0 และต่ำกว่า ใช้โหมดImplementationMode#TEXTURE_VIEW
โดยบังคับเมื่อ Android เป็นเวอร์ชัน 7.0 หรือต่ำกว่า (I83e30, b/155085307) - นําพารามิเตอร์
CameraInfo
ออกจากPreviewView#createSurfaceProvider()
แล้ว ตอนนี้PreviewView
จะดึงข้อมูลนี้จากSurfaceRequest
ภายใน (If18f0, b/154652477) - แก้ไขสัดส่วนการแสดงผลเริ่มต้นของ VideoCapture เป็น 16:9 ใน CameraView (Ie6a7b, b/153237864)
- แก้ไขปัญหาหน้าจอสีดําของ
PreviewView
เมื่อปัดเศษPreview
ออกแล้วปัดกลับใน ViewPager2 และแก้ไขปัญหาเมื่อremoveView(previewview)
ตามด้วยaddView(previewView)
ด้วย (Iab555, b/149877652, b/147354615) - อัปเดต
CameraView#takePicture()
API เพื่ออนุญาตให้บันทึกรูปภาพไปยังUri
และOutputStream
อัปเดตแอปทดสอบให้ใช้Uri
เป็นตัวอย่างตามหลักเกณฑ์ (Ia2459, b/153607583) - คุณตั้งค่าประเภทสเกลของ PreviewView จากเลย์เอาต์ XML ได้โดยการตั้งค่าแอตทริบิวต์
ScaleType
(I08565, b/153015659) - นำ
CameraView.ScaleType
ออกแล้ว แต่ให้ใช้PreviewView.ScaleType
เพื่อตั้งค่า/รับประเภทมาตราส่วนด้วย CameraView แทน (Ia8974, b/153014831) - กำหนดสีพื้นหลังให้กับ
PreviewView
โดยค่าเริ่มต้นหากยังไม่มี วิธีนี้จะช่วยป้องกันไม่ให้เนื้อหาที่อยู่เบื้องหลังแสดงขึ้นก่อนที่สตรีมตัวอย่างจะเริ่มเล่น (I09fad)
Camera-Extensions เวอร์ชัน 1.0.0-alpha10
15 เมษายน 2020
androidx.camera:camera-extensions:1.0.0-alpha10
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha10 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- การแก้ไขเพื่อรองรับรุ่นของ Camera-Core
มุมมองกล้อง เวอร์ชัน 1.0.0-alpha10
15 เมษายน 2020
androidx.camera:camera-view:1.0.0-alpha010
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha010 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ทราบก่อนหน้านี้ซึ่งการใช้งาน SurfaceView ของ
PreviewView
ทำงานได้ไม่ดีในอุปกรณ์บางรุ่น และทำให้แอปขัดข้องหลังจากกลับมาแสดงตัวอย่างต่อ (I5ed6b)
Camera-Extensions เวอร์ชัน 1.0.0-alpha09
1 เมษายน 2020
androidx.camera:camera-extensions:1.0.0-alpha09
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha09 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- อัปเดตเพื่อรองรับการแก้ไขข้อบกพร่องในอาร์ติแฟกต์
camera-camera2:1.0.0-beta02
,camera-core:1.0.0-beta02
และcamera-lifecycle:1.0.0-beta02
มุมมองกล้องเวอร์ชัน 1.0.0-alpha09
1 เมษายน 2020
androidx.camera:camera-view:1.0.0-alpha09
เปิดตัว เวอร์ชัน 1.0.0-alpha09 มีการคอมมิตเหล่านี้
ปัญหาที่ทราบ
- การใช้
ImplementationMode.SURFACE_VIEW
กับPreviewView
อาจทํางานไม่ถูกต้องในอุปกรณ์บางรุ่น เนื่องจากSurfaceView
ที่ใช้ในการแสดงตัวอย่างจะลบล้างพื้นผิวเมื่อวงจรชีวิตของหน้าต่างที่แสดงอยู่หยุดลง เมื่อระบบรีสตาร์ท กล้องจะเปิดขึ้นอีกครั้งและอาจพยายามแสดงตัวอย่างต่อก่อนที่พื้นผิวของSurfaceView
จะใช้งานได้อีกครั้ง ในระหว่างนี้ คุณควรใช้ImplementationMode.TEXTURE_VIEW
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ
PreviewView.setImplementationMode()
เป็นPreviewView.setPreferredImplementationMode()
แล้ว - เปลี่ยนชื่อ
PreviewView.getImplementationMode()
เป็นPreviewView.getPreferredImplementationMode()
แล้ว - แทนที่
PreviewView.getSurfaceProvider()
ด้วยPreviewView.createSurfaceProvider(CameraInfo)
ซึ่งใช้อินสแตนซ์CameraInfo
ที่อนุญาตค่า Null เพื่อเพิ่มประสิทธิภาพการแสดงตัวอย่างโดยใช้ImplementationMode.SURFACE_VIEW
ทุกครั้งที่เป็นไปได้ หากมีการส่งอินสแตนซ์ Null หรือคุณตั้งค่าโหมดการติดตั้งใช้งานที่ต้องการเป็นImplementationMode.TEXTURE_VIEW
ระบบจะใช้ImplementationMode.TEXTURE_VIEW
ภายใน ตัวอย่างโค้ดต่อไปนี้แสดงวิธีที่ Use Case ของตัวอย่างเคยใช้กับ PreviewView
preview.setSurfaceProvider(previewView.previewSurfaceProvider) cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
ขณะนี้คุณสามารถเขียนข้อความต่อไปนี้ได้
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview) previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
เพิ่มคำอธิบายประกอบ
@UiThread
ลงในPreviewView.getSurfaceProvider()
แล้ว ซึ่งหมายความว่าต้องเรียกใช้จากเธรดหลัก (I192f3)เพิ่ม
PreviewView.setScaleType()
ซึ่งช่วยให้ตั้งค่าประเภทมาตราส่วนของตัวอย่างได้ โดยค่านี้ยอมรับค่าใดค่าหนึ่งในPreviewView.ScaleType
และค่าเริ่มต้นคือPreviewView.ScaleType.FILL_CENTER
เพิ่ม
PreviewView.getScaleType()
แล้วนำการรองรับการตั้งค่าโหมดการติดตั้งใช้งานสำหรับ
PreviewView
ในเลย์เอาต์ XML โดยใช้แอตทริบิวต์implementationMode
ออกเพิ่ม
createMeteringPointFactory()
API ลงใน PreviewView เพื่อรองรับการแปลง (x, y) ในPreviewView
เป็นMeteringPoint
(Ib36d7)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหากรณีที่แสดงตัวอย่างไม่ถูกต้องหลังจากมีการเปลี่ยนแปลงขนาดของ
PreviewView
(I71101)
Camera-Extensions เวอร์ชัน 1.0.0-alpha08
26 กุมภาพันธ์ 2020
androidx.camera:camera-extensions:1.0.0-alpha08
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha08 มีการคอมมิตเหล่านี้
มุมมองกล้องเวอร์ชัน 1.0.0-alpha08
26 กุมภาพันธ์ 2020
androidx.camera:camera-view:1.0.0-alpha08
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha08 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แทนที่
ListenableFuture
ในSurfaceRequest.provideSurface()
ด้วยExecutor
และCallback
วิธีนี้ทำให้ API ทำงานได้ง่ายขึ้นโดยไม่ต้องจัดการข้อยกเว้นในprovideSurface()
อีกต่อไป และบังคับให้ยกเลิกการเรียกกลับprovideSurface()
ไม่ได้ การดำเนินการนี้เป็นการป้องกันการขัดข้องในอุปกรณ์รุ่นเก่าที่เกิดจากการเปิดตัวแพลตฟอร์มก่อนเวลาอันควร ตอนนี้ระบบจะใช้ออบเจ็กต์SurfaceRequest.Result
เพื่อติดตามวิธีที่SurfaceRequest
ใช้Surface
ที่ระบุ (I7854b) - เปลี่ยนชื่อ
SurfaceRequest.setSurface(Surface)
เป็นSurfaceRequest.provideSurface(Surface)
และSurfaceRequest.setWillNotComplete()
เป็นSurfaceRequest.willNotProvideSurface()
(I224fe) - แก้ไขการเริ่มต้นตัวแปรแอปที่เปิดใช้ ProGuard โดยการคง Flag ที่กำหนดผู้ให้บริการ
CameraXConfig
เริ่มต้นไว้ (I2d6c1)
Camera-Extensions เวอร์ชัน 1.0.0-alpha07
10 กุมภาพันธ์ 2020
androidx.camera:camera-extensions:1.0.0-alpha07
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha07 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ตอนนี้อาร์กิวเมนต์
ImageCaptureException
รายการเดียวได้เข้ามาแทนที่อาร์กิวเมนต์ImageCapture.OnImageSavedCallback.onError()
และImageCapture.OnImageCapturedCallback.onError()
ก่อนหน้านี้แล้ว ซึ่งยังคงมีข้อมูลทั้งหมดที่ส่งก่อนหน้านี้ - ระบบได้นำอาร์กิวเมนต์ไฟล์ที่ส่งผ่านใน
ImageCapture.OnImageSavedCallback.onImageSaved()
ก่อนหน้านี้ออกแล้ว (I750d2)
มุมมองกล้อง เวอร์ชัน 1.0.0-alpha07
10 กุมภาพันธ์ 2020
androidx.camera:camera-view:1.0.0-alpha07
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha07 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- การใช้งาน
TextureView
ของPreviewView
จะตั้งค่าขนาดของTextureView
เป็นขนาดเอาต์พุตของเซ็นเซอร์กล้องก่อนที่จะปรับขนาดให้พอดีกับPreviewView
หลัก หากต้องการให้ตัวอย่างจากกล้องแสดงเต็มพื้นที่ UI (เช่น เต็มหน้าจอ) คุณไม่ควรตั้งค่าขนาดของPreviewView
เป็นค่าคงที่ หรือให้ตัดเนื้อหา (โดยใช้แอตทริบิวต์ "wrap_content
" เป็นต้น) ซึ่งอาจส่งผลให้ตัวอย่างจากกล้องแสดงเพียงบางส่วนของPreviewView
(หากขนาดเอาต์พุตของเซ็นเซอร์กล้องเล็กกว่า) แต่คุณควรกำหนดให้PreviewView
มีขนาดเท่ากับองค์ประกอบหลัก (โดยใช้แอตทริบิวต์ "match_parent
" เป็นต้น) (1204869)
การแก้ไขข้อบกพร่อง
- อัปเดต
ImageCapture
เพื่ออนุญาตให้บันทึกรูปภาพไปยังUri
และOutputStream
รวมวิธีการtakePicture
ที่โอเวอร์โหลดไว้ด้วยกัน อัปเดตแอปทดสอบให้ใช้Uri
เป็นตัวอย่างมาตรฐาน (Ia3bec) - เปลี่ยนชื่อ
Preview.PreviewSurfaceProvider
เป็นPreview.SurfaceProvider
แล้วSurfaceProvider
ไม่ได้กำหนดให้นักพัฒนาแอปต้องสร้างListenableFuture
ของตนเองอีกต่อไป และตอนนี้การระบุSurface
ทำได้ผ่านออบเจ็กต์SurfaceRequest
ใหม่ ระบบได้นำเมธอดPreview.getPreviewSurfaceProvider()
ออกเนื่องจากมีความเสี่ยงที่จะนำไปใช้ในทางที่ผิดเมื่อใช้Preview
ร่วมกับคลาสอื่นๆ เช่นPreviewView
(I20105) - ตอนนี้อาร์กิวเมนต์
ImageCaptureException
รายการเดียวได้เข้ามาแทนที่อาร์กิวเมนต์ImageCapture.OnImageSavedCallback.onError()
และImageCapture.OnImageCapturedCallback.onError()
ก่อนหน้านี้แล้ว ซึ่งยังคงมีข้อมูลทั้งหมดที่ส่งก่อนหน้านี้ - ระบบได้นำอาร์กิวเมนต์ไฟล์ที่ส่งผ่านใน
ImageCapture.OnImageSavedCallback.onImageSaved()
ก่อนหน้านี้ออกแล้ว (I750d2) - API ได้รับการอัปเดต โดยเมธอด
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
และgetLinearZoom()
ของCameraInfo
ผสานรวมเข้ากับgetZoomState()
ซึ่งแสดงผลอินสแตนซ์ZoomState
(Ib19fe)
Camera-Extensions เวอร์ชัน 1.0.0-alpha06
22 มกราคม 2020
androidx.camera:camera-extensions:1.0.0-alpha06
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha06 มีการคอมมิตเหล่านี้
อัปเดต
- การแก้ไขและการอัปเดตต่างๆ เพื่อรองรับการเปลี่ยนแปลงของ Camera Core และ Camera2
มุมมองกล้องเวอร์ชัน 1.0.0-alpha06
22 มกราคม 2020
androidx.camera:camera-view:1.0.0-alpha06
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha06 มีการคอมมิตเหล่านี้
อัปเดต
- การแก้ไขและการอัปเดตต่างๆ เพื่อรองรับการเปลี่ยนแปลงของ Camera Core และ Camera2
Camera-Extensions เวอร์ชัน 1.0.0-alpha05
18 ธันวาคม 2019
androidx.camera:camera-extensions:1.0.0-alpha05
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha05 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- อัปเดตให้ตรงกับ Camera Core API ภายใน
มุมมองกล้องเวอร์ชัน 1.0.0-alpha05
18 ธันวาคม 2019
androidx.camera:camera-view:1.0.0-alpha05
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha05 มีการคอมมิตเหล่านี้
ปัญหาที่ทราบ
- อัตราส่วนอาจไม่ถูกต้องเมื่อใช้ PreviewView (b/146215202)
ฟีเจอร์ใหม่
- ใช้คลาสใหม่ที่ชื่อ
PreviewView.TextureViewImplementation
ซึ่งซิงค์วงจรชีวิตของ SurfaceTexture กับการใช้พื้นผิว TextureView ของกล้อง
Camera-Extensions เวอร์ชัน 1.0.0-alpha04
4 ธันวาคม 2019
androidx.camera:camera-extensions:1.0.0-alpha04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha04 ของ camera-extensions มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
ตอนนี้การตรวจสอบความพร้อมใช้งานและการเปิดใช้ส่วนขยายจะใช้
CameraSelector
เป็นพารามิเตอร์อินพุต โดยต้องเป็นCameraSelector
เดียวกับที่ใช้สำหรับเชื่อมโยง Use Caseval 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)
คุณต้องเริ่มต้นส่วนขยายก่อนจึงจะใช้คลังส่วนขยายได้
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() )
มุมมองกล้องเวอร์ชัน 1.0.0-alpha04
4 ธันวาคม 2019
androidx.camera:camera-view:1.0.0-alpha04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha04 ของ camera-view มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- มีคลาส
PreviewView
ไว้สําหรับแสดงเอาต์พุตจาก Use Case ของตัวอย่างในแอปพลิเคชันได้อย่างง่ายดาย PreviewView
สามารถรวมไว้ในเลย์เอาต์ได้ดังนี้<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />
PreviewView
มีPreviewSurfaceProvider
เพื่อเชื่อมต่อกรณีการใช้งานเวอร์ชันตัวอย่างได้อย่างง่ายดายpreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
"
ZoomLevel
" เปลี่ยนเป็น "ZoomRatio
" ในการตั้งชื่อ APIพารามิเตอร์ของเมธอดบางรายการมีการเปลี่ยนแปลงความสามารถในการเป็น Null
Camera-Extensions และ Camera-View เวอร์ชัน 1.0.0-alpha03
9 ตุลาคม 2019
androidx.camera:camera-extensions:1.0.0-alpha03
และ androidx.camera:camera-view:1.0.0-alpha03
เผยแพร่แล้ว เหล่านี้คือการคอมมิตที่รวมอยู่ใน camera-extensions:1.0.0-alpha03
และเหล่านี้คือการคอมมิตที่รวมอยู่ใน camera-view:1.0.0-alpha03
ฟีเจอร์ใหม่
- เพิ่มตัวเริ่มต้นบริบทสําหรับส่วนขยาย เพิ่มเวอร์ชันส่วนขยายเป็น 1.1.0
Camera-Extensions และ Camera-View เวอร์ชัน 1.0.0-alpha02
5 กันยายน 2019
androidx.camera:camera-extensions:1.0.0-alpha02
และ
androidx.camera:camera-view:1.0.0-alpha02
เผยแพร่แล้ว การคอมมิตที่รวมอยู่ใน camera-extensions:1.0.0-alpha02 และการคอมมิตที่รวมอยู่ใน camera-view:1.0.0-alpha02
- เพิ่มการทดสอบเพื่อยืนยันว่า
PreviewImageProcessorImpl
ใช้การประทับเวลาอย่างถูกต้อง - แก้ไขการทดสอบ
ExtensionTest
ที่ไม่สําเร็จใน Nexus 5 (API ระดับ 21) และตรวจสอบว่าฟีเจอร์แสดงตัวอย่างพร้อมใช้งาน
Camera-Extensions และ Camera-View เวอร์ชัน 1.0.0-alpha01
7 สิงหาคม 2019
androidx.camera:camera-extensions:1.0.0-alpha01
และ
androidx.camera:camera-view:1.0.0-alpha01
เผยแพร่แล้ว
การคอมมิตที่รวมอยู่ใน camera-extensions:1.0.0-alpha01 และการคอมมิตที่รวมอยู่ใน camera-view:1.0.0-alpha01
- คลังใหม่สำหรับส่วนขยายกล้องในอนาคตเพื่อเข้าถึงเอฟเฟกต์ในอุปกรณ์ที่รองรับ คลังนี้ยังอยู่ระหว่างการพัฒนา
- คลาสมุมมองกล้องใหม่ คลังนี้ยังอยู่ระหว่างการพัฒนา