CameraX

CameraX เป็นส่วนเสริมของ Jetpack ที่ช่วยให้เพิ่มความสามารถของกล้องลงในแอปได้ง่ายขึ้น ไลบรารีนี้มีการแก้ไขและวิธีแก้ปัญหาความเข้ากันได้หลายอย่างเพื่อช่วยให้นักพัฒนาแอปได้รับประสบการณ์การใช้งานที่สอดคล้องกันในอุปกรณ์หลายๆ รุ่น

ตารางนี้แสดงอาร์ติแฟกต์ทั้งหมดในกลุ่ม androidx.camera

อาร์ติแฟกต์ รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า รุ่นอัลฟ่า
camera-camera2 1.6.2 1.7.0-rc01 - -
camera-core 1.6.2 1.7.0-rc01 - -
camera-compose 1.6.2 1.7.0-rc01 - -
camera-effects 1.6.2 1.7.0-rc01 - -
camera-extensions 1.6.2 1.7.0-rc01 - -
camera-feature-combination-query - - - 1.5.0-alpha06
camera-feature-combination-query-play-services - - - 1.5.0-alpha06
camera-lifecycle 1.6.2 1.7.0-rc01 - -
camera-mlkit-vision 1.6.2 1.7.0-rc01 - -
มุมมองกล้อง 1.6.2 1.7.0-rc01 - -
camera-viewfinder - - 1.3.0-beta02 1.4.0-alpha07
camera-video 1.6.2 1.7.0-rc01 - -
อัปเดตคลังนี้ครั้งล่าสุดเมื่อวันที่ 21 ตุลาคม 2026

การทดสอบอุปกรณ์

CameraX ได้รับการทดสอบในอุปกรณ์หลายรุ่นในห้องปฏิบัติการของเรา หากต้องการดูรายการอุปกรณ์ที่อยู่ในห้องทดลองในปัจจุบัน โปรดดูอุปกรณ์ที่ผ่านการทดสอบในห้องทดลองของ CameraX

การประกาศทรัพยากร Dependency

หากต้องการเพิ่มทรัพยากร Dependency ใน CameraX คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google

เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle สำหรับแอปหรือโมดูล ดังนี้

Groovy

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.7.0-rc01"
  // 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.7.0-rc01"
    // 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 ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากคุณพบปัญหาใหม่หรือมีแนวคิดในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ในคลังนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดยคลิกปุ่มดาว

สร้างปัญหาใหม่

ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของ Issue Tracker

Camera Viewfinder Compose เวอร์ชัน 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 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • คลังใหม่ ไลบรารีนี้เปิดตัวคอมโพสิเบิล Viewfinder แบบเนทีฟของ Compose ซึ่งใช้กับ CameraX และ Camera2 ได้ ช่องมองภาพที่ประกอบได้รองรับสัดส่วนภาพที่แตกต่างกัน และการจัดการการโต้ตอบแบบสัมผัส

Camera Viewfinder เวอร์ชัน 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

  • เปลี่ยนชื่อ Enum ImplementationMode ของ Viewfinder เพื่อให้สอดคล้องกับการใช้งานที่เกี่ยวข้องมากขึ้น และเพิ่มค่าคงที่สำหรับ TransformationInfo.sourceRotation (Ic6149)
  • เพิ่ม ZoomGestureDetector.ZoomEvent เพื่อรวมสถานะของท่าทางสัมผัสการซูม (I84cdf)

เวอร์ชัน 1.7

เวอร์ชัน 1.7.0-rc01

21 ตุลาคม 2569

androidx.camera:camera-*:1.7.0-rc01 เผยแพร่แล้ว เวอร์ชัน 1.7.0-rc01 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • แปลง UseCaseCamera2Interop, ImageCaptureCamera2Interop, SessionConfigCamera2Interop และ CameraControlCamera2Interop จากอินเทอร์เฟซเป็นคลาสแอบสแตรกต์ (If654e)
  • แก้ไขปัญหาความกำกวมของ Camera2Interop V2 (I1bbe5)

แก้ไขข้อบกพร่อง

  • แก้ไขข้อขัดข้องของระบบ SIGSEGV ในเทรด CameraX OpenGL เมื่อ SurfaceProcessor ปล่อยอินพุต SurfaceTexture ซึ่ง SurfaceRequest มีการเก็บขยะก่อนที่จะเสร็จสมบูรณ์ (I76f73, b/563673593)
  • แก้ไขการรั่วไหลของ Surface และการขัดข้องของระบบ OpenGL ที่อาจเกิดขึ้นระหว่างการเก็บขยะเมื่อปิด Executor หรือ HandlerThread ของ CameraEffect ก่อนที่จะปิด SurfaceOutput ของเอฟเฟกต์ (Ifcc19, b/558819242)
  • การปรับปรุงลักษณะการทำงานของการเพิ่มแสงในสภาวะแสงน้อย: ตอนนี้การเพิ่มแสงในสภาวะแสงน้อยและไฟฉายจะเป็นไปตามนโยบาย "การตั้งค่าล่าสุดมีผล" ซึ่งการเปิดใช้ฟีเจอร์หนึ่งจะปิดใช้อีกฟีเจอร์หนึ่งโดยอัตโนมัติแทนที่จะปฏิเสธคำขอ นอกจากนี้ แฟลชยังทำงานระหว่างการจับภาพขณะที่เปิดใช้โหมดเพิ่มคุณภาพในที่แสงน้อยได้แล้ว (Ie583f)
  • อัปเดตทรัพยากร Dependency androidx.lifecycle:lifecycle-runtime เป็น 2.10.0 แล้ว ต้องใช้เวอร์ชันนี้เพื่อให้การตรวจสอบ Lint ของรันไทม์วงจรที่รวมมาทำงานร่วมกับ AGP เวอร์ชัน 9.5.0-alpha04 ขึ้นไปได้ (I99bfd, b/556807521)
  • รองรับการรับ CameraSelector ในกล้องจริงจาก CameraInfo.getPhysicalCameraInfos() และการเชื่อมโยง UseCases กับกล้องจริง การค้นหา CameraInfo ด้วย CameraSelector จริงจะแสดงผล CameraInfo จริงแทน CameraInfo เชิงตรรกะ (Ibe7f2)
  • ชี้แจง Javadoc ของ OutputOptions.Builder.setLocation ว่าระบบจะจัดเก็บเฉพาะละติจูดและลองจิจูดไว้ในข้อมูลเมตาของวิดีโอ (I77d3b, b/551348846)
  • แก้ไขข้อบกพร่องใน ImageAnalysis ที่การเปลี่ยนการหมุนเอาต์พุตแบบไดนามิกหรือการเลิกเชื่อม Use Case อาจทำให้ทรัพยากร Surface/ImageReader รั่วไหล (I25cef)
  • ตอนนี้ CameraInfo.getIntrinsicZoomRatio() จะปัดเศษอัตราส่วนที่แสดงผลเป็นทศนิยม 2 ตำแหน่ง (Ibe9a8)
  • ผ่อนคลายการตรวจสอบ HardwareBuffer.isSupported สำหรับรูปแบบ PRIVATE ใน ImageAnalysis เพื่อป้องกันความล้มเหลวที่เกิดจากผลลบลวงในอุปกรณ์บางเครื่อง (I347a4, b/545866947)
  • แก้ไขข้อขัดข้องในการคอมไพล์ใน JDK เวอร์ชันใหม่เมื่อแก้ไขคำอธิบายประกอบประเภท JSpecify ที่นำเข้าแบบสกรรมกริยาในฟิลด์ภายใน CameraX (I00bb4, b/543937345)

เวอร์ชัน 1.7.0-alpha03

12 สิงหาคม 2569

androidx.camera:camera-*:1.7.0-alpha03 เผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha03 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เลิกใช้งาน Camera2Interop API เดิม (Camera2Interop.Extender, Camera2CameraControl, Camera2CameraInfo และ CaptureRequestOptions) เพื่อใช้เมธอดแฟกทอรีของตัวกำหนดค่า Camera2Interop และฟังก์ชันส่วนขยาย Kotlin (Ib0845, b/529609261)
  • เพิ่มบล็อกส่วนขยาย Kotlin DSL camera2Interop สำหรับ preview, imageAnalysis, videoCapture, imageCapture และ SessionConfig.Builder รวมถึงฟังก์ชันส่วนขยาย CameraControl.applyCamera2InteropAsync (I51af9, b/529609261)
  • เพิ่มเมธอด Factory ของตัวกำหนดค่า Camera2Interop ใหม่ (forUseCase, forImageCapture, forSessionConfig, forCameraControl) และเมธอด setInterop / applyInteropAsync ที่เกี่ยวข้องใน Preview.Builder, ImageCapture.Builder, ImageAnalysis.Builder, VideoCapture.Builder, SessionConfig.Builder และ CameraControl (I0007b, b/529609261)
  • เพิ่มเมธอดตัวช่วยลงใน Camera2Interop และพร็อพเพอร์ตี้ส่วนขยาย Kotlin ที่เทียบเท่า (CameraInfo.cameraId, CameraInfo.cameraCharacteristics และ String.toCameraSelector()) เพื่อดึงข้อมูลรหัสและลักษณะเฉพาะของกล้อง Camera2 จาก CameraInfo (I11803, b/529609261)
  • เพิ่ม Preview.setMirrorMode, Preview.getMirrorMode และ VideoCapture.setMirrorMode ไปยัง API สาธารณะ และนำคำอธิบายประกอบ ExperimentalMirrorMode ออก (I4ed60, b/519794349, b/470629643)
  • เพิ่ม Kotlin DSL Builder preview { ... }, imageCapture { ... }, imageAnalysis { ... } และ videoCapture { ... } สำหรับสร้าง UseCases (I91df9, b/530013719)
  • แก้ไข ImagePlane.buffer เป็น ByteBuffer ที่ไม่สามารถเป็น Null ได้ (I98593)
  • เลิกใช้งาน Getter ของพร็อพเพอร์ตี้ใน SessionConfig.Builder, HighSpeedVideoSessionConfig.Builder และ ExtensionSessionConfig.Builder ใน Kotlin DSL เพื่อบังคับใช้พร็อพเพอร์ตี้แบบเขียนอย่างเดียว (I2875b, b/534570559)

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่การเชื่อมโยง Use Case ของ Preview หลายรายการกับ OverlayEffect ทำให้การส่งสตรีมตัวอย่าง 1 รายการไม่สำเร็จ (I7a383, b/532577546, b/532924417)
  • แก้ไขปัญหาที่ Recording.pause() และ Recording.resume() ไม่ทำงานเมื่อเปลี่ยนกล้องระหว่างการบันทึกวิดีโอแบบต่อเนื่อง (I71004, b/532327691, b/367121726)
  • แก้ไขข้อขัดข้องของ HAL เมื่อใช้ Zero-Shutter Lag (ZSL) ขณะซูมข้ามขอบเขตกล้องจริงในอุปกรณ์ที่มีกล้องหลายตัว (I1c374, b/527782712, b/514757157)
  • แก้ไขปัญหาที่การบันทึกวิดีโอ HDR อาจไม่สำเร็จในอุปกรณ์ Samsung Galaxy S25, S26 และ Fold 7 (Ic0827, b/529618629)

เวอร์ชัน 1.7.0-alpha02

1 กรกฎาคม 2026

androidx.camera:camera-*:1.7.0-alpha02 เผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha02 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ตอนนี้ CameraXViewfinder รองรับท่าทางสัมผัสในตัวสำหรับการบีบนิ้วเพื่อซูมและการแตะเพื่อโฟกัส รวมถึงเพิ่มการรองรับแฟลชหน้าจอและสถานะสตรีม ตอนนี้ FocusState เป็นแบบสาธารณะใน viewfinder-core เพื่อให้ตรวจสอบผลลัพธ์ของการแตะเพื่อโฟกัสได้ (I66a17, b/522549890)
  • เพิ่ม isAutoRotationEnabled ลงใน SessionConfig.Builder , HighSpeedVideoSessionConfig.Builder, ExtensionSessionConfig.Builder และเปิดตัวฟังก์ชันโรงงาน Kotlin DSL สำหรับฟังก์ชันเหล่านั้น ซึ่งจะช่วยให้ตั้งค่าการหมุนที่เหมาะสมโดยอัตโนมัติตามเซ็นเซอร์ของอุปกรณ์ (I5b4a3, b/510752515)
  • เพิ่มพร็อพเพอร์ตี้ TransformationMode ลงใน TransformationInfo เพื่อรองรับแอปให้ใช้ไปป์ไลน์ OpenGL ในโหมด EMBEDDED (Id1de1, b/487826941)
  • เพิ่ม isNightModeIndicatorSupported() และ getNightModeIndicator() ลงใน CameraInfo เพื่อระบุว่าเมื่อใดที่สภาพแวดล้อมตรงตามเกณฑ์สำหรับโหมดกลางคืน (Iae47b, b/499389465)
  • แสดง ImageAnalysis.OUTPUT_IMAGE_FORMAT_PRIVATE และ ImageProxy.getHardwareBuffer() เป็น API สาธารณะเพื่อรองรับ ImageAnalysis ที่ใช้ GPU (I41cb3, b/496022391, b/492934501)
  • ExtensionsManager#getExtensionEnabledCameraSelector เลิกใช้งานแล้ว โปรดใช้ ExtensionSessionConfig API ใหม่เพื่อเปิดใช้โหมดส่วนขยาย (I2b336, b/473715607)
  • เพิ่มการรองรับการจัดรูปแบบภาพของเฟรมกล้องระหว่างการจัดองค์ประกอบกล้องพร้อมกัน ตอนนี้คุณปรับแต่งสิ่งต่อไปนี้ได้แล้ว
  • มุมโค้งมน: ใช้ setRoundedCornerRatio(float) เพื่อใช้การปัดเศษแบบมาตรฐาน (0.0 ถึง 1.0) กับขอบเฟรม
  • เส้นขอบ: ใช้ setBorderWidthRatio(float) และ setBorderColor(int) เพื่อเพิ่มกรอบตกแต่งที่มีความหนาสม่ำเสมอ (I18a07, b/366349205)
  • อัปเดต CompositionSettings เพื่อบังคับใช้ลำดับ Z ที่ไม่เป็นค่าลบ และเพิ่มการตรวจสอบไปยัง ConcurrentCamera.setCompositionSettings เพื่อให้แน่ใจว่ามีการเรียกใช้ด้วยจำนวนการตั้งค่าที่ถูกต้องในโหมดการจัดองค์ประกอบที่ถูกต้อง (If660d, b/496951658)
  • เพิ่ม getNightModeIndicator() และ isNightModeIndicatorAvailable() ลงใน CameraExtensionsInfo เพื่อให้แอปพลิเคชันตรวจสอบได้ว่าสภาพแวดล้อมปัจจุบันอยู่ในสภาวะโหมดกลางคืนหรือไม่เมื่อใช้ส่วนขยายกล้อง (I62bb4, b/499389465)
  • เพิ่มการรองรับคุณภาพวิดีโอ QHD ใน VideoCapture (I0ac20, b/501305592)
  • เพิ่ม Recorder.Builder.setTargetAudioChannelCount(int) และ Recorder.getTargetAudioChannelCount() เพื่อให้นักพัฒนาแอปกำหนดจำนวนช่องเสียงที่ชัดเจนได้ (I6bee0, b/441895100)
  • เพิ่ม Recorder.Builder.setTargetAudioEncodingBitRate(int) เพื่อให้ตั้งค่าอัตราบิตการเข้ารหัสเสียงเป้าหมายได้ (I29062, b/241151504)
  • เพิ่ม ConcurrentCamera.setCompositionSettings API เพื่ออนุญาตให้แอปอัปเดตองค์ประกอบของกล้องปัจจุบันแบบไดนามิกหลังจากเชื่อมโยงวงจรแล้ว นอกจากนี้ setZOrder API ใหม่ใน CompositionSettings.Builder ยังช่วยให้ควบคุมลำดับการแสดงผลของสตรีมจากกล้องที่ซ้อนทับกันได้อย่างแม่นยำ (I90528, b/473702287)
  • เปิดตัว API สำหรับการควบคุมรูปแบบการเข้ารหัสที่ละเอียดยิ่งขึ้น ตอนนี้นักพัฒนาแอปสามารถค้นพบรูปแบบที่อุปกรณ์รองรับได้โดยใช้ Recorder.getSupportedVideoMimeTypes() และ getSupportedAudioMimeTypes() ซึ่งปัจจุบันอยู่ในขั้นทดลอง คุณกำหนดค่ารูปแบบที่ต้องการอย่างชัดเจนได้ผ่าน Recorder.Builder.setVideoMimeType() และ setAudioMimeType() นอกจากนี้ Recorder.getVideoCapabilities(CameraInfo, String) ยังช่วยให้สามารถค้นหาความสามารถเฉพาะของกล้อง เช่น คุณภาพและช่วงไดนามิกที่รองรับ สำหรับตัวแปลงรหัสที่เลือก (I4620e, b/491319384)
  • เพิ่ม CameraController.setAutoRotationEnabled(boolean) เพื่ออนุญาตให้ปิดใช้ Listener การหมุนอุปกรณ์อัตโนมัติ (Ia0c03, b/449573627)
  • เพิ่มการรองรับการล็อก AE/AWB ใน FocusMeteringAction ผ่าน API setLockingMode ใหม่ นอกจากนี้ยังช่วยให้สามารถอัปเดตขอบเขต 3A โดยไม่ต้องล็อกโฟกัส ทำให้กล้องยังคงอยู่ในโหมดโฟกัสอัตโนมัติต่อเนื่องขณะอัปเดตพื้นที่โฟกัส (I6416f, b/481624745)

แก้ไขข้อบกพร่อง

  • นำข้อกำหนดสำหรับ compileSdk 37 ออก (If78b4)
  • แก้ไขปัญหาการเปลี่ยนรูปแบบ CameraXViewfinder ในโหมด EMBEDDED เมื่อเปิดใช้ไปป์ไลน์ OpenGL โดย CameraX เพื่อเชื่อมโยง UseCases หรือการประมวลผลพื้นผิวเพิ่มเติม (I3e637, b/487826941)
  • อัปเดตการทดสอบและกิจกรรมเพื่อใช้ ExtensionSessionConfig แทน getExtensionEnabledCameraSelector API ที่เลิกใช้งานแล้ว (I765d8, b/473715607)
  • แก้ไขข้อผิดพลาดในการคอมไพล์ "เข้าถึงคลาส 'ListenableFuture' ไม่ได้" (Ic8cba, b/497571473)
  • อัปเดต compileSdk ของ Compose เป็น API 37 ซึ่งหมายความว่าต้องใช้ AGP เวอร์ชัน 9.2.0 เป็นอย่างน้อยเมื่อใช้ Compose (Id45cd, b/413674743)

เวอร์ชัน 1.7.0-alpha01

11 มีนาคม 2026

androidx.camera:camera-*:1.7.0-alpha01 เผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha01 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เปิดเผย CameraController.setSessionConfig() API ซึ่งจะช่วยให้คุณระบุ SessionConfig ที่กำหนดเองสำหรับการกำหนดค่า UseCase ขั้นสูงที่ CameraController ไม่ได้แสดงโดยตรงได้ เมื่อ SessionConfig ทำงานอยู่ วิธีการกำหนดค่าอื่นๆ ใน CameraController จะปิดใช้ (I35cf1, b/448525636)

แก้ไขข้อบกพร่อง

  • ย้ายไลบรารีเพื่อใช้เป้าหมาย Java 11 ซึ่งหมายความว่าไบต์โค้ดที่สร้างขึ้นจะเป็น Java 11 (ไฟล์คลาสเวอร์ชัน 55) และอาจต้องใช้กระบวนการ Desugaring เพื่อใช้ไลบรารี (If4c2a, b/457821470)
  • แก้ไขข้อบกพร่องใน ImageAnalysis ที่รูปภาพไม่หมุนอย่างถูกต้องเมื่อเปิดใช้การหมุนรูปภาพเอาต์พุตและการหมุนสัมพัทธ์เริ่มต้นคือ 0 องศา (Id46c2, b/487160584)

กล้องเวอร์ชัน 1.6

เวอร์ชัน 1.6.2

26 สิงหาคม 2026

androidx.camera:camera-*:1.6.2 เผยแพร่แล้ว เวอร์ชัน 1.6.2 มี คอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • แก้ไขข้อขัดข้องในการคอมไพล์ใน JDK เวอร์ชันใหม่เมื่อแก้ไขคำอธิบายประกอบประเภท JSpecify ที่นำเข้าแบบสกรรมกริยาในฟิลด์ภายใน CameraX (I00bb4, b/543937345)

เวอร์ชัน 1.6.1

6 พฤษภาคม 2026

androidx.camera:camera-*:1.6.1 เผยแพร่แล้ว เวอร์ชัน 1.6.1 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • แก้ไขข้อผิดพลาดในการคอมไพล์ "เข้าถึงคลาส ListenableFuture ไม่ได้" เมื่อใช้ CameraX 1.6.0 (Ic8cba, b/497571473)

เวอร์ชัน 1.6.0

25 มีนาคม 2026

androidx.camera:camera-*:1.6.0 เผยแพร่แล้ว เวอร์ชัน 1.6.0 มี คอมมิตเหล่านี้

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.5.0

1. ย้ายข้อมูลไปยังสแต็กกล้องแบบรวมที่มีประสิทธิภาพสูง

  • ตอนนี้ CameraX ใช้ CameraPipe ซึ่งเป็นสแต็กที่ทันสมัยและมีประสิทธิภาพสูงแบบเดียวกับที่ขับเคลื่อนกล้อง Pixel การเปลี่ยนผ่านนี้ช่วยเพิ่มประสิทธิภาพด้านสถาปัตยกรรมและมอบรากฐานที่รองรับการปรับขนาดเพื่อนำฟีเจอร์การถ่ายภาพแบบดิจิทัลขั้นสูงมาสู่ระบบนิเวศของนักพัฒนาแอป

2. การผสานรวม Muxer ของ Media3

  • ตอนนี้ CameraX จะผสานรวม Media3 Muxer โดยค่าเริ่มต้นภายใน VideoCapture API การย้ายข้อมูลนี้มีประโยชน์หลายประการ ดังนี้
    • ประสิทธิภาพที่เพิ่มขึ้น: การประมวลผลและการรวมวิดีโอที่มีประสิทธิภาพมากขึ้น
    • ความยืดหยุ่นเมื่อเกิดข้อขัดข้อง: ปรับปรุงการป้องกันไฟล์วิดีโอเสียหาย เพื่อให้มั่นใจว่าข้อมูลจะได้รับการเก็บรักษาไว้แม้ว่าแอปพลิเคชันจะขัดข้องระหว่างการบันทึกก็ตาม

3. การปรับปรุงกลุ่มฟีเจอร์

  • ตอนนี้ API Feature Group รองรับระบบกันภาพสั่นและการบันทึกแบบ 4K แล้ว GroupableFeatures มี VIDEO_STABILIZATION, UHD_RECORDING เพื่อให้แอปเปิดใช้ร่วมกับฟีเจอร์อื่นๆ ได้ ระบบรองรับ CameraEffect และ ImageAnalysis ใน SessionConfig เมื่อเปิดใช้กลุ่มฟีเจอร์

4. SessionConfig API ที่เสถียร

  • SessionConfig ได้เปลี่ยนจากเวอร์ชันทดลองเป็น API สาธารณะที่เสถียรอย่างสมบูรณ์ ซึ่งรวมถึง SessionConfig และ HighSpeedVideoSessionConfig ตอนนี้คุณสามารถใช้ส่วนขยาย CameraX กับ ExtensionSessionConfig AP ใหม่ได้แล้ว เราได้เปิดตัว API isSessionConfigSupported ใหม่ ซึ่งช่วยให้นักพัฒนาแอปค้นหาได้ว่าอุปกรณ์รองรับ Use Case และฟีเจอร์ต่างๆ ร่วมกัน (เช่น HDR, ระบบกันสั่น, ความละเอียดที่เฉพาะเจาะจง, ส่วนขยาย CameraX หรือสโลว์โมชัน) หรือไม่ก่อนที่จะเชื่อมโยงกับวงจร

แก้ไขข้อบกพร่อง

  • แก้ไขข้อขัดข้องที่เกิดขึ้นในอุปกรณ์ Android 17 (API 37) ขึ้นไปบางรุ่น เมื่ออุปกรณ์เหล่านี้แสดงโปรไฟล์ช่วงไดนามิกใหม่ (เช่น STANDARD_SMPTE_2094_50(ID 8192)) ที่ CameraX เวอร์ชัน 1.5.1 และก่อนหน้าไม่รู้จัก ก่อนหน้านี้ไลบรารีไม่สามารถจัดการรหัสเหล่านี้ได้อย่างเหมาะสม ส่งผลให้เกิด NullPointerException หรือ IllegalArgumentException ระหว่าง ProcessCameraProvider.bindToLifecycle() การแก้ไขนี้ช่วยให้ CameraX ละเว้นโปรไฟล์ช่วงไดนามิกที่ไม่รู้จักได้อย่างราบรื่น ซึ่งจะช่วยป้องกันไม่ให้แอปขัดข้องและรักษาความเข้ากันได้แบบส่งต่อ โปรดอัปเดตทรัพยากร Dependency ของ CameraX เป็นเวอร์ชัน 1.5.2 หรือ 1.6.0 (หรือสูงกว่า) เพื่อหลีกเลี่ยงปัญหานี้ในอุปกรณ์ที่แสดงโปรไฟล์ใหม่เหล่านี้ ดูรายละเอียดเพิ่มเติมได้ที่ปัญหา 519796838 (Ibd7b5)
  • ตอนนี้ API กลุ่มฟีเจอร์จะให้ผลลัพธ์ที่สอดคล้องกันเมื่อใช้ PREVIEW_STABILIZATION กับ VideoCapture ซึ่งจะแก้ไขข้อบกพร่องที่ทำให้ผลลัพธ์ไม่สอดคล้องกันเมื่อ Use Case ของเวอร์ชันตัวอย่างไม่ได้ทำงานอยู่ด้วย (Ifed82, b/449913903)
  • แก้ไขปัญหาที่ฟีเจอร์ที่ต้องการซึ่งไม่รองรับพร้อมใช้งานอย่างไม่ถูกต้อง ตอนนี้ระบบจะกรองฟีเจอร์อย่างถูกต้องเมื่อไม่เป็นไปตามกรณีการใช้งานที่จำเป็น (I38db8, b/449532342)
  • แก้ไขผลการค้นหาวิดีโอที่ผิดพลาดใน Samsung Galaxy S6 (I612d9, b/235127608)
  • แก้ไขปัญหาที่ CameraInfo#isFeatureGroupSupported อาจแสดงผลเป็น "จริง" อย่างไม่ถูกต้องสำหรับ PREVIEW_STABILIZATION หาก SessionConfig ในการค้นหาได้รับการกำหนดค่าด้วยฟีเจอร์อื่นๆ แล้ว (I2c355c, b/437816469)
  • ยกเว้นขนาดเอาต์พุตรูปแบบ YUV ที่มีปัญหาจากอุปกรณ์ Samsung Z Fold 4 รูปภาพที่ได้รับมีปัญหาการบิดเบี้ยวเมื่อใช้ขนาดเอาต์พุตเหล่านั้น (I776bf, b/460322307)
  • แก้ไขปัญหาเฉพาะอุปกรณ์ใน Samsung A53 ซึ่งการจับภาพโดยเปิดใช้ไฟฉายอาจไม่สำเร็จในบางครั้งหากมีการเชื่อมโยง Use Case VideoCapture (I0f183, b/458197367)
  • แก้ไขปัญหาในอุปกรณ์บางเครื่องที่การใช้แฟลชกับกล้องเลนส์อัลตราไวด์อาจส่งผลให้รูปภาพมีแสงน้อยเกินไป (Ib7530, b/444590340)
  • อัปเดตทรัพยากร Dependency ของ ExifInterface เพื่อรวมการแก้ไขสำหรับการแยกวิเคราะห์ JPEG ที่มีการเติม 0xFF ซึ่งจะช่วยแก้ปัญหาการจับภาพไม่สำเร็จในอุปกรณ์ที่โปรแกรมเปลี่ยนไฟล์ JPEG เพิ่มไบต์เติมก่อนเครื่องหมาย (I0eb49)

เวอร์ชัน 1.6.0-rc01

25 กุมภาพันธ์ 2026

androidx.camera:camera-*:1.6.0-rc01 เผยแพร่แล้ว เวอร์ชัน 1.6.0-rc01 มีคอมมิตเหล่านี้

เวอร์ชัน 1.6.0-beta02

11 กุมภาพันธ์ 2026

androidx.camera:camera-*:1.6.0-beta02 เผยแพร่แล้ว เวอร์ชัน 1.6.0-beta02 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหา ImageCapture OUTPUT_FORMAT_RAW_JPEG ในการจับภาพในหน่วยความจำ IllegalArgumentException (Id4eec, b/479990902)
  • ย้ายข้อมูลไปยัง AndroidX Media3 Muxer แล้ว ซึ่งจะช่วยแก้ไข 1: วิดีโอเสียหายระหว่างการหยุดชะงักที่ไม่คาดคิดหรือการสิ้นสุดการทำงานของแอป และ 2: ข้อขัดข้องเมื่อบันทึกวิดีโอไปยังตัวบอกไฟล์พร็อกซี (I23b63, b/433649708, b/264812009, b/475750115)

เวอร์ชัน 1.6.0-beta01

28 มกราคม 2026

androidx.camera:camera-*:1.6.0-beta01 เผยแพร่แล้ว เวอร์ชัน 1.6.0-beta01 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหาประเภทปัจจุบัน CameraExtensionsInfo รายการใน CameraX 1.6.0-alpha ที่ออบเจ็กต์ LiveData ไม่สามารถรับข้อมูลประเภทที่อัปเดตได้ (I2c7a5)
  • อัปเดตทรัพยากร Dependency ของ ExifInterface เพื่อรวมการแก้ไขสำหรับการแยกวิเคราะห์ JPEG ที่มีการเติม 0xFF ซึ่งจะช่วยแก้ปัญหาการจับภาพไม่สำเร็จในอุปกรณ์ที่โปรแกรมเปลี่ยนไฟล์ JPEG เพิ่มไบต์เติมก่อนเครื่องหมาย (I0eb49)

เวอร์ชัน 1.6.0-alpha02

17 ธันวาคม 2025

androidx.camera:camera-*:1.6.0-alpha02 เผยแพร่แล้ว เวอร์ชัน 1.6.0-alpha02 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • เพิ่มฟีเจอร์ที่จัดกลุ่มได้เพื่อแสดงฟีเจอร์การกันภาพสั่นไหวของวิดีโอในการกำหนดค่าเซสชัน ตอนนี้นักพัฒนาแอปสามารถขอระบบกันภาพสั่นไหวของวิดีโอเป็นฟีเจอร์ที่จำเป็นหรือต้องการได้ ซึ่งสอดคล้องกับฟีเจอร์อื่นๆ ที่จัดกลุ่มได้ เช่น UHD_RECORDING, PREVIEW_STABILIZATION (Ic6757, b/419766630)
  • เพิ่มฟีเจอร์ที่จัดกลุ่มได้เพื่อระบุคุณภาพการบันทึกวิดีโอในการกำหนดค่าเซสชัน ตอนนี้ นักพัฒนาแอปสามารถขอคุณภาพที่เฉพาะเจาะจง (เช่น UHD, FHD) เป็นฟีเจอร์ที่จำเป็นหรือต้องการได้ โดยจัดให้อยู่ในกลุ่มเดียวกับฟีเจอร์อื่นๆ ที่จัดกลุ่มได้ เช่น HDR และ 60 FPS (Ib5cd3, b/437820285)
  • เพิ่มการรองรับการใช้ทั้ง CameraEffect และ Feature Groups API ใน SessionConfig (I17f18, b/406370934)
  • เพิ่มการรองรับการใช้ทั้ง ImageAnalysis และ Feature Groups API ใน SessionConfig (I87833, b/406371720)

การเปลี่ยนแปลง API

  • เพิ่มฟังก์ชัน Setter addUseCase สำหรับ ExtensionSessionConfig.Builder และเพิ่ม Getter ที่ขาดหายไปสำหรับ ExtensionSessionConfig (I71e07, b/453988621)
  • เพิ่ม ExtensionsManager.getInstance API ซึ่งเป็นเวอร์ชันที่ระงับของ ExtensionsManager.getInstanceAsync (I3a0a9, b/452208792)
  • เปลี่ยนชื่อ isFeatureGroupSupported เป็น isSessionConfigSupported และทำให้รองรับ SessionConfig ทุกประเภท (I21616, b/448781299)
  • แปลง ExtensionsManager เป็นการใช้งาน Kotlin แล้ว (I73091, b/452208792)
  • เพิ่ม CameraProvider#getCameraInfo(CameraSelector, SessionConfig) เพื่อดึงข้อมูล CameraInfo เมื่อ SessionConfig อาจส่งผลต่อการเลือกกล้อง เช่น เมื่อใช้ ExtensionSessionConfig (Ic548c, b/451891648)
  • เปิดเผย ExtensionSessionConfig API แล้ว แอปสามารถสร้าง ExtensionSessionConfig และใช้เพื่อสร้างเซสชันส่วนขยายได้แล้วตอนนี้ (I6354c, b/448524373)
  • androidx.camera.video.HighSpeedVideoSessionConfig API ไม่ได้อยู่ในขั้นทดลองอีกต่อไป และตอนนี้เป็น API สาธารณะที่เสถียรอย่างสมบูรณ์แล้ว (I492d4, b/447558239)
  • androidx.camera.core.SessionConfig API ไม่ได้อยู่ในขั้นทดลองอีกต่อไป และตอนนี้เป็น API สาธารณะที่เสถียรอย่างสมบูรณ์แล้ว (Idc87a, b/447558437)

แก้ไขข้อบกพร่อง

  • แก้ไขข้อขัดข้องที่เกิดจาก IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object: ใน Android 17 ขึ้นไป (Ibd7b5, b/463465353)
  • ยกเว้นขนาดเอาต์พุตรูปแบบ YUV ที่มีปัญหาจากอุปกรณ์ Samsung Z Fold 4 รูปภาพที่ได้รับมีปัญหาการบิดเบี้ยวเมื่อใช้ขนาดเอาต์พุตเหล่านั้น (I776bf, b/460322307)
  • แก้ไขปัญหาที่ระบบไม่ใช้ CaptureRequest.FLASH_MODE เมื่อตั้งค่าผ่าน Camera2Interop API (I0004c, b/459608684)
  • แก้ไขปัญหาเฉพาะอุปกรณ์ใน Samsung A53 ซึ่งการจับภาพโดยเปิดใช้ไฟฉายอาจไม่สำเร็จในบางครั้งหากมีการเชื่อมโยง Use Case VideoCapture (I0f183, b/458197367)
  • แก้ไขปัญหาในอุปกรณ์บางเครื่องที่การใช้แฟลชกับกล้องเลนส์อัลตราไวด์อาจส่งผลให้รูปภาพมีแสงน้อยเกินไป (Ib7530, b/444590340)

เวอร์ชัน 1.6.0-alpha01

22 ตุลาคม 2025

androidx.camera:camera-*:1.6.0-alpha01 เผยแพร่แล้ว เวอร์ชัน 1.6.0-alpha01 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • CameraX ได้ย้ายข้อมูลไปยังสแต็กกล้องแบบรวมที่มีประสิทธิภาพสูง ซึ่งแอปกล้อง Pixel ก็ใช้ด้วย สแต็กใหม่นี้เรียกว่า CameraPipe เป็นความร่วมมือระหว่างทีม CameraX และทีมกล้อง Pixel ซึ่งจะช่วยให้มั่นใจได้ว่าการปรับปรุงทั้งหมดจะได้รับการแชร์ ซึ่งเป็นประโยชน์ต่อทั้งผู้ใช้ CameraX และแอปกล้อง Pixel

การเปลี่ยนแปลง API

  • เพิ่ม API ใหม่สำหรับการตรวจจับการเพิ่ม/นำกล้องออกแบบไดนามิก ดูรายละเอียดเพิ่มเติมได้ที่ CameraPresenceListener API (I41ead, b/427182232, b/419441394)

แก้ไขข้อบกพร่อง

  • ตอนนี้ API กลุ่มฟีเจอร์จะให้ผลลัพธ์ที่สอดคล้องกันเมื่อใช้ PREVIEW_STABILIZATION กับ VideoCapture ซึ่งจะแก้ไขข้อบกพร่องที่ทำให้ผลลัพธ์ไม่สอดคล้องกันเมื่อกรณีการใช้งาน Preview ไม่ทำงานด้วย (Ifed82, b/449913903)
  • แก้ไขปัญหาที่ฟีเจอร์ที่ต้องการซึ่งไม่รองรับพร้อมใช้งานอย่างไม่ถูกต้อง ตอนนี้ระบบจะกรองฟีเจอร์อย่างถูกต้องเมื่อไม่เป็นไปตามกรณีการใช้งานที่จำเป็น (I38db8, b/449532342)
  • แก้ไขผลการค้นหาวิดีโอที่ผิดพลาดใน Samsung Galaxy S6 (I612d9, b/235127608)
  • แก้ไขปัญหาที่ CameraInfo#isFeatureGroupSupported อาจแสดงผลเป็น "จริง" อย่างไม่ถูกต้องสำหรับ PREVIEW_STABILIZATION หาก SessionConfig ในการค้นหาได้รับการกำหนดค่าด้วยฟีเจอร์อื่นๆ แล้ว (I2c355c, b/437816469)

กล้องเวอร์ชัน 1.5

เวอร์ชัน 1.5.3

28 มกราคม 2026

androidx.camera:camera-*:1.5.3 เผยแพร่แล้ว เวอร์ชัน 1.5.3 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • อัปเดตทรัพยากร Dependency ของ ExifInterface เป็น 1.4.2 ซึ่งจะแก้ไขความล้มเหลวในการจับภาพที่เกิดขึ้นในอุปกรณ์ที่สร้าง JPEG ที่มีไบต์ 0xFF เพิ่มเติม (และได้รับอนุญาต) ก่อนเครื่องหมาย (I16df4)

รุ่น 1.5.2

4 ธันวาคม 2568

androidx.camera:camera-*:1.5.2 เผยแพร่แล้ว เวอร์ชัน 1.5.2 มี คอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • แก้ไขข้อขัดข้องที่เกิดจาก IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object: ใน Android 17 ขึ้นไป (Ic9184)
  • แก้ไขข้อบกพร่องที่ทำให้ผลลัพธ์ API ของกลุ่มฟีเจอร์ไม่สอดคล้องกันเมื่อเพิ่มฟีเจอร์ PREVIEW_STABILIZATION ด้วย Use Case VideoCapture แต่ไม่มี Use Case Preview (Ifed82)
  • แก้ไขฟีเจอร์ที่ต้องการซึ่งไม่ได้รับการกรองออกแม้ว่าจะไม่มีกรณีการใช้งานที่จำเป็นสำหรับฟีเจอร์ที่รองรับก็ตาม (I38db8)

รุ่น 1.5.1

8 ตุลาคม 2025

androidx.camera:camera-*:1.5.1 เผยแพร่แล้ว เวอร์ชัน 1.5.1 มี คอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • รองรับ CameraEffect ในโหมดการจัดองค์ประกอบภาพจากกล้องพร้อมกัน ระบบจะใช้เอฟเฟกต์กับเอาต์พุตขององค์ประกอบ โปรดทราบว่าระบบจะไม่สนใจ mirrorMode ใน VideoCapture เมื่อตั้งค่าเอฟเฟกต์ในโหมดการจัดองค์ประกอบภาพจากกล้องหลายตัวพร้อมกัน (If3d00, b/425565129)
  • แก้ไขปัญหาที่ระบบใช้ mirrorMode กับกล้องรองไม่ถูกต้องในโหมดการจัดองค์ประกอบกล้องพร้อมกัน (I686cd, b/446430827)
  • รองรับการเชื่อมโยง Preview, ImageCapture และ VideoCapture เข้าด้วยกันในโหมดกล้องที่ทำงานพร้อมกันแบบไม่จัดองค์ประกอบภาพ (Ib410a, b/443009871)
  • แก้ไขปัญหาที่ UseCase เช่น ImageCapture และ VideoCapture จะสูญเสียข้อมูลการหมุนเป้าหมายหากมีการสร้างใหม่ ซึ่งอาจทำให้รูปภาพหรือวิดีโอมีการวางแนวที่ไม่ถูกต้องหากมีการเปลี่ยนแปลงการตั้งค่า เช่น imageCaptureMode หลังจากหมุนอุปกรณ์แล้ว (I477c8, b/444734537)
  • แก้ไขปัญหาที่ทำให้ Preview เลือกความละเอียด 16:9 ไม่ได้ และ VideoCapture บันทึกที่ QUALITY_1080P ไม่ได้ ปัญหานี้เกิดขึ้นเมื่อใช้การกำหนดค่าความละเอียดของตัวอย่างเริ่มต้นขณะที่ฟีเจอร์ StreamSharing ภายในทำงานอยู่ (เช่น เมื่อ UseCase 4 รายการเชื่อมโยงพร้อมกัน) (I493cb, b/440364875)
  • แก้ไขข้อขัดข้องเมื่อเปิดใช้งานเอฟเฟกต์หลังจากปิด SurfaceProcessor (I2c450, b/414150174)
  • แก้ไขข้อบกพร่องใน CameraController ที่ทำให้เกิด IllegalStateException เมื่อ UseCase เริ่มต้นเลือกความละเอียดสูงสุด ซึ่งทำให้ UseCase อื่นๆ ไม่สามารถเชื่อมโยงได้ (Ifb758, b/440374234)
  • ยกเว้นขนาดเอาต์พุต YUV_420_888 ที่มีปัญหาสำหรับ Nokia 7 Plus ซึ่งจะทำให้เกิดปัญหาการทำงานไม่สำเร็จโดยไม่มีการรายงานข้อความแสดงข้อผิดพลาด (I3af47, b/436524501)
  • แก้ไขปัญหาที่ CameraInfo#isFeatureGroupSupported อาจแสดงผลเป็น "จริง" อย่างไม่ถูกต้องสำหรับฟีเจอร์ PREVIEW_STABILIZATION บางครั้งปัญหานี้อาจเกิดขึ้นเมื่อค้นหาด้วย SessionConfig ที่กำหนดค่าไว้กับฟีเจอร์อื่นๆ แล้ว (I2c355, b/437816469)
  • ปรับปรุงความเสถียรของ CameraXViewfinder ในระดับ API ที่เก่ากว่าและอุปกรณ์ที่มีปัญหา SurfaceView โดยค่าเริ่มต้นเป็น TextureView ในสถานการณ์ดังกล่าว กลไกสำรองนี้เป็นค่าเริ่มต้นใหม่ แต่สามารถลบล้างแบบเป็นโปรแกรมได้ (Ieb476, b/437496463)
  • แก้ไขปัญหาหน่วยความจำรั่วไหลใน PreviewView ซึ่งอาจทำให้ระบบไม่สามารถรวบรวมขยะจากกิจกรรมได้ กรณีนี้จะเกิดขึ้นหากมี SurfaceRequest ใหม่เข้ามาถึงก่อนที่ ก่อนหน้าจะได้รับการจัดการ (I4aa0b,b/443112512)
  • แก้ไขปัญหาการบันทึกความเร็วสูง/สโลว์โมชันไม่สำเร็จใน Huawei P smart, Infinix Hot 40i และ Realme C53 (40a668e, b/442984200)

เวอร์ชัน 1.5.0

10 กันยายน 2025

androidx.camera:camera-*:1.5.0 เผยแพร่แล้ว เวอร์ชัน 1.5.0 มี คอมมิตเหล่านี้

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.4.0

  • การบันทึกความเร็วสูงและสโลว์โมชัน: ผสานรวมการบันทึกวิดีโอความเร็วสูง (120/240 FPS) และสโลว์โมชันได้อย่างง่ายดายด้วยโค้ดเพียงเล็กน้อย ดูรายละเอียดได้ที่ Recorder#getHighSpeedVideoCapabilities(CameraInfo) และ HighSpeedVideoSessionConfig
  • API SessionConfig และ FeatureGroup: API SessionConfig ใหม่ช่วยให้คุณกำหนดค่าเซสชันกล้องและเปิดใช้หลายฟีเจอร์ร่วมกันได้อย่างปลอดภัย ซึ่งรวมถึง HLG (HDR), UltraHDR, 60 FPS และระบบกันสั่นสำหรับการแสดงตัวอย่าง นอกจากนี้ คุณยังตั้งค่ากลุ่มฟีเจอร์ที่ต้องการโดยมีลำดับความสำคัญได้ด้วย ซึ่งจะช่วยให้ CameraX กำหนดชุดค่าผสมที่รองรับซึ่งเหมาะสมที่สุดได้ ดูข้อมูลเพิ่มเติมได้ที่ SessionConfig.Builder#setPreferredFeatureGroup, SessionConfig.Builder#setRequiredFeatureGroup และ CameraInfo#isFeatureGroupSupported(SessionConfig)
  • Deterministic Frame Rate API: แก้ไขข้อจำกัดก่อนหน้านี้ด้วย setTargetFrameRate โดยใช้ CameraInfo.getSupportedFrameRateRanges(sessionConfig) เพื่อค้นหา และ SessionConfig.setExpectedFrameRateRange เพื่อตั้งค่าอัตราเฟรมที่แม่นยำและรองรับ
  • ส่วนขยายกล้อง: ตอนนี้ส่วนขยายรองรับรูปแบบ UltraHDR แล้ว ตรวจสอบ ImageCapture.getImageCaptureCapabilities(cameraInfo).getSupportedOutputFormats() และเปิดใช้ใน ImageCapture.Builder.setOutputFormat ตอนนี้ระบบจะแสดงความสามารถในการซูมและระบบกันภาพสั่นไหวในตัวอย่างเมื่อเปิดใช้ส่วนขยาย
  • ความสว่างของไฟฉาย: ปรับความสว่างของไฟฉายโดยใช้ CameraControl.setTorchStrengthLevel
  • โหมดบูสต์ในสภาวะแสงน้อย: คุณเปิดใช้โหมดบูสต์ในสภาวะแสงน้อย(CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY) ได้โดยใช้ API ต่อไปนี้ โปรดดู CameraInfo#isLowLightBoostSupported, CameraInfo#getLowLightBoostState และ CameraControl#enableLowLightBoostAsync
  • การบันทึกวิดีโอ: ระบบจะเรียกใช้ VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE เมื่อพื้นที่เก็บข้อมูลไม่เพียงพอในระหว่างการบันทึก PendingRecording.withAudioEnabled(boolean initialMuted) ช่วยให้ควบคุมสถานะการปิดเสียงเริ่มต้นสำหรับการบันทึกเสียงได้
  • การจับภาพ: รองรับรูปแบบ DNG (RAW) และ JPEG + DNG (RAW) ใน ImageCapture ตรวจสอบการรองรับไฟล์ RAW ใน ImageCaptureCapabilities(CameraInfo).getSupportedOutputFormats() ใช้ takePicture API ที่โอเวอร์โหลดซึ่งมี OutputFileOptions หลายรายการสำหรับการจับภาพ RAW+DNG
  • การวิเคราะห์รูปภาพ: รองรับรูปแบบ NV21 ใน ImageAnalysis เปิดใช้ด้วย ImageAnalysis.Builder.setOutputImageFormat(OUTPUT_IMAGE_FORMAT_NV21)

เวอร์ชัน 1.5.0-rc01

13 สิงหาคม 2025

androidx.camera:camera-*:1.5.0-rc01 เผยแพร่แล้ว เวอร์ชัน 1.5.0-rc01 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • การย้าย minSdk เริ่มต้นจาก API 21 ไปยัง API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
  • นำข้อจำกัดเอาต์พุต 10 บิตสำหรับโหมดการเปิดรับแสงอัตโนมัติของการเพิ่มประสิทธิภาพในที่แสงน้อยออก ตอนนี้แอปพลิเคชันสามารถเปิดใช้ทั้ง 2 ฟีเจอร์พร้อมกันในอุปกรณ์ที่รองรับได้แล้ว (I5a638)
  • แก้ไขปัญหาที่ทำให้อุปกรณ์ที่มีชิปเซ็ต UniSoc ค้างเมื่อจับภาพ ปัญหาเกิดขึ้นเมื่อใช้ VideoCapture, Preview และ ImageCapture พร้อมกันโดยตั้งค่าสตรีมทั้งหมดเป็นความละเอียด 1280x720 (Ia00c4, b/380802479)
  • แก้ไขหน้าจอสีดำในตัวอย่างเมื่อไม่ได้ตั้งค่าอัตราเฟรมความเร็วสูงสำหรับการบันทึกแบบความเร็วสูง/สโลว์โมชัน (cdf0ff2e9)
  • ปรับปรุงการจัดการข้อผิดพลาดและการบันทึกใน getViewportAspectRatioInt (82fca18)

เวอร์ชัน 1.5.0-beta02

16 กรกฎาคม 2025

androidx.camera:camera-*:1.5.0-beta02 เผยแพร่แล้ว เวอร์ชัน 1.5.0-beta02 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่ม API ใหม่เพื่อตั้งค่าหรือค้นหากลุ่มฟีเจอร์คุณภาพสูงอย่างเป็นธรรมชาติและแม่นยำยิ่งขึ้น เนื่องจากอุปกรณ์บางรุ่นอาจไม่รองรับฟีเจอร์เหล่านี้ร่วมกัน ตอนนี้ SessionConfig มี API ใหม่เพื่อระบุกลุ่มฟีเจอร์ว่าจำเป็นหรือแนะนำ CameraInfo.isFeatureGroupSupported API ช่วยให้ทราบว่าระบบรองรับกลุ่มฟีเจอร์หรือไม่ก่อนที่จะเชื่อมโยง SessionConfig SessionConfig ยังอนุญาตให้ตั้งค่า Listener เพื่อให้ทราบว่าฟีเจอร์ใดที่เลือกไว้ในท้ายที่สุดเมื่อมีการเชื่อมโยงการกำหนดค่าเซสชัน (Ie4d60)
  • เพิ่ม API SessoinConfig.Builder.setFrameRateRange(Range<Integer>) และ CameraInfo.getSupportedFrameRateRanges(SessionConfig) ใหม่ ซึ่งช่วยให้นักพัฒนาแอปค้นหาอัตราเฟรมที่รองรับซึ่งรับประกันได้ว่าถูกจำกัดโดย SessionConfig ที่เฉพาะเจาะจง แล้วใช้อัตราเฟรมดังกล่าวกับ SessionConfig (Ieacf7)
  • เปิดตัว SessionConfig API ใหม่ ซึ่งมีการแยกข้อมูลที่ดีขึ้นสำหรับการกำหนดค่า Use Case, พารามิเตอร์เซสชัน, CameraEffect, ViewPort และอื่นๆ การเชื่อมโยง SessionConfig กับ LifecycleOwner จะเปิดเซสชันกล้อง กำหนดค่าโดยใช้ Use Case และพารามิเตอร์เซสชันที่ระบุ และใช้ CameraEffect และ ViewPort ที่กำหนด เมื่ออัปเดต SessionConfig ใหม่เป็น LifecycleOwner เดียวกัน คุณสามารถเชื่อมโยง Sessionconfig ใหม่ได้โดยไม่ต้องเรียกใช้การยกเลิกการเชื่อมโยงหรือ unbindAll ก่อน (Iedfc3)
  • เพิ่ม API ใหม่เพื่อบันทึกวิดีโอความเร็วสูง/สโลว์โมชัน ดูรายละเอียดเพิ่มเติมได้ที่ HighSpeedVideoSessionConfig API (Ia16f3)

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่ API ImageCaptureCapabilities#getSupportedOutputFormats() รายงานว่าอุปกรณ์บางเครื่องรองรับรูปแบบ RAW ทั้งที่จริงๆ แล้วอุปกรณ์ดังกล่าวไม่มีความสามารถในการรองรับ RAW (Ibcadb)
  • แก้ไขหน่วยความจำรั่วไหลที่เกิดขึ้นเมื่อใช้ PreviewView, เปิดใช้ CameraEffect หรือเชื่อมโยง Use Case 4 รายการ(StreamSharing) (I87468)
  • แก้ไขข้อขัดข้องในการบันทึกวิดีโอโดย AssertionError: สถานะเสียงภายในไม่ถูกต้อง: ไม่ทำงาน (I38d4b, b/414259796)
  • แก้ไขปัญหาเมื่อแอปทำงานในจอแสดงผลภายนอกและอุปกรณ์อยู่ในแนวนอน ตัวอย่างใน PreviewView จะยืดออกหรือเอียงไปด้านข้าง (Ia917a)
  • แก้ไขปัญหาที่ระบบไม่ใช้การตั้งค่าระบบกันภาพสั่นของตัวอย่างอย่างถูกต้องเมื่อสตรีมจากกล้องแชร์ระหว่างตัวอย่างและ VideoCapture (I5430e)
  • ตอนนี้ CameraXViewfinder จัดการการแทนที่พื้นผิวใน Viewfinder ที่เกี่ยวข้องได้อย่างถูกต้องแล้ว ซึ่งครอบคลุมสถานการณ์ต่างๆ เช่น เมื่อช่องมองภาพ EXTERNAL ในระดับ API 28 หรือต่ำกว่าเลื่อนออกจากหน้าจอ หรือหาก CameraXViewfinder (ที่มี ImplementationMode ใดๆ) เป็นส่วนหนึ่งของ moveableContentOf() ในกรณีที่ไม่สามารถคง ViewfinderSurfaceSession ที่สำคัญไว้ได้ CameraXViewfinder จะทำให้ SurfaceRequest ของ CameraX ปัจจุบันใช้งานไม่ได้ ซึ่งจะทำให้ CameraX ใช้ Surface ใหม่ได้ (I79432)
  • แก้ไขปัญหาใน Android 10/11 ที่ EXTERNAL CameraXViewfinder อาจปรากฏแบบยืดออกหรือไม่ถูกต้องเนื่องจากมีการใช้การดำเนินการเปลี่ยนรูปแบบ (เช่น ปรับขนาดหรือแปล) เร็วเกินไป ตอนนี้ระบบจะรอให้สร้าง Surface ก่อนที่จะใช้การเปลี่ยนรูปแบบเหล่านี้ในระยะเลย์เอาต์ เพื่อให้ได้เอาต์พุตที่ถูกต้อง (Icc77c)
  • ตอนนี้ Composable CameraXViewfinder ทำงานร่วมกับ Pager ของ Compose ได้อย่างถูกต้องแล้ว การเปลี่ยนแปลงนี้ช่วยให้มั่นใจได้ว่า Composable จะรีเซ็ตได้สำเร็จโดยใช้ Callback onReset ของ AndroidView ซึ่งรองรับทั้งการใช้งาน EMBEDDED และ EXTERNAL (I0d9be)
  • แก้ไขการรั่วไหลของเจ้าของวงจรที่เกิดขึ้นเมื่อยกเลิกการเชื่อมโยง Use Case จากเจ้าของวงจรโดยไม่ปิดผู้ให้บริการกล้อง

เวอร์ชัน 1.5.0-beta01

7 พฤษภาคม 2025

androidx.camera:camera-*:1.5.0-beta01 เผยแพร่แล้ว เวอร์ชัน 1.5.0-beta01 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • โปรเจ็กต์ที่เผยแพร่ด้วย Kotlin 2.0 ต้องใช้ KGP 2.0.0 ขึ้นไป (Idb6b5)
  • ตอนนี้คุณสามารถใช้ ContentScale และการจัดแนวในช่องมองภาพเพื่อปรับขนาดและวางพื้นผิวที่แสดงภายในคอนเทนเนอร์ได้ ซึ่งคล้ายกับลักษณะการทำงานของ androidx.compose.foundation.Image (Ibcea3)
  • ตอนนี้ TransformationInfo มีค่าเริ่มต้นสำหรับอาร์กิวเมนต์ทั้งหมดแล้ว ซึ่งจะช่วยให้สร้าง Viewfinder ได้โดยไม่ต้องมี TransformationInfo ซึ่งจะใช้ค่าเริ่มต้นเป็นการหมุนแหล่งที่มาเป็น 0, ไม่มีการมิเรอร์แหล่งที่มา และไม่มีสี่เหลี่ยมผืนผ้าครอบตัด (I2b1b2)
  • เพิ่ม LifecycleCameraProvider ซึ่งเป็นผู้ให้บริการกล้องที่สามารถสร้างอินสแตนซ์ด้วยการกำหนดค่าต่างๆ สำหรับฟีเจอร์ต่างๆ เช่น การเข้าถึงกล้องของอุปกรณ์เสมือนจริงโดยการกำหนดค่าด้วยบริบทที่กำหนดเอง (Ia2992)

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหาตัวอย่างค้างเมื่อใช้ ImageAnalysis กับสตรีมอื่นที่ใช้ TEMPLATE_RECORD ในอุปกรณ์ Samsung SM-E556B (Ic0e62, b/409478042)
  • แก้ไขปัญหาตัวอย่างค้างเมื่อใช้ ImageAnalysis กับสตรีมอื่นที่ใช้ TEMPLATE_RECORD ในอุปกรณ์ Samsung SM-M556B (Ic1a6a, b/395822788)
  • แก้ไขปัญหาโหมดกลางคืน AssertError ของส่วนขยายในอุปกรณ์ Pixel ที่ใช้ Android 15 เมื่อดำเนินการที่เกี่ยวข้องกับการซูม (I27a5d, b/401460276)
  • แก้ไขปัญหาพิกัดกรอบล้อมรอบที่ไม่ถูกต้องของ ML Kit Analyzer เมื่อใช้ CameraController (Iae91b, b/409808510)

เวอร์ชัน 1.5.0-alpha06

26 กุมภาพันธ์ 2025

androidx.camera:camera-*:1.5.0-alpha06 เผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha06 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่ม CameraInfo.getTorchStrengthLevel, CameraInfo.getMaxTorchStrengthLevel และ CameraControl.setTorchStrengthLevel เพื่อให้ปรับแต่งความสว่างของไฟฉายได้ (I00878)
  • เราได้เพิ่ม API CameraController#setTapToFocusAutoCancelDuration ใหม่เพื่อให้ผู้ใช้ควบคุมลักษณะการทำงานของการยกเลิกอัตโนมัติสำหรับเหตุการณ์แตะเพื่อโฟกัส PreviewView ได้ โดยค่าเริ่มต้น CameraX จะยกเลิกเหตุการณ์โฟกัสหลังจากผ่านไป 5 วินาที (นั่นคือ ระบบจะรีเซ็ตโฟกัสของกล้อง) และ API นี้จะช่วยให้คุณแก้ไขระยะเวลาดังกล่าวหรือปิดใช้การยกเลิกอัตโนมัติทั้งหมดได้ (Icf59a)
  • FLASH_STATE_READY เปลี่ยนชื่อเป็น NOT_FIRED และชื่อค่าคงที่อื่นๆ อีก FlashState รายการได้รับการปรับให้เข้าใจง่ายขึ้นเพื่อให้อ่านง่ายขึ้น (I8771d)
  • Low Light Boost API ที่เปิดเผย อุปกรณ์ที่ใช้ Android 15 ขึ้นไปจะรองรับการเพิ่มความสว่างในที่แสงน้อยได้ ฟีเจอร์นี้สามารถปรับความสว่างของสตรีมตัวอย่าง วิดีโอ หรือการวิเคราะห์รูปภาพในสภาพแสงน้อยได้โดยอัตโนมัติ แอปพลิเคชันสามารถใช้ API ใหม่เพื่อทำสิ่งต่อไปนี้ 1. ใช้ CameraInfo#isLowLightBoostSupported เพื่อตรวจสอบความพร้อมใช้งานของฟีเจอร์ 2. ใช้ CameraControl#enableLowLightBoostAsync เพื่อเปิดใช้โหมดเมื่ออุปกรณ์รองรับ 3. ใช้ CameraInfo#getLowLightBoostState เพื่อตรวจสอบสถานะการเพิ่มประสิทธิภาพในที่แสงน้อย (I937ed)
  • เพิ่มคลาสความเข้ากันได้เพื่อให้ค้นหาที่ไม่ใช่ camera2 ได้เร็วขึ้นใน camera-feature-combination-query (Ie97ee)
  • สำหรับเหตุการณ์แตะเพื่อโฟกัส CameraController ครั้ง ตอนนี้ API getTapToFocusInfoState() ใหม่จะแสดงตำแหน่งการแตะที่เกี่ยวข้องด้วยโดยแสดงผล LiveData ของคลาส TapToFocusInfo ขณะที่ API LiveData<Integer> ก่อนหน้าซึ่งแสดงผล getTapToFocusState() จะเลิกใช้งานเพื่อสนับสนุน API ใหม่ (I238d2)

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่ระบบไม่ใช้ระบบกันภาพสั่นไหวในตัวอย่างเมื่อเปิดใช้ระบบกันภาพสั่นไหวในตัวอย่างด้วยส่วนขยาย (I24ad7)
  • แก้ไขเหตุการณ์สถานะโฟกัส CameraController ไม่รีเซ็ตกลับเป็น TAP_TO_FOCUS_NOT_STARTED เมื่อ CameraX ยกเลิกเหตุการณ์โฟกัสโดยอัตโนมัติ ซึ่งจะเกิดขึ้นหลังจากผ่านไป 5 วินาทีโดยค่าเริ่มต้น (I31954)
  • แก้ไขปัญหาตัวอย่างภาพค้างเมื่อใช้ Zero Shutter Lag (ZSL) หลังจากจับภาพหลายครั้งเนื่องจากทรัพยากรรูปภาพที่ยังไม่ได้เผยแพร่ (Ic3c2a)
  • แก้ไขปัญหาที่วิดีโอ UHD มีสีแดงเมื่อไปป์ไลน์เกี่ยวข้องกับ OpenGL ในอุปกรณ์บางรุ่น (Idcedc)

เวอร์ชัน 1.5.0-alpha05

15 มกราคม 2025

androidx.camera:camera-*:1.5.0-alpha05 เผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha05 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่ม VideoCapture.getSelectedQuality() เพื่อให้ทราบคุณภาพที่เลือกตาม QualitySelector (I70508, b/204288986)
  • เมื่อเรียกใช้การจับภาพด้วย ImageCapture.OnImageCapturedCallback API ตอนนี้คุณสามารถใช้ ImageInfo ที่ ImageProxy ที่แสดงผลเพื่อดูว่ามีการใช้แฟลชผ่าน ImageInfo.getFlashState() API ใหม่หรือไม่ (Id2c61, b/380527406)
  • เพิ่มการรองรับรูปแบบเอาต์พุต OUTPUT_IMAGE_FORMAT_NV21 สำหรับ ImageAnalysis (I484ab)
  • นำคำอธิบายประกอบเวอร์ชันทดลองของอาร์ติแฟกต์ featurecombinationquery ออก (I4427f)
  • ปรับช่วงอัตราส่วนการซูมที่อนุญาตสำหรับ CameraControl ตามลักษณะเฉพาะของส่วนขยายเมื่อเปิดใช้โหมดส่วนขยาย (I85af1)

แก้ไขข้อบกพร่อง

  • อัปเกรด compileSdk เป็น 35 เพื่อใช้ API ที่เกี่ยวข้องกับ Android 15 แอปที่ใช้ไลบรารี CameraX จะต้องอัปเกรดการตั้งค่าการกำหนดค่า compileSdk ด้วย (Ic80cd)
  • ตอนนี้ไลบรารีนี้ใช้คำอธิบายประกอบ Nullness ของ JSpecify ซึ่งเป็นการใช้ประเภท นักพัฒนา Kotlin ควรใช้อาร์กิวเมนต์คอมไพเลอร์ต่อไปนี้เพื่อบังคับใช้การใช้งานที่ถูกต้อง: -Xjspecify-annotations=strict (นี่เป็นค่าเริ่มต้นที่เริ่มตั้งแต่เวอร์ชัน 2.1.0 ของคอมไพเลอร์ Kotlin) (Idc6c6, b/326456246)

เวอร์ชัน 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 พร้อมกัน API ImageCapture#takePicture ใหม่ใช้สำหรับการจับภาพพร้อมกัน โดยต้องระบุ 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 และ 60 FPS พร้อมกันได้หรือไม่ ซึ่งรวมอาร์ติแฟกต์ 2 รายการ ได้แก่ camera-feature-combination-query และ camera-feature-combination-query-play-services นี่คือ API CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported ของ camera2 เวอร์ชันที่เข้ากันได้ซึ่งมีข้อมูลเพิ่มเติมจากบริการ Google Play

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหาอัตราเฟรมเป้าหมาย Preview/VideoCapture ในอุปกรณ์ระดับเดิม อัตราเฟรมเป้าหมายที่ตั้งค่าผ่าน setTargetFrameRate หรือ Camera2Interop API จะถูกเขียนทับด้วยค่าที่ AeFpsRangeLegacyQuirk ระบุเสมอ การแก้ไขนี้จะทำให้ไลบรารี CameraX ยึดตามค่าที่ตั้งไว้ผ่าน API setTargetFrameRate หรือ Camera2Interop (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 ได้สำเร็จ หรือแสดงผลออบเจ็กต์บิตแมปที่ถูกต้องเมื่อเรียกใช้ฟังก์ชัน ImageProxy.toBitmap() ในอุปกรณ์เหล่านี้หากเกิดปัญหาข้อมูลเมตาของรูปภาพ JPEG ไม่ถูกต้อง (Iae493, b/356428987)
  • ปิดใช้ส่วนขยายสำหรับกล้องหลังของ Samsung A52s ที่มีรหัสเป็น 0 เนื่องจากอาจเกิดการขัดข้องของระบบเมื่อจับภาพ HDR และการกำหนดค่าเซสชันการจับภาพอาจไม่สำเร็จสำหรับโหมดโบเก้หรือโหมดปรับแต่งใบหน้า (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 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • อาร์ติแฟกต์ใหม่ camera-compose เปิดตัวสำหรับ CameraX Viewfinder Compose Adapter ซึ่งแสดงสตรีมตัวอย่างจาก CameraX SurfaceRequest จาก camera-core (I8666e)
  • เพิ่ม Composable ใหม่ CameraXViewfinder ซึ่งทำหน้าที่เป็น Composable ตามรูปแบบที่ปรับ SurfaceRequest ของ CameraX สำหรับ Composable Viewfinder (I4770f)

การเปลี่ยนแปลง 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.2

26 มีนาคม 2025

androidx.camera:camera-*:1.4.2 เผยแพร่แล้ว เวอร์ชัน 1.4.2 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหาตัวอย่างค้างเมื่อใช้ ImageAnalysis กับสตรีมอื่นที่ใช้ TEMPLATE_RECORD ใน Samsung Galaxy M55 (Ic1a6a, b/395822788)

เวอร์ชัน 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: การควบคุมใหม่สำหรับการกำหนดค่าการจับภาพวิดีโอ
  • การแสดงตัวอย่างระบบกันสั่น: ตรวจสอบความสามารถของอุปกรณ์และเปิดใช้ระบบกันสั่น
  • การปรับปรุง VideoCapture: ควบคุมคุณภาพได้ละเอียดยิ่งขึ้นและเข้าถึงความละเอียดที่สูงขึ้น
  • การผสานรวมส่วนขยาย CameraX: การผสานรวมที่ราบรื่นกับฟีเจอร์ VideoCapture และฟีเจอร์ ImageCapture ใหม่
  • Shutter Sound API: ตรวจสอบข้อกำหนดด้านเสียงชัตเตอร์ระดับภูมิภาคได้อย่างง่ายดาย
  • แฟลชหน้าจอ: ปรับปรุงรูปภาพในสภาวะแสงน้อยสำหรับกล้องหน้า
  • 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 ปัญหาซึ่งเกิดจากปัญหาการแปลง Camera2OutputConfigImpl ในโหมด Release ปรากฏขึ้นหลังจากอัปเกรด 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

  • เพิ่ม setMirrorMode สำหรับกรณีการใช้งานเวอร์ชันตัวอย่าง เช่นเดียวกับ VideoCapture โดยจะรองรับการเปิดและปิดโหมดมิเรอร์สำหรับสตรีมตัวอย่างผ่าน 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 รูปแบบนี้เข้ากันได้แบบย้อนหลังกับรูปแบบ SDR JPEG และรองรับการแสดงผลเนื้อหา HDR ซึ่งหมายความว่าในแอปหรืออุปกรณ์รุ่นเก่า รูปภาพจะปรากฏเป็น JPEG ปกติอย่างราบรื่น ส่วนในแอปและอุปกรณ์ที่ได้รับการอัปเดตให้รองรับรูปแบบนี้อย่างเต็มรูปแบบ รูปภาพจะปรากฏเป็น HDR (I5de50)
  • เพิ่ม PhysicalCameraInfo ใน CameraInfo เพื่อค้นหาข้อมูลกล้องจริง และเพิ่มเมธอด Setter/Getter ของรหัสกล้องจริงใน CameraSelector (Ic5b90)
  • แทนที่ CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED ด้วย ImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED ค่าคงที่จะยังคงเหมือนเดิม This is for consolidating all the constants into one place. (I890bb)
  • API RetryPolicy ใหม่ช่วยให้นักพัฒนาแอปปรับแต่งลักษณะการลองใหม่สำหรับการเริ่มต้น 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)
  • เพิ่ม API ของ PreviewView#getSensorToViewTransform() เมทริกซ์แสดงการเปลี่ยนรูปแบบจากพิกัดเซ็นเซอร์ตรวจจับผ่านกล้องเป็นพิกัดของ PreviewView ซึ่งสามารถใช้เพื่อแปลงพิกัดจาก UseCase หนึ่งไปยังอีกพิกัดหนึ่งได้ เช่น การเปลี่ยนพิกัดของวัตถุที่ตรวจพบใน ImageAnalysis เป็นการวางซ้อน PreviewView (I947ab)
  • ทำให้ camera-viewfinder-core 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 ได้สำเร็จ หรือแสดงผลออบเจ็กต์บิตแมปที่ถูกต้องเมื่อเรียกใช้ฟังก์ชัน 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 ใหม่เพื่อให้ตั้งค่าช่วงไดนามิกในกรณีการใช้งานตัวอย่างได้ และเพื่อค้นหาช่วงไดนามิกที่กล้องแต่ละตัวรองรับ ซึ่งช่วยให้ใช้ช่วงไดนามิก HDR เช่น HLG10 กับ Use Case ของ Preview เพียงอย่างเดียวได้ โดยไม่จำเป็นต้องเชื่อมโยง 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)

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหาหน่วยความจำรั่วไหลซึ่งส่งผลให้ไม่มีการปล่อยกิจกรรมหรือ Fragment เมื่อเปิดใช้ส่วนขยาย (I14215)
  • แก้ไขปัญหาที่ getZoomRatio แสดงผลค่าที่ลดลงอย่างไม่ถูกต้องเมื่อใช้อัตราส่วนการซูมที่เพิ่มขึ้น (I4aa0d, b/317543616)
  • ระบบจะเรียกใช้เหตุการณ์ ImageCapture#ScreenFlash#clear ทันทีเมื่อเลิกเชื่อมโยง ImageCapture หรือปิดกล้อง และยังแก้ไขข้อบกพร่องบางอย่างที่ระบบไม่เรียกใช้เหตุการณ์เนื่องจากการจับภาพในสถานการณ์เหล่านี้ไม่เสร็จสมบูรณ์อย่างถูกต้อง (If99f9)
  • แก้ไขข้อขัดข้องที่เกิดขึ้นเมื่อวงจรหยุดทำงานก่อนที่คำขอ takePicture จะเสร็จสมบูรณ์ (Idf017, b/306202751)
  • แก้ไขปัญหาที่ตัวอย่างภาพจากกล้องกลายเป็นสีดำเมื่อเปิดใช้ส่วนขยายในอุปกรณ์บางเครื่อง (I1ffd0)
  • แก้ไขระยะเวลาการบันทึกวิดีโอที่ไม่ถูกต้องในอุปกรณ์ที่ใช้ Snapdragon 778G SoC (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 สำหรับแอปเพื่อค้นหาความสามารถของ Callback ความคืบหน้าของกระบวนการหลังการดูและการจับภาพ แอปสามารถเปิดใช้ Postview โดยใช้ ImageCapture.Builder#setPostviewEnabled() คุณเลือกขนาดมุมมองหลังการคลิกได้โดยใช้ ImageCapture.Builder#setPostviewResolutionSelector() เมื่อเรียกใช้ takePicture() คุณสามารถใช้ onPostviewBitmapAvailable และ onCaptureProcessProgressed ใน OnImageSavedCallback หรือ OnImageCapturedCallback เพื่อรับการแจ้งเตือนความคืบหน้าของ Postview และกระบวนการได้ หากรองรับ (I5cd88)
  • API สำหรับคำนวณการเปลี่ยนรูปแบบพิกัดจากเซ็นเซอร์ไปยังบัฟเฟอร์ปัจจุบัน พร้อมแฟล็กที่ระบุว่า Surface มีข้อมูลการวางแนวกล้องหรือไม่ (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 เป็นวิธีที่ครอบคลุมมากขึ้นในการเลือกความละเอียด และสอดคล้องกับ API ของ camera-core (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 และตัวอย่างเมื่อเปิดใช้โหมดส่วนขยายบางโหมดในอุปกรณ์บางเครื่อง การแก้ไขจะแสดงค่าที่ถูกต้องเมื่อแอปค้นหาความพร้อมใช้งานของ 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 ที่ตรงกันกับ UseCase ImageAnalysis จะช่วยแก้ปัญหานี้ได้ (I81f72, b/330091012)

เวอร์ชัน 1.3.2

6 มีนาคม 2024

androidx.camera:camera-*:1.3.2 เผยแพร่แล้ว เวอร์ชัน 1.3.2 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหาข้อมูลเมตา JPEG ในอุปกรณ์ Samsung A24 ตอนนี้ CameraX จะบันทึกรูปภาพอย่างถูกต้อง และฟังก์ชัน ImageProxy.toBitmap() จะแสดงผลออบเจ็กต์บิตแมปที่ถูกต้อง (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)

ต่อไปนี้เป็นผลลัพธ์อ้างอิงสำหรับสถานการณ์ต่างๆ

  • 4 UseCases: Preview + ImageCapture + ImageAnalysis + VideoCapture

    • Google Pixel 7: ประมาณ 430 มิลลิวินาทีถึง 60 มิลลิวินาที
    • Samsung Galaxy S23 Ultra: ประมาณ 540 มิลลิวินาทีถึง 45 มิลลิวินาที
    • Samsung A53 5G: ประมาณ 115 มิลลิวินาทีถึง 70 มิลลิวินาที
  • 3 UseCases: Preview + ImageCapture + ImageAnalysis

    • Google Pixel 7: ประมาณ 9 มิลลิวินาทีถึง 7 มิลลิวินาที
    • Samsung Galaxy S23 Ultra: ประมาณ 6 มิลลิวินาทีถึง 5 มิลลิวินาที
    • Samsung A53 5G: ประมาณ 32 มิลลิวินาทีถึง 12 มิลลิวินาที
  • เพิ่ม Snapdragon 480 ลงใน CameraUseInconsistentTimebaseQuirk การดำเนินการนี้จะแก้ไขปัญหาใน Android 12 สำหรับอุปกรณ์ที่ใช้ชิปเซ็ตนี้ ซึ่งเสียงในการบันทึกจะถูกชดเชยตามระยะเวลาที่อุปกรณ์อยู่ในสถานะถูกระงับ (I58010)

เวอร์ชัน 1.3.0

18 ตุลาคม 2023

androidx.camera:camera-*:1.3.0 เผยแพร่แล้ว เวอร์ชัน 1.3.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.2.0

เวอร์ชัน 1.3.0-rc02

20 กันยายน 2023

androidx.camera:camera-*:1.3.0-rc02 เผยแพร่แล้ว เวอร์ชัน 1.3.0-rc02 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • ปรับปรุงความเสถียรของส่วนขยายโดยตรวจสอบว่าเหตุการณ์การเริ่มต้นและการยกเลิกการเริ่มต้นได้รับการทริกเกอร์ตามลำดับที่ถูกต้อง การดำเนินการนี้ช่วยแก้ไขปัญหาตัวอย่างสีดำบางรายการเมื่อเปลี่ยนโหมดส่วนขยายหรือเปลี่ยนกล้อง (Iddaac)
  • แก้ไขปัญหาที่ ImageAnalysis ไม่สามารถเชื่อมโยงกับ ImageCapture และตัวอย่างเมื่อเปิดใช้โหมดส่วนขยายบางโหมดในอุปกรณ์บางเครื่อง การแก้ไขจะแสดงค่าที่ถูกต้องเมื่อแอปค้นหาความพร้อมใช้งานของ 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 ซึ่งแอปสามารถระบุได้ว่ากรณีการใช้งาน ImageAnalysis สามารถเชื่อมโยงกับตัวอย่างและ 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 ของ Builder เป็น setAllowedResolutionMode (Iae817)
  • ตอนนี้ CameraInfo#getSupportedFrameRateRanges() จะแสดงผลเป็น Set แทน List เพื่อแสดงให้เห็นว่าช่วงไม่มีการจัดเรียงได้ดียิ่งขึ้น (I02f43)
  • เพิ่ม Listener ข้อผิดพลาดลงใน CameraEffect เพื่อจัดการข้อผิดพลาดที่กู้คืนไม่ได้ (Ice471)
  • เพิ่มเครื่องมือสร้างสาธารณะใน ResolutionInfo เพื่อให้ทดสอบได้ดียิ่งขึ้น (If6d1c)
  • จัดเตรียม API UseCase.snapToSurfaceRotation(int) เพื่อแทนที่การใช้งาน setTargetRotationDegrees และเลิกใช้งาน API ImageAnalysis.setTargetRotationDegrees(int), ImageCapture.setTargetRotationDegrees(int) และ VideoCapture.setTargetRotationDegrees(int) (Ia9010)
  • เพิ่ม API Preview#getTargetFrameRate และ Preview.Builder#setTargetFrameRate ใหม่เพื่อให้สามารถตั้งค่าและเรียกข้อมูลอัตราเฟรมเป้าหมายสำหรับ Use Case ของตัวอย่าง (If4f22)
  • ตอนนี้ VideoRecordEvent.Finalize จะเสร็จสมบูรณ์พร้อมรหัสข้อผิดพลาด ERROR_RECORDING_GARBAGE_COLLECTED เมื่อออบเจ็กต์ Recording หยุดทำงานเนื่องจากการเก็บขยะ (Iba974)

แก้ไขข้อบกพร่อง

  • แก้ไข NullPointerException เมื่อขนาดเอาต์พุตที่แคชไว้ใน StreamConfigurationMapCompat เป็นค่า Null (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 ตัว ซึ่งช่วยให้กล้อง 2 ตัวทำงานพร้อมกันได้ โดยมี {@link UseCase} ที่เชื่อมโยงกับกล้องแต่ละตัวได้สูงสุด 2 รายการ ความละเอียดสูงสุดคือ 720p หรือ 1440p ดูรายละเอียดเพิ่มเติมได้ที่ลิงก์ต่อไปนี้ CameraManager#getConcurrentCameraIds()
  • ขอแนะนำ ResolutionSelector API ใหม่ซึ่งครอบคลุมฟีเจอร์ต่อไปนี้
    • แอปพลิเคชันสามารถระบุสัดส่วนภาพและกลยุทธ์ความละเอียดเพื่อเลือกความละเอียดที่ดีที่สุดสำหรับความต้องการของตน
    • พารามิเตอร์ขนาดและสัดส่วนภาพทั้งหมดจะแสดงเป็นพิกัดของเซ็นเซอร์อุปกรณ์กล้อง
    • แอปพลิเคชันสามารถใช้ตัวกรองความละเอียดที่กำหนดเองเพื่อจัดเรียงขนาดที่รองรับตามลำดับที่ต้องการได้
    • นอกจากนี้ แอปพลิเคชันยังเปิดใช้การจับภาพความละเอียดสูงเพื่อให้ได้รูปภาพที่มีความละเอียดสูงขึ้นได้ด้วย อย่างไรก็ตาม โปรดทราบว่าการใช้ความละเอียดสูงอาจส่งผลให้ใช้เวลาในการจับภาพนานขึ้น
    • เพิ่ม API การมิเรอร์ VideoCapture แล้ว ระบบจะไม่มิเรอร์วิดีโอที่บันทึกโดย VideoCapture โดยค่าเริ่มต้น อย่างไรก็ตาม ตัวอย่างภาพจากกล้องจะกลับด้านในกล้องหน้าโดยค่าเริ่มต้น API การมิเรอร์ของ VideoCapture ช่วยให้จัดแนวตัวอย่างภาพจากกล้องได้เมื่อใช้กล้องหน้า มี MirrorMode, OFF, ON และ ON_FRONT_ONLY 3 รายการ หากต้องการจัดแนวให้ตรงกับตัวอย่างภาพจากกล้อง ขอแนะนำให้ใช้ ON_FRONT_ONLY ซึ่งหมายความว่าระบบจะไม่เปิดใช้การมิเรอร์สำหรับกล้องหลัง แต่จะเปิดใช้สำหรับกล้องหน้า

การเปลี่ยนแปลง API

  • แสดง API ResolutionSelector ใหม่ แอปพลิเคชันสามารถระบุกลยุทธ์สัดส่วนภาพและความละเอียดด้วยกฎสำรองหรือตัวกรองความละเอียดที่กำหนดเองเพื่อให้ได้ผลลัพธ์ที่ต้องการ แอปพลิเคชันสามารถระบุแฟล็กเพื่อเปิดใช้การจับภาพความละเอียดสูงได้ ซึ่งจะช่วยให้ CameraX เลือกความละเอียดที่สูงขึ้นได้เมื่อถ่ายภาพหรือวิดีโอ อย่างไรก็ตาม โปรดทราบว่าการใช้ความละเอียดสูงอาจส่งผลให้ใช้เวลาในการจับภาพนานขึ้น (Ibed95)
  • ตอนนี้คุณสามารถค้นหาช่วง FPS ที่อัลกอริทึม AE รองรับได้ผ่าน CameraInfo#getSupportedFrameRateRanges() (Iaa67f)
  • รวมชื่อของเมธอดอัตราเฟรมทั้งหมดไว้ใน "FrameRate" แก้ไขข้อผิดพลาดของ javadoc ใน VideoCapture#getTargetFrameRate() (I83304)
  • เลิกใช้งาน setTargetAspectRatio และ setTargetResolution API เดิม โปรดใช้ ResolutionSelector API ใหม่แทน (I542c3)
  • เพิ่ม API สาธารณะสำหรับ Dual Camera ที่ทำงานพร้อมกัน ซึ่งรวมถึง
    1. List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
    2. ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
    3. 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 เป็น "จริง" ในแท็กแอปพลิเคชันด้วย (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 กับ UseCase VideoCapture ส่วนเอฟเฟกต์ที่กำหนดเป้าหมายเป็น PREVIEW|VIDEO_CAPTURE จะใช้กับสตรีมที่แชร์ก่อนคัดลอกไปยังสตรีมตัวอย่างและสตรีม VideoCapture (Iee6f3)

แก้ไขข้อบกพร่อง

  • จากกล้อง 1.2.2: แก้ไขปัญหาที่ส่วนขยาย CameraX ทำงานไม่ถูกต้องเมื่อเปิดใช้ ProGuard ในอุปกรณ์บางรุ่น เช่น Pixel (I90aa2)
  • แก้ไขข้อบกพร่องใน PreviewView ที่หากแอปจัดการการวางแนวหน้าจอเอง ตัวอย่างอาจบิดเบี้ยวเมื่อหมุน ซึ่งปัญหานี้จะเกิดขึ้นในอุปกรณ์บางรุ่นเท่านั้น ปัญหานี้เกิดขึ้นซ้ำได้ใน Pixel a4, 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 ที่ไม่รองรับก่อนหน้านี้โดยการแชร์สตรีมเดียวไปยัง UseCase หลายรายการ

  • ก่อนหน้านี้ เมื่อเชื่อมโยง "Preview, VideoCapture, ImageAnalysis" ในระดับฮาร์ดแวร์กล้อง FULL และต่ำกว่า หรือเชื่อมโยง "Preview, VideoCapture, ImageCapture" ในระดับฮาร์ดแวร์ LEGACY แล้ว CameraX จะแสดง IllegalArgumentException
  • ลักษณะการทำงานใหม่คือการเชื่อมโยงจะทำงานโดยไม่แสดงข้อยกเว้น แต่ CameraX จะใช้ OpenGL เพื่อคัดลอกสตรีมที่แชร์ไปยังทั้ง Preview และ VideoCapture แทน
  • เนื่องจากค่าใช้จ่ายในการคัดลอกบัฟเฟอร์ แอปอาจมีเวลาในการตอบสนองและการใช้พลังงานเพิ่มขึ้น

การเปลี่ยนแปลง API

  • เพิ่ม API เพื่อแปลง ImageProxy เป็น Bitmap รูปแบบ ImageProxy ที่รองรับคือ ImageFormat.YUV_420_888 และ PixelFormat.RGBA_8888 หากรูปแบบไม่ถูกต้อง ระบบจะแสดง IllegalArgumentException (Ic7110)
  • เพิ่ม CoroutineCameraViewfinder เพื่อรองรับการกำหนดค่าช่องมองภาพโดยใช้ฟังก์ชัน Suspend ใน 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)
  • เพิ่ม API ของ ImageProcessor อินเทอร์เฟซนี้มีไว้สำหรับแทรกเอฟเฟกต์หลังการประมวลผลลงในไปป์ไลน์ ImageCapture (I575c6)
  • เพิ่ม API Recorder.Builder.setAspectRatio() ซึ่งสามารถใช้ร่วมกับ QualitySelector เพื่อรองรับความละเอียดของวิดีโอได้มากขึ้น (I8a082)
  • เพิ่ม Recorder.Builder#setTargetVideoEncodingBitRate เพื่อตั้งค่าการเข้ารหัสวิดีโอเป้าหมาย BitRate และ Recorder#getTargetVideoEncodingBitRate เพื่อรับอัตราบิตการเข้ารหัสวิดีโอเป้าหมาย (I5984d)

แก้ไขข้อบกพร่อง

  • แก้ไขข้อผิดพลาด ImageCapture เมื่อไม่มีแฟลชและเปิดโหมดแฟลชอยู่ (I9e8b4, b/263391112)
  • แก้ไขปัญหาความเสียหายของรูปภาพ JPEG หากเขียนข้อมูลตำแหน่ง Exif ในอุปกรณ์ Samsung Android 12 บางรุ่น (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)
  • นำคลาสข้อมูลเมตา, OnVideoSavedCallback, OutputFileOptions และ OutputFileResults ที่ไม่ได้ใช้อีกต่อไปออกหลังจากใช้ API การจับภาพวิดีโอใหม่ (I38cd8)
  • ใช้ API การจับภาพวิดีโอใหม่ เมธอด getVideoCaptureTargetSize และ setVideoCaptureTargetSize จะถูกแทนที่ด้วยเมธอด getVideoCaptureTargetQuality และ setVideoCaptureTargetQuality ตามลำดับ เนื่องจากระบบไม่รองรับ setTargetResolution อีกต่อไป (I2a1d5)

แก้ไขข้อบกพร่อง

  • นำ core.VideoCapture API ที่เลิกใช้งานแล้วออก (I531e0)
  • แก้ไขปัญหาที่ระบบไม่เรียกใช้ Callback onError เมื่อถ่ายภาพโดยไม่มีสิทธิ์เข้าถึงพื้นที่เก็บข้อมูล (I936db, b/244807669)
  • ปรับปรุงคุณภาพและความน่าเชื่อถือของส่วนขยายกล้อง ส่วนขยายกล้องถูกปิดใช้ในอุปกรณ์ Motorola ที่ใช้ Camera Extensions v1.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) เมื่อใช้ API ViewPort หรือ CameraController (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 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหาความเสียหายของรูปภาพ JPEG หากเขียนข้อมูลตำแหน่ง Exif ในอุปกรณ์ Samsung Android 12 บางรุ่น (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 Zero-Shutter Lag เวอร์ชันทดลองใหม่ เพิ่มประสิทธิภาพไปป์ไลน์การจับภาพให้มีเวลาในการตอบสนองที่ดีขึ้นโดยที่ยังคงคุณภาพของรูปภาพไว้ เมื่อตั้งค่าโหมดการจับภาพเป็น 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

  • เพิ่ม API ของ setStreamUseCase สำหรับ OutputConfiguration ผู้ใช้สามารถระบุกรณีการใช้งานสตรีมสำหรับเซสชันสตรีม โดยลบล้างตรรกะภายในของ CameraX เพื่อเลือกกรณีการใช้งานสตรีมเพื่อเพิ่มประสิทธิภาพตามความต้องการ (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)

แก้ไขข้อบกพร่อง

  • เพิ่มระยะหมดเวลาเริ่มต้นของการโฟกัสอัตโนมัติ 5,000 มิลลิวินาที ซึ่งจะทำให้ส่วน AF เสร็จสมบูรณ์โดยมี isFocusSuccessful เป็นเท็จ หากไม่มีการยกเลิก FocusMeteringAction และส่วน AF ไม่ได้รวมเข้าด้วยกันในระยะเวลาดังกล่าว (Ibc2e3)
  • แก้ไขปัญหาการถ่ายภาพด้วยตัวอย่างที่ไม่ได้เชื่อมโยง (I1d3a2, b/235119898)
  • เปิดใช้การติดตั้งใช้งาน Extender ขั้นสูงและอัปเดตเวอร์ชันอินเทอร์เฟซส่วนขยายการรองรับ 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)

แก้ไขข้อบกพร่อง

  • แก้ไขเมธอด takePicture ของ ImageCapture ที่ปิดไฟฉายในอุปกรณ์ที่รายงาน (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 รองรับการใช้งานร่วมกันในกรณีนี้และควรนำมาใช้ (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

  • เปิดตัวไลบรารี View, Extension และ Video Capture เป็นเวอร์ชัน RC แรก ตั้งแต่เวอร์ชัน 1.1.0-beta01 เป็นต้นไป ไลบรารี CameraX ทั้งหมดจะใช้หมายเลขเวอร์ชันเดียวกัน ซึ่งจะช่วยให้นักพัฒนาแอปติดตามเวอร์ชันได้ง่ายขึ้นมาก และลดความซับซ้อนของเมทริกซ์ความเข้ากันได้ของเวอร์ชันขนาดใหญ่
  • เปิดตัว API สาธารณะและฟีเจอร์ใหม่ๆ ซึ่งรวมถึงรายการต่อไปนี้
  • เพิ่มไลบรารี camera-video อย่างเป็นทางการเพื่อรองรับ Use Case การจับภาพวิดีโอ
  • ความสามารถในการแปลงและหมุน 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 ลงใน 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(),
  • API ของ @ExperimentalCameraFilter
  • API การชดเชยการรับแสงแบบทดลอง
  • โปรโมต API UseCaseGroup เวอร์ชันทดลองสำหรับ camera-core, camera-lifecycle และ camera-video เพิ่ม ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection และ ViewPort.Builder#setScaleType สำหรับการปรับแต่งวิวพอร์ต
  • โปรโมต ExperimentalUseCaseGroupLifecycle เป็น API สาธารณะอย่างเป็นทางการ
  • การเปลี่ยนแปลง API ที่มีอยู่
  • Renamed MediaStoreOutputOptions.getCollection กับ MediaStoreOutputOptions.getCollectionUri
  • ระบบได้เปลี่ยนชื่อ ActiveRecording เป็น "การบันทึก" เพื่อลดความยาวของข้อความ
  • เปลี่ยน API ของครีเอเตอร์ QualitySelector เป็น API แบบอิงตามรายการ

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหา EOFException ของ YuvToJpegProcessor เมื่อเปิดใช้โหมดส่วนขยายและตั้งค่าโหมด 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 ไม่ได้ แอปพลิเคชันจะได้รับ Callback ข้อผิดพลาดเมื่อเริ่มบันทึก (I89c29, b/213617227)

การมีส่วนร่วมจากภายนอก

  • อัปเดต API :compose:ui:ui-test (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)
  • แก้ไขปัญหาขอบเขต AF ไม่ถูกต้องเมื่อใช้ 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)
  • ตอนนี้ระบบจะใช้การวิเคราะห์พฤติกรรมที่ชาญฉลาดยิ่งขึ้นเพื่อเลือกการตั้งค่าโปรแกรมเปลี่ยนไฟล์ตามโปรไฟล์ที่ 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 ลงใน API สาธารณะเพื่อกรองรายการ CameraInfo ตาม CameraSelector (I105d0)
  • เพิ่ม setOutputImageRotationEnabled API สำหรับการกำหนดค่า ImageAnalysis ผู้ใช้สามารถเปิดใช้การหมุนสำหรับบัฟเฟอร์รูปภาพ YUV/RGB ได้ องศาการหมุนคือการหมุนสัมพัทธ์ที่คำนวณตามการหมุนของเซ็นเซอร์และการหมุนเป้าหมายเพื่อให้รูปภาพอยู่ด้านหน้า

  • เพิ่ม setOutputImageRotationEnabled API สำหรับการกำหนดค่า ImageAnalysis ผู้ใช้สามารถเปิดใช้การหมุนสำหรับบัฟเฟอร์รูปภาพ YUV/RGB ได้ องศาการหมุนคือการหมุนสัมพัทธ์ที่คำนวณตามการหมุนของเซ็นเซอร์และการหมุนเป้าหมายเพื่อให้รูปภาพอยู่ด้านหน้า

    เพิ่ม getSensorToBufferTransformMatrix API ใน ImageInfo เมทริกซ์ที่แสดงผลคือการแมปจากพิกัดเซ็นเซอร์ไปยังพิกัดบัฟเฟอร์ ซึ่งก็คือจากค่าของ CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE ไปยัง (0, 0, image.getWidth, image.getHeight) เมทริกซ์สามารถใช้เพื่อแมปพิกัดจาก {UseCase} หนึ่งไปยังอีก {UseCase} หนึ่งได้ เช่น การแมปพิกัดของใบหน้าที่ตรวจพบด้วย ImageAnalysis กับ Preview (I9ff1e)

  • เพิ่ม API ImageCapture.Builder#setJpegQuality ใหม่เพื่อให้เปลี่ยนคุณภาพการบีบอัดรูปภาพ JPEG เอาต์พุตเมื่อถ่ายภาพได้ (I8dcf4)

  • เปลี่ยนชื่อ MediaStoreOutputOptions.getCollection เป็น MediaStoreOutputOptions.getCollectionUri (I16639)

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่แฟลชทำงานระหว่างการแตะเพื่อโฟกัส (startFocusAndMetering) เมื่อโหมดแฟลชเป็นอัตโนมัติหรือเปิดตลอดเวลาในสภาพแวดล้อมที่มีแสงน้อย (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, ขนาดสูงสุด และรายละเอียดเพิ่มเติมได้ที่ https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture ขนาด RECORD หมายถึงความละเอียดในการบันทึกสูงสุดที่อุปกรณ์กล้องรองรับ ตามที่กำหนดโดย CamcorderProfile ขนาดสูงสุดหมายถึงความละเอียดเอาต์พุตสูงสุดของอุปกรณ์กล้องสำหรับรูปแบบหรือเป้าหมายนั้นจาก 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)
  • แก้ไขปัญหา EOFException ของ YuvToJpegProcessor เมื่อเปิดใช้โหมดส่วนขยายและตั้งค่าโหมด 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)
  • ตอนนี้ API ของ ExperimentalCameraFilter ออกจากระยะทดลองแล้วและกลายเป็น 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 อินสแตนซ์เก็บรักษา Activity หรือ Fragment ไว้ (I7b4b8)
  • แทนที่คำอธิบายประกอบ @Experimental ด้วย @RequiresOptIn เป็น API เวอร์ชันทดลอง สำหรับการเรียกใช้ API เวอร์ชันทดลอง ให้ใช้ androidx.annotation.OptIn แทน androidx.annotation.experimental.UseExperimental ที่เลิกใช้งานแล้ว (Iff226)
  • แก้ไขปัญหา ImageCapture ที่เปิดแฟลช/แฟลชอัตโนมัติแล้วถ่ายภาพออกมาสว่างเกินไปใน 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 แย่งกล้องจากไคลเอ็นต์กล้องอื่นๆ เมื่อแอปมีลำดับความสำคัญสูงกว่า (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 รองรับ Preview, ImageCapture และ Analysis
  • 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 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหา ImageCapture ที่เปิดแฟลช/แฟลชอัตโนมัติแล้วถ่ายภาพออกมาสว่างเกินไปใน 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)

Camera 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 ของคำอธิบายประกอบ Experimental เลิกใช้งานแล้วเพื่อให้สอดคล้องกับ Kotlin โดยเราได้แทนที่ด้วยคำอธิบายประกอบ RequiresOptIn และอัปเดต Linter ที่แสดงต่อ 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 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • รองรับ API CONTROL_ZOOM_RATIO ของ Android 11 สำหรับการซูมในอุปกรณ์ Android 11 ขึ้นไปซึ่งมี CONTROL_ZOOM_RATIO_RANGE ที่ถูกต้อง (I62cc6)

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหา NumberFormatException ที่เกิดขึ้นเมื่อรหัสกล้องไม่ใช่รหัสกล้องที่เป็นจำนวนเต็ม (Ib2228)
  • ปรับปรุงเวลาในการตอบสนองของการเริ่มต้น CameraX และ bindToLifecycle (I61dc5)
  • การสร้าง UseCases ไม่จำเป็นต้องเริ่มต้น 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 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่ - รองรับ API CONTROL_ZOOM_RATIO ของ Android 11 สำหรับการซูมในอุปกรณ์ Android 11 ขึ้นไปซึ่งมี CONTROL_ZOOM_RATIO_RANGE ที่ถูกต้อง (I62cc6)

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหา NumberFormatException ที่เกิดขึ้นเมื่อรหัสกล้องไม่ใช่รหัสกล้องที่เป็นจำนวนเต็ม (Ib2228)
  • การสร้าง UseCases ไม่จำเป็นต้องเริ่มต้น 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-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)
  • อนุญาตให้หมุนเป้าหมายตามต้องการสำหรับตัวอย่าง ระบบจะคำนวณข้อมูลการเปลี่ยนรูปแบบและส่งกลับไปยังผู้ใช้แบบเรียลไทม์ผ่าน Callback TranformationInfoListener ใหม่ (I21470)

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่แฟลชในอุปกรณ์บางเครื่องไม่ปิด ซึ่งเกิดขึ้นเมื่อตั้งค่าโหมดแฟลชเป็น FLASH_MODE_ON เพื่อถ่ายภาพ และเปลี่ยนเป็น FLASH_MODE_OFF เมื่อแฟลชทำงาน อาการจะเหมือนกับเปิดใช้โหมดไฟฉาย (Ib4451, b/162568128)
  • บังคับให้ PreviewView ใช้ TextureView หากเปิดใช้เอฟเฟกต์ส่วนขยายและการติดตั้งใช้งานไลบรารีของผู้ให้บริการจำเป็นต้องดำเนินการกระบวนการพิเศษบนพื้นผิวเอาต์พุต (I0c3cc)
  • แก้ไขการรั่วไหลของกิจกรรม/ส่วนย่อยเมื่อมีการส่งบริบทกิจกรรม/ส่วนย่อยไปยัง 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)
  • แก้ไขปัญหาการจัดกลุ่มขนาดสัดส่วนภาพที่มีความละเอียดอัตโนมัติ ซึ่งระบบจะเลือกขนาด mod16 16:9 (864x480) เมื่อการตั้งค่าความละเอียดเป้าหมายคือ 2016x1080 และมีการรองรับขนาด 1920x1080 16:9 อีกขนาดหนึ่ง (I53167, b/159363774)
  • แก้ไขปัญหา CameraControl ที่ไม่สามารถทำงานได้เนื่องจากภาวะแข่งขัน (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)

แก้ไขข้อบกพร่อง

  • สำหรับการจับภาพ ให้เขียนทับแฟล็กพลิกแนวนอนในข้อมูลเมตาตามทิศทางของกล้อง (I28499)
  • การเริ่มต้นไม่ควรขัดข้องอีกต่อไปเมื่อใช้บริบทที่ไม่แสดงผลออบเจ็กต์แอปพลิเคชันจาก 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หมายความว่าสี่เหลี่ยมผืนผ้าที่ครอบตัดที่แสดงผลจะเป็นสี่เหลี่ยมผืนผ้าเซ็นเซอร์ที่ใหญ่ที่สุดเท่าที่จะเป็นไปได้ (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)
  • แก้ไขปัญหาการสลับกล้องซ้ำๆ ทำให้ตัวอย่างภาพเสียเมื่อใช้การติดตั้งใช้งาน SurfaceView ของ PreviewView (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 เป็นค่า Null (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)

แก้ไขข้อบกพร่อง

  • อัปเดต javadocs ของ 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 แล้ว นอกจากนี้ยังทำให้ ImageProxy ทั้งหมดที่ Analyzer ได้รับต้องปิดก่อนที่ 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 ไม่ปล่อย Surface ที่ขอไว้ก่อนหน้านี้ “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 โดยคงแฟล็กที่ตั้งค่าผู้ให้บริการ 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() อีกต่อไป และบังคับใช้ว่าไม่สามารถยกเลิก Callback ของ provideSurface() ได้ ซึ่งจะช่วยป้องกันไม่ให้อุปกรณ์รุ่นเก่าขัดข้องเนื่องจากการปล่อยแพลตฟอร์มก่อนเวลาอันควร ตอนนี้ออบเจ็กต์ SurfaceRequest.Result จะใช้เพื่อติดตามวิธีที่ SurfaceRequest ใช้ Surface ที่ระบุ (I7854b)
  • เปลี่ยนชื่อ SurfaceRequest.setSurface(Surface) เป็น SurfaceRequest.provideSurface(Surface) และ SurfaceRequest.setWillNotComplete() เป็น SurfaceRequest.willNotProvideSurface() แล้ว (I224fe)

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่สัดส่วนภาพของรูปภาพที่บันทึกไว้ไม่ถูกต้องหลังจากเปลี่ยนค่าการหมุนเป้าหมายโดยใช้ ImageCapture.setTargetRotation() (I474ea, b/148763432)
  • แก้ไขการเริ่มต้นตัวแปรแอปที่เปิดใช้ ProGuard โดยคงแฟล็กที่ตั้งค่าผู้ให้บริการ 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 เป็นตัวอย่าง Canonical (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)
  • อาร์กิวเมนต์ที่ส่งก่อนหน้านี้ใน ImageCapture.OnImageSavedCallback.onError() และ ImageCapture.OnImageCapturedCallback.onError() ได้ถูกแทนที่ด้วยอาร์กิวเมนต์เดียว ImageCaptureException ซึ่งยังคงมีข้อมูลทั้งหมดที่ส่งก่อนหน้านี้
  • ระบบได้นำอาร์กิวเมนต์ไฟล์ที่ส่งก่อนหน้านี้ใน 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 ต้องใช้ markerClass ExperimentalCamera2Interop

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 การโฟกัสและการวัดแสงเกี่ยวกับ MeteringMode และแฟล็ก 3A รวมถึงการใช้พารามิเตอร์ Display
  • ขยายเอกสารอ้างอิงสำหรับ setZoomRatio และ setLinearZoom

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาเมื่อปิดแล้วเปิดกล้องซึ่งส่งผลให้การตรวจสอบ "เงื่อนไขเบื้องต้น" ไม่สำเร็จ
  • แก้ไขConcurrentModificationExceptionที่อาจเกิดขึ้นเมื่อใช้ API ไฟฉายและซูม
  • แก้ไขปัญหาเพื่อเลือกความละเอียดที่ใกล้เคียงกับความละเอียดที่ขอมากขึ้นเมื่อมีขนาดมิติข้อมูล mod16
  • ตอนนี้ API startFocusMetering และ cancelFocusMetering ทำงานตามที่ระบุไว้ในเอกสารประกอบ โดยมีเวลาที่ถูกต้องและอาจแสดงข้อผิดพลาดเมื่อเกิดขึ้น
  • แก้ไขปัญหาเมื่อมีการขอความละเอียดเป้าหมายที่เฉพาะเจาะจงด้วยสัดส่วนภาพที่ครอบตัดในอุปกรณ์ที่ไม่รองรับขนาดดังกล่าว ตอนนี้ ระบบจะเลือกขนาดที่ไม่ได้ครอบตัดซึ่งมีความละเอียดเพียงพอที่จะเชื่อมโยงกับคำขอเดิมเมื่อพร้อมใช้งาน

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

  • ซ่อน IntDefs และย้ายค่าคงที่ 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() ซึ่งจะแสดงผล Listen 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);
      }
    
  • คุณสามารถเพิ่ม Listener ลงใน ListenableFuture ที่แสดงผลโดย getInstance() ได้ ซึ่งช่วยให้มั่นใจได้ว่าสามารถดึงข้อมูลผู้ให้บริการกล้องจาก Future ได้โดยไม่บล็อกใน Future.get()

    cameraProviderFuture.addListener(Runnable {
      val cameraProvider = cameraProviderFuture.get()
      cameraProvider.bindToLifecycle(...)
    }, ContextCompat.getMainExecutor(this))
    
  • ตอนนี้การเลือกกล้องจะดำเนินการโดยตัวเลือกกล้องแทนการเลือกตาม Use Case

    val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
    
  • CameraProvider.bindToLifecycle จะได้รับเจ้าของวงจร ตัวเลือกกล้อง และ Use Case ซึ่งจะเชื่อมโยงกับเจ้าของวงจรที่ระบุและเรียกใช้สำหรับกล้องที่เลือก

    cameraProvider.bindToLifecycle(this as LifecycleOwner,
           cameraSelector, preview, imageAnalysis)
    
  • นำคลาส "Config" ของ Use Case ออกแล้ว แต่ให้สร้างกรณีการใช้งานโดยตรง โดยตั้งค่าตัวเลือกในเครื่องมือสร้างกรณีการใช้งานแต่ละรายการ เช่น

    preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
    
  • กรณีการใช้งานตัวอย่างได้รับการอัปเดตให้ยอมรับ Surface ที่สร้างและจัดการโดยแอปพลิเคชันเพื่อให้เป็นไปตามแนวทางปฏิบัติแนะนำของ Android ขอแนะนำอย่างยิ่งให้ใช้คลาส PreviewView view ที่มีให้ในแพ็กเกจ camera-view

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • ดูเอกสารประกอบสำหรับการแนบแพลตฟอร์มที่จัดการโดยแอป ในกรณีเหล่านี้ แอปจะจัดการวงจรของแพลตฟอร์ม

  • สำคัญ: การติดตั้งใช้งานเมธอด ImageAnalysis Analyzer ต้องเรียกใช้ image.close() ในรูปภาพที่ได้รับเมื่อใช้เสร็จแล้ว มิฉะนั้น ระบบอาจไม่ได้รับรูปภาพใหม่หรือกล้องอาจหยุดทำงาน ทั้งนี้ขึ้นอยู่กับการตั้งค่า Back Pressure ดูรายละเอียดได้ในเอกสารอ้างอิง

  • ImageAnalysis ImageReaderMode เปลี่ยนเป็นกลยุทธ์ Backpressure intdef แล้ว

  • ImageProxy.getImage() มีสถานะเป็นเวอร์ชันทดลอง แอปพลิเคชันควรใส่คำอธิบายประกอบการใช้งาน เช่น ผ่าน @androidx.camera.core.ExperimentalGetImage

  • นำข้อกำหนดคำอธิบายประกอบ UIThread สำหรับ Analyzer ออกแล้ว

  • เพิ่มฟังก์ชัน ImageAnalysis.clearAnalyzer() เพื่อนำเครื่องมือวิเคราะห์ออก

  • ระบบได้เปลี่ยนชื่อ Listener ที่มีมากกว่า 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() และเป็น "เท็จ" เสมอ ซึ่งแตกต่างจากลักษณะการทำงานที่ตั้งใจไว้และที่ระบุไว้ในเอกสาร
  • ปัญหาที่ทราบ: กำลังพัฒนา Factory จุดวัดเพื่อใช้กับเหตุการณ์การโต้ตอบแบบสัมผัส 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) แล้ว เมื่อตั้งค่าแล้ว เอาต์พุต ImageCapture จะครอบตัดตามนั้น

Executor API

  • ฟังก์ชันต่อไปนี้ยอมรับพารามิเตอร์ Executor ซึ่งช่วยให้แอปควบคุมได้ว่าจะให้ฟังก์ชันทำงานบน Executor ใด
    • Preview.setOnPreviewOutputUpdateListener() API หากไม่มี Executor สำหรับฟังก์ชันนั้น ระบบจะดำเนินการในเทรดหลัก
    • Preview.setOnPreviewOutputUpdateListener
    • FocusMeteringAction.Builder.setAutoFocusCallback
    • ImageAnalysis.setAnalyzer
    • ImageCapture.takePicture
    • CameraView.takePicture
    • CameraView.startRecording
    • VideoCapture.startRecording

เพิ่ม CameraInfo พร้อม 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() แล้ว โดยจะระบุการวางแนวเซ็นเซอร์กล้องที่สัมพันธ์กับการวางแนวตามธรรมชาติของอุปกรณ์ หรือเพื่อความสะดวก จะสัมพันธ์กับการวางแนวที่อธิบายโดยการหมุน Surface (ซึ่งอธิบายการวางแนวที่สัมพันธ์กับการวางแนวตามธรรมชาติ)

การเปลี่ยนแปลง API และการแก้ไขข้อบกพร่อง

  • สัดส่วนภาพ: สำหรับ Use Case แต่ละรายการ แอปพลิเคชันควรเรียกใช้ setTargetResolution() หรือ setTargetAspectRatio() เพียงรายการเดียวเท่านั้น การเรียกใช้ทั้ง 2 รายการในเครื่องมือสร้างเดียวกันจะแสดงข้อผิดพลาด
    • โดยทั่วไป เราขอแนะนำให้ใช้ setTargetAspectRatio() ตามการออกแบบ UI ของแอปพลิเคชัน ความละเอียดที่เฉพาะเจาะจงจะขึ้นอยู่กับกรณีการใช้งาน เช่น ตัวอย่างภาพจะมีความละเอียดใกล้เคียงกับความละเอียดของหน้าจอ และการจับภาพจะให้ภาพนิ่งที่มีความละเอียดสูง ดูข้อมูลเพิ่มเติมได้ที่ตารางการแก้ปัญหาอัตโนมัติ
    • ใช้ setTargetResolution() สำหรับกรณีที่เฉพาะเจาะจงมากขึ้น เช่น เมื่อต้องใช้ความละเอียดขั้นต่ำ (เพื่อประหยัดการประมวลผล) หรือความละเอียดสูงสุด (สำหรับรายละเอียดการประมวลผล)
  • Executor API: นำการเรียก setCallbackHandler() ออกจาก API การกำหนดค่ากรณีการใช้งาน แต่แอปพลิเคชันสามารถตั้งค่า Executor เป็นพารามิเตอร์ใน API อื่นๆ ที่หลากหลายซึ่งตั้งค่า Callback ได้
  • อัปเดตคำอธิบายประกอบค่า 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 สำหรับ Metering Point Factory ที่ช่วยแปลพิกัดการแตะเป็นพิกัดเซ็นเซอร์ โดยอิงตามคลาสของมุมมอง ดังนี้

      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 และ Getter ที่เกี่ยวข้องอาจแสดงผลเป็น 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 มีความชัดเจนมากขึ้น ดังนี้

  • ตอนนี้กรณีการใช้งานตัวอย่างจะถือว่ามีสัดส่วนภาพ 4:3 โดยค่าเริ่มต้นเมื่อไม่ได้ตั้งค่าไว้
  • เมื่อ CameraX พิจารณาการเปลี่ยนแปลงความละเอียดและสัดส่วนภาพที่ขอภายในตามความสามารถของอุปกรณ์ ระบบจะพยายามรักษาสัดส่วนภาพเดิมไว้ก่อน (ตามที่กำหนดโดยการเรียกใช้ setTargetAspectRatio หรือ setTargetResolution)
  • ความละเอียดเวอร์ชัน "mod16 ที่ใกล้เคียงที่สุด" จะถือว่ามีสัดส่วนภาพเดียวกัน

โหมดไม่บล็อกของ ImageAnalysis

  • ตอนนี้ลักษณะการทำงานของ ImageReaderMode.ACQUIRE_LATEST_IMAGE จะไม่บล็อก โดยจะรับรูปภาพล่าสุดในคิว แต่จะทิ้งรูปภาพที่ไม่ได้ใช้อย่างต่อเนื่องเพื่อไม่ให้ไปบล็อกไปป์ไลน์ของกล้อง
  • เครื่องมือวิเคราะห์สามารถเก็บรูปภาพเดียวไว้ได้โดยไม่มีกำหนดโดยไม่ทำให้ไปป์ไลน์หยุดชะงัก
  • หากแอปพลิเคชันมี Executor ที่บล็อก กรณีการใช้งาน ImageAnalysis ก็จะบล็อกด้วย
  • Executor เริ่มต้นที่ตั้งค่าไว้ภายในจะทำงานเป็น 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-view และ camera-extensions ได้รับการเผยแพร่เป็นเวอร์ชันอัลฟ่าแล้ว

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 ใหม่
  • การแก้ไขการทดสอบเพื่อการทดสอบที่มีประสิทธิภาพมากขึ้น
  • ตอนนี้การทดสอบการผสานรวมหลักจะแสดงเวลาที่ถ่ายภาพ
  • พัฒนาคลาสความเข้ากันได้ภายในสำหรับ Executor
  • การจับภาพของแอปทดสอบเวลาจะรอให้การจับภาพก่อนหน้าเสร็จสมบูรณ์และปรับปรุงความเสถียร

ส่วนขยาย

  • เพิ่มการตรวจสอบการกำหนดเวอร์ชัน
  • การครอบคลุมการทดสอบเพิ่มเติม - Callback เหตุการณ์ของส่วนขยาย
  • การปรับปรุงรูปภาพและข้อมูลเมตาที่สอดคล้องกันภายใน
  • แก้ไขการเปลี่ยนโหมดในแอปทดสอบ

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 ในอินสแตนซ์แอปใหม่
  • การเปลี่ยนแปลงสถาปัตยกรรมภายในเพื่อเตรียมพร้อมสำหรับการรองรับ Executor ใน 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-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.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

  • เพิ่มอาร์ติแฟกต์ camera-lifecycle แล้ว ซึ่งมีอินเทอร์เฟซ LifeCycleCameraProvider และการใช้งานที่เรียกว่า ProcessCameraProvider ซึ่งมีฟังก์ชันมากมายของคลาส CameraX ก่อนหน้าใน core และได้มาผ่านเมธอด getInstance()
  • แอปควรมีไลบรารี camera-lifecycle เพื่อใช้ 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 สำหรับอาร์ติแฟกต์ camera-extensions (If683a, b/161377155)

แก้ไขข้อบกพร่อง

  • ไม่อนุญาตให้แอปเปิดใช้โหมดส่วนขยายเมื่อเชื่อมโยง VideoCapture ส่วนขยาย CameraX รองรับเฉพาะ ImageCapture และ Preview เท่านั้น ยังไม่รองรับ VideoCapture หากแอปเชื่อมโยง VideoCapture และเปิดใช้โหมดส่วนขยาย ระบบจะแสดง IllegalArgumentException (I0d87b)
  • CameraSelector#filter จะไม่แสดง IllegalArgumentException อีกต่อไปเมื่อชุดผลลัพธ์ว่างเปล่า (I27804)
  • เปลี่ยนชื่อ ExtensionsManager#getInstance API เป็น getInstanceAsync เนื่องจากแสดงผล ListenableFuture คำต่อท้าย Async ของชื่อฟังก์ชันจะแสดงให้เห็นอย่างชัดเจนว่าเป็นฟังก์ชันแบบไม่พร้อมกัน (I279d2)
  • นำพารามิเตอร์ความละเอียดออกจาก ExtensionsManager#getEstimatedCaptureLatencyRange API เนื่องจากผู้ใช้ไม่ทราบว่ากรณีการใช้งาน ImageCapture รองรับขนาดใดบ้าง และไม่สามารถแยกแยะได้ว่าข้อมูลเวลาในการตอบสนองที่แสดงผลเป็นข้อมูลสำหรับขนาดเอาต์พุตการจับภาพสูงสุดหรือพารามิเตอร์ความละเอียดอินพุต (I74bb2)
  • ย้ายพารามิเตอร์ CameraProvider ของฟังก์ชัน ExtensionsManager ไปยัง API getInstance() เพื่อให้ผู้ใช้ไม่ต้องป้อนพารามิเตอร์ 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 ลงใน 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 และ API ของ ExtensionsManager ที่เกี่ยวข้องซึ่งเลิกใช้งานแล้วออก (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 เมื่อใช้ร่วมกับ Compose 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 และ Executor ที่กำหนดเอง (Iea8f2)
  • เพิ่มคลาส RotationReceiver ที่รับการเปลี่ยนแปลงการหมุนของ Surface ซึ่งสามารถใช้เพื่อตั้งค่าการหมุนเป้าหมายเมื่ออุปกรณ์อยู่ในโหมดแนวตั้ง/แนวนอนแบบคงที่ (Ib278f)
  • แสดง API สาธารณะ getEstimatedCaptureLatencyRange ใหม่ในคลาส ExtensionsManager (I6a8ec)
  • ExtensionsErrorListener ที่เลิกใช้งานแล้ว ปัจจุบันอินเทอร์เฟซนี้ใช้เพื่อตรวจสอบเท่านั้นว่าไม่มี Preview หรือ ImageCapture หรือไม่เมื่อเปิดใช้โหมดส่วนขยาย CameraX จะเพิ่ม Preview หรือ ImageCapture พิเศษโดยอัตโนมัติเพื่อให้ฟังก์ชันส่วนขยายทำงานได้ดี หลังจากนั้น ระบบจะไม่รายงานข้อผิดพลาดผ่านอินเทอร์เฟซนี้ (I47d9e)
  • แสดง API สาธารณะใหม่ของ ExtensionsManager getInstance, isExtensionAvailable และ getExtensionEnabledCameraSelector และเลิกใช้งานคลาส <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

แก้ไขข้อบกพร่อง

  • ตรึงทรัพยากร Dependency ของมุมมองกล้องให้ใช้ Artifact เวอร์ชัน 1.0.0 การใช้ camera-view จะไม่ทำให้การแก้ไขทรัพยากร Dependency ของ 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)

Camera Extensions & View เวอร์ชัน 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 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • ปรับปรุงเวลาในการตอบสนองของการเริ่มต้น CameraX และ bindToLifecycle (I61dc5)
  • <UseCase>.getTargetRotation() จะแสดงผล Surface.ROTATION_0 หากเรียกใช้ก่อนที่จะแนบกับอินสแตนซ์ Camera เว้นแต่ว่าจะมีการตั้งค่า targetRotation ใน Builder หรือ UseCase (I80fcd)

Camera-View เวอร์ชัน 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-View เวอร์ชัน 1.0.0-alpha17

23 กันยายน 2020

androidx.camera:camera-view:1.0.0-alpha17 เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha17 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

Camera-Extensions เวอร์ชัน 1.0.0-alpha16

16 กันยายน 2020

androidx.camera:camera-extensions:1.0.0-alpha16 เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha16 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • เพิ่มเมธอดใน ExtensionsManager เพื่อรับออบเจ็กต์ Extensions ซึ่งใช้เพื่อเปิดใช้และค้นหาส่วนขยายในอินสแตนซ์กล้อง (I4fb7e)

Camera-View เวอร์ชัน 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)
  • อนุญาตให้หมุนเป้าหมายตามต้องการสำหรับตัวอย่าง ระบบจะคำนวณข้อมูลการเปลี่ยนรูปแบบและส่งกลับไปยังผู้ใช้แบบเรียลไทม์ผ่าน Callback TranformationInfoListener ใหม่ (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() จะใช้บริบทเป็นพารามิเตอร์แทนการมีอาร์กิวเมนต์ 0 รายการ (Ife754)
  • การเริ่มต้นไม่ควรขัดข้องอีกต่อไปเมื่อใช้บริบทที่ไม่แสดงผลออบเจ็กต์แอปพลิเคชันจาก Context.getApplicationContext() (I3d3c9, b/160817073)

    Camera-View เวอร์ชัน 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)
  • สำหรับการจับภาพ ให้เขียนทับแฟล็กพลิกแนวนอนในข้อมูลเมตาตามทิศทางของกล้อง (I28499)

Camera-Extensions เวอร์ชัน 1.0.0-alpha14

22 กรกฎาคม 2020

androidx.camera:camera-extensions:1.0.0-alpha14 เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha14 มีคอมมิตเหล่านี้

Camera-View เวอร์ชัน 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)

Camera-View เวอร์ชัน 1.0.0-alpha13

24 มิถุนายน 2020

androidx.camera:camera-view:1.0.0-alpha13 เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha13 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • CameraView ไม่ขัดข้องอีกต่อไปเมื่อมี IllegalArgumentException เมื่อเชื่อมโยงกับ LifecycleOwner ที่ Lifecycle เปลี่ยนเป็นสถานะ DESTROYED หลังจากเชื่อมโยงไม่นาน Binding Lifecycles ในสถานะ DESTROYED จะไม่พยายามเปิดกล้อง (I7c2b8)
  • ตอนนี้ PreviewView StreamState พร้อมใช้งานผ่าน 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)

Camera-View เวอร์ชัน 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 มีคอมมิตเหล่านี้

Camera-View เวอร์ชัน 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)

Camera-View เวอร์ชัน 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 เมื่อปัด Fragment Preview ออกแล้วปัดกลับเข้ามาใน ViewPager2 นอกจากนี้ยังแก้ไขปัญหาเมื่อ removeView(previewview) แล้ว addView(previewView) ด้วย (Iab555, b/149877652, b/147354615)
  • อัปเดต CameraView#takePicture() API เพื่ออนุญาตให้บันทึกรูปภาพไปยัง Uri และ OutputStream อัปเดตแอปทดสอบเพื่อใช้ Uri เป็นตัวอย่าง Canonical (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

Camera-View เวอร์ชัน 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

Camera-View เวอร์ชัน 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 มีคอมมิตเหล่านี้

Camera-View เวอร์ชัน 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() อีกต่อไป และบังคับใช้ว่าไม่สามารถยกเลิก Callback ของ provideSurface() ได้ ซึ่งจะช่วยป้องกันไม่ให้อุปกรณ์รุ่นเก่าขัดข้องเนื่องจากการปล่อยแพลตฟอร์มก่อนเวลาอันควร ตอนนี้ออบเจ็กต์ SurfaceRequest.Result จะใช้เพื่อติดตามวิธีที่ SurfaceRequest ใช้ Surface ที่ระบุ (I7854b)
  • เปลี่ยนชื่อ SurfaceRequest.setSurface(Surface) เป็น SurfaceRequest.provideSurface(Surface) และ SurfaceRequest.setWillNotComplete() เป็น SurfaceRequest.willNotProvideSurface() แล้ว (I224fe)
  • แก้ไขการเริ่มต้นตัวแปรแอปที่เปิดใช้ ProGuard โดยคงแฟล็กที่ตั้งค่าผู้ให้บริการ CameraXConfig เริ่มต้นไว้ (I2d6c1)

Camera-Extensions เวอร์ชัน 1.0.0-alpha07

10 กุมภาพันธ์ 2020

androidx.camera:camera-extensions:1.0.0-alpha07 เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha07 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • อาร์กิวเมนต์ที่ส่งผ่านก่อนหน้านี้ใน ImageCapture.OnImageSavedCallback.onError() และ ImageCapture.OnImageCapturedCallback.onError() ได้ถูกแทนที่ด้วยอาร์กิวเมนต์เดียว ImageCaptureException ซึ่งยังคงมีข้อมูลทั้งหมดที่ส่งผ่านก่อนหน้านี้
  • ระบบได้นำอาร์กิวเมนต์ไฟล์ที่ส่งก่อนหน้านี้ใน ImageCapture.OnImageSavedCallback.onImageSaved() ออกแล้ว (I750d2)

Camera-View เวอร์ชัน 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 เป็นตัวอย่าง Canonical (Ia3bec)
  • Preview.PreviewSurfaceProvider เปลี่ยนชื่อเป็น Preview.SurfaceProvider แล้ว SurfaceProvider ไม่กำหนดให้นักพัฒนาแอปต้องสร้าง ListenableFuture ของตนเองอีกต่อไป และตอนนี้การระบุ Surface จะดำเนินการผ่านออบเจ็กต์ SurfaceRequest ใหม่ เราได้นำเมธอด Preview.getPreviewSurfaceProvider() ออกเนื่องจากอาจมีการใช้ในทางที่ผิดเมื่อจับคู่ Preview กับคลาสอื่นๆ เช่น PreviewView (I20105)
  • อาร์กิวเมนต์ที่ส่งก่อนหน้านี้ใน ImageCapture.OnImageSavedCallback.onError() และ ImageCapture.OnImageCapturedCallback.onError() ได้ถูกแทนที่ด้วยอาร์กิวเมนต์เดียว ImageCaptureException ซึ่งยังคงมีข้อมูลทั้งหมดที่ส่งก่อนหน้านี้
  • ระบบได้นำอาร์กิวเมนต์ไฟล์ที่ส่งก่อนหน้านี้ใน 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

Camera-View เวอร์ชัน 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 ภายใน

Camera-View เวอร์ชัน 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 เผยแพร่แล้ว Version 1.0.0-alpha04 of camera-extensions contains these commits

การเปลี่ยนแปลง API

  • ตอนนี้การตรวจสอบความพร้อมใช้งานและการเปิดใช้ส่วนขยายจะใช้ CameraSelector เป็นพารามิเตอร์อินพุต โดยต้องเป็น CameraSelector เดียวกับที่ใช้ในการเชื่อมโยงกรณีการใช้งาน

    val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
    val builder = ImageCapture.Builder()
    val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder)
    if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) {
        bokehImageCaptureExtender.enableExtension(cameraSelector)
    }
    val imageCapture = builder.build()
    mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)
    
  • คุณต้องเริ่มต้นส่วนขยายก่อนใช้คลังส่วนขยาย

    val availability = ExtensionsManager.init()
    Futures.addCallback<ExtensionsManager.ExtensionsAvailability>(
       availability,
       object : FutureCallback<ExtensionsManager.ExtensionsAvailability> {
           override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) {
               // Ready to make extensions calls
           }
           override fun onFailure(throwable: Throwable) {
               // Extensions could not be initialized
           }
       },
       Executors.newSingleThreadExecutor()
    )
    

Camera-View เวอร์ชัน 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

  • คลังใหม่สำหรับส่วนขยายกล้องในอนาคตเพื่อเข้าถึงเอฟเฟกต์ในอุปกรณ์ที่รองรับ คลังนี้ยังอยู่ระหว่างการพัฒนา
  • คลาส Camera View ใหม่ คลังนี้ยังอยู่ระหว่างการพัฒนา