CameraX

CameraX היא תוספת ל-Jetpack שמאפשרת להוסיף בקלות יכולות מצלמה לאפליקציה. הספרייה מספקת מספר תיקוני תאימות ודרכים לעקיפת הבעיה כדי לעזור לשמור על עקביות בחוויית הפיתוח במכשירים רבים.

בטבלה הזו מפורטים כל הארטיפקטים בקבוצה androidx.camera.

פריט מידע שנוצר בתהליך פיתוח (Artifact) גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסה אלפא
camera-camera2 1.4.1 - - 1.5.0-alpha04
camera-core 1.4.1 - - 1.5.0-alpha04
camera-compose - - - 1.5.0-alpha04
camera-effects 1.4.1 - - 1.5.0-alpha04
camera-extensions 1.4.1 - - 1.5.0-alpha04
camera-feature-combination-query - - - 1.5.0-alpha04
camera-feature-combination-query-play-services - - - 1.5.0-alpha04
camera-lifecycle 1.4.1 - - 1.5.0-alpha04
camera-mlkit-vision 1.4.1 - - 1.5.0-alpha04
camera-view 1.4.1 - - 1.5.0-alpha04
camera-viewfinder - - 1.3.0-beta02 1.4.0-alpha07
camera-video 1.4.1 - - 1.5.0-alpha04
הספרייה עודכנה לאחרונה ב-11 בדצמבר 2024

בדיקת המכשיר

אנחנו בודקים את CameraX במעבדה שלנו במכשירים רבים. בקישור הבא אפשר לראות רשימה של המכשירים שנמצאים כרגע במעבדה: מכשירים שנבדקו במעבדה של CameraX.

הצהרת יחסי תלות

כדי להוסיף תלות ב-CameraX, צריך להוסיף את מאגר Google Maven לפרויקט. למידע נוסף, קראו את המאמר מאגר Maven של Google.

מוסיפים את יחסי התלות של הארטיפקטים הנדרשים בקובץ build.gradle של האפליקציה או המודול:

Groovy

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.5.0-alpha03"
  // The following line is optional, as the core library is included indirectly by camera-camera2
  implementation "androidx.camera:camera-core:${camerax_version}"
  implementation "androidx.camera:camera-camera2:${camerax_version}"
  // If you want to additionally use the CameraX Lifecycle library
  implementation "androidx.camera:camera-lifecycle:${camerax_version}"
  // If you want to additionally use the CameraX VideoCapture library
  implementation "androidx.camera:camera-video:${camerax_version}"
  // If you want to additionally use the CameraX View class
  implementation "androidx.camera:camera-view:${camerax_version}"
  // If you want to additionally add CameraX ML Kit Vision Integration
  implementation "androidx.camera:camera-mlkit-vision:${camerax_version}"
  // If you want to additionally use the CameraX Extensions library
  implementation "androidx.camera:camera-extensions:${camerax_version}"
}

Kotlin

dependencies {
    // CameraX core library using the camera2 implementation
    val camerax_version = "1.5.0-alpha03"
    // The following line is optional, as the core library is included indirectly by camera-camera2
    implementation("androidx.camera:camera-core:${camerax_version}")
    implementation("androidx.camera:camera-camera2:${camerax_version}")
    // If you want to additionally use the CameraX Lifecycle library
    implementation("androidx.camera:camera-lifecycle:${camerax_version}")
    // If you want to additionally use the CameraX VideoCapture library
    implementation("androidx.camera:camera-video:${camerax_version}")
    // If you want to additionally use the CameraX View class
    implementation("androidx.camera:camera-view:${camerax_version}")
    // If you want to additionally add CameraX ML Kit Vision Integration
    implementation("androidx.camera:camera-mlkit-vision:${camerax_version}")
    // If you want to additionally use the CameraX Extensions library
    implementation("androidx.camera:camera-extensions:${camerax_version}")
}

משוב

המשוב שלכם עוזר לנו לשפר את Jetpack. אם נתקלתם בבעיות חדשות או שיש לכם רעיונות לשיפור הספרייה הזו, נשמח לשמוע מכם. לפני שיוצרים בעיה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להצביע על בעיה קיימת, לוחצים על לחצן הכוכב.

דיווח על בעיה חדשה

מידע נוסף זמין במסמכי התיעוד של Issue Tracker.

יצירת קומפוזיציה בעינית המצלמה, גרסה 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. העינית הניתנת להתאמה תומכת ביחסי גובה-רוחב שונים ובטיפול באירועי מגע.

עינית המצלמה, גרסה 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.5 של המצלמה

גרסה 1.5.0-alpha04

11 בדצמבר 2024

androidx.camera:camera-*:1.5.0-alpha04 משוחרר. גרסת 1.5.0-alpha04 כוללת את ההוספות האלה.

שינויים ב-API

  • חשיפה של ImageCapture.Builder#setOutputFormat ו-ImageCaptureCapabilities#getSupportedOutputFormats כממשקי API יציבים (Ieb04a)
  • מוסיפים את VideoCapture.getResolutionInfo() כדי לקבל את פרטי הפתרון כש-VideoCapture מקושר ל-Lifecycle. (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, הראשון לתמונה בפורמט RAW והשני לתמונה בפורמט JPEG. (Ib0f3d)

תיקוני באגים

  • תוקנה בעיה של חשיפת יתר בתצוגה המקדימה ובסרטונים במכשירי TCL כשהאפשרות VideoCapture מופעלת. (Id7a64)
  • תוקנה הבעיה שבה קריאה ל-startFocusMetering עם PreviewView.getMeteringPointFactory לא מקבלת את קואורדינטות החיישן הנכונות כשאפקט מופעל או כשמקשרים 4 תרחישים לדוגמה (שיתוף סטרימינג). (I916c5, ‏ b/345993685)
  • תוקנה הבעיה שבה האירוע VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE לא מופעל כשמצלמים סרטון ואין מספיק מקום פנוי באחסון. (I35779, ‏ b/356399842)

גרסה 1.5.0-alpha02

2 באוקטובר 2024

androidx.camera:camera-*:1.5.0-alpha02 משוחרר. גרסת 1.5.0-alpha02 כוללת את ההוספות האלה.

תכונות חדשות

  • ממשקי API חדשים לשליחת שאילתות לגבי תכונות המצלמה שנתמכות במכשיר. לדוגמה, בדיקה אם אפשר להפעיל HDR ו-60FPS בו-זמנית. הוא כולל 2 ארטיפקטים: camera-feature-combination-query ו-camera-feature-combination-query-play-services. זוהי גרסה תואמת של ממשק ה-API CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported של camera2 עם נתונים נוספים שסופקו על ידי Google Play Services.

תיקוני באגים

  • תוקנה בעיה בקצב הפריימים היעד Preview/VideoCapture במכשירים ברמה LEGACY. תמיד בוצעה החלפה של קצב הפריימים היעד שהוגדר דרך ה-API של setTargetFrameRate או Camera2Interop בערך שסופק על ידי ה-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, או להחזיר אובייקטים נכונים של Bitmap כשקוראים לפונקציה ImageProxy.toBitmap() במכשירים האלה אם מתרחשת הבעיה של המטא-נתונים השגויים של קובץ התמונה בפורמט JPEG. (Iae493, ‏ b/356428987)
  • השבתנו את התוספים למצלמה האחורית של Samsung A52s שמספרה 0, כי ייתכנו קריסות מקוריות בזמן צילום תמונות HDR, ויכול להיות שהגדרת סשנים של צילום תיכשל במצבים BOKEH או FACE_RETOUCH. (I03ec9, ‏ b/364152642)
  • תוקנה הבעיה שבה האירוע VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE לא מופעל כשמצלמים סרטון ואין מספיק מקום פנוי באחסון. (Ia5b4f, ‏ b/356399842)
  • תוקנה בעיה שבה ניסיון ההקלטה השני של סרטון נכשל ב-Oppo A5‏ (CPH1931). (I181d6)

גרסה 1.5.0-alpha01

4 בספטמבר 2024

androidx.camera:camera-*:1.5.0-alpha01 משוחרר. גרסת 1.5.0-alpha01 מכילה את ההוספות האלה.

שינויים ב-API

  • API להגדרת הגדרות קומפוזיציה לצילום וידאו בו-זמנית בשתי מצלמות. ההגדרות כוללות את ערך האלפא למיזוג, את ההיסט בקואורדינטות x ו-y ואת קנה המידה של הרוחב והגובה של חלון התצוגה של מסגרת המצלמה. ההיסט, הרוחב והגובה מצוינים בקואורדינטות רגילות של המכשיר. (Ia2b8a)
  • CameraProvider.getCameraInfo נחשף כ-API רשמי. (I901cd)
  • נוספה ממשק API ‏PendingRecording.withAudioEnabled(boolean initialMuted) כדי לשלוט במצב ההשתקה הראשוני. (I635c3, ‏ b/354829267)

תיקוני באגים

  • תוקנה הקריסה שמתרחשת כשמפעילים את bindToLifecycle עם LifecycleOwner שהושמד. (I6e6d8)
  • תצוגה מקדימה קבועה היא מסך שחור במצלמה הקדמית במהלך קישור עם VideoCapture ב-Motorola Edge 20 Fusion. (I1fe88)
  • ביצענו אופטימיזציה של ההגדרות לזיהוי תנועות זום ב-PreviewView כדי לשפר את רמת החלקות. (I04ffc)

גרסה 1.4 של המצלמה

גרסה 1.4.1

11 בדצמבר 2024

androidx.camera:camera-*:1.4.1 משוחרר. גרסה 1.4.1 מכילה את ההוספות האלה.

תיקוני באגים

  • תוקנה בעיה במכשירי Pixel עם Android 15 שבה מצב הלילה בתוספים לא הצליח לצלם תמונות סטילס עד שהמצלמה התמקדה באובייקט בקרבת מקום. (I228d4)
  • תוקנה בעיה של תקלה ב-ImageCapture#takePicture כשהתוספים מופעלים ו-VideoCapture מקושר. (I5c745)

גרסה 1.4.0

30 באוקטובר 2024

androidx.camera:camera-*:1.4.0 משוחרר. גרסת 1.4.0 כוללת את ההוספות האלה.

שינויים חשובים מאז גרסה 1.3.0

בגרסה 1.4.0 של CameraX יש המון עדכונים מרגשים! הנה סיכום:

תכונה ראשית: וידאו 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 לא מקבלת את קואורדינטות החיישן הנכונות כשאפקט מופעל או כשמקשרים 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 הניסיוני כדי לספק מידע ספציפי על המצלמה בלי צורך לקשר תרחישי שימוש למצלמה. (I550d1)

שינויים ב-API

  • נוספו ממשקי ה-API PreviewView.getScreenFlash ו-PreviewView.setScreenFlashOverlayColor למקרים שבהם ScreenFlashView לא נוסף באופן מפורש. (I43945)

תיקוני באגים

  • תוקנו בעיות של חשיפה וגוון צבע כשהתמונה צולמה עם הפלאש מופעל בתאורה חלשה, במסגרת תרחיש לדוגמה של VideoCapture. (Ic9814)
  • תוקנה בעיה שבה אם מפריעים לבקשת takePicture כשהתוספים מופעלים, יכול להיות שלא תתקבל תוצאה וייתכן שהבקשה הבאה של takePicture לא תפעל יותר. (Iae78f)
  • תוקנה בעיה של דליפת זיכרון שמתרחשת כשהתוספים מופעלים. (Iab276)
  • תוקנה תקלה בהרחבות של CameraX במכשירים כמו Pixel 7/8 וסדרת Samsung Galaxy S24. הבעיה, שנובעת מבעיה בהמרה של Camera2OutputConfigImpl במצב הפצה, התגלתה אחרי שדרוג AGP לגרסה 8.5.1 והפעלת המינימיזציה. (I99598, ‏ b/354824993)

גרסה 1.4.0-beta02

‫12 ביוני 2024

androidx.camera:camera-*:1.4.0-beta02 משוחרר. גרסת 1.4.0-beta02 כוללת את ההוספות האלה.

שינויים ב-API

  • בדומה ל-VideoCapture, מוסיפים את setMirrorMode לתרחיש השימוש 'תצוגה מקדימה'. תהיה תמיכה בהפעלה ובהשבתה של מצב המראה בסטרימינג של תצוגה מקדימה דרך 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)
  • נוספו פונקציות השהיה (suspend) של ImageCapture.takePicture כדי לאפשר לקרוא להן באופן שמתאים ל-Kotlin. (I920be)

שינויים ב-API

  • מוסיפים ממשקי API לפורמט פלט אל ImageCapture, ומוסיפים את השיטה getSupportedOutputFormats אל ImageCaptureCapabilities כדי לשלוח שאילתות לגבי יכולות המכשיר. ערך ברירת המחדל של פורמט הפלט הוא OUTPUT_FORMAT_JPEG, שמאפשר לצלם תמונות SDR בפורמט JPEG. כשהמכשיר תומך ב-Ultra HDR ופורמט הפלט מוגדר כ-OUTPUT_FORMAT_JPEG_ULTRA_HDR, CameraX תצלם תמונות דחוסות של Ultra HDR באמצעות פורמט התמונה JPEG/R. הפורמט תואם לאחור לפורמט JPEG SDR ותומך ברינדור של תוכן HDR. פירוש הדבר הוא שבאפליקציות או במכשירים ישנים יותר, התמונות מופיעות בצורה חלקה כקובצי JPEG רגילים. באפליקציות ובמכשירים שעודכנו כך שיש בהם תמיכה מלאה בפורמט, התמונות מופיעות כ-HDR. (I5de50)
  • מוסיפים את PhysicalCameraInfo ב-CameraInfo כדי לשלוח שאילתה לגבי פרטי המצלמה הפיזית, ומוסיפים את ה-setter/getter של מזהה המצלמה הפיזית ב-CameraSelector (Ic5b90)
  • מחליפים את CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED ב-ImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. הערך של הקבוע נשאר ללא שינוי. זהו קובץ שמרכז את כל הקבועים במקום אחד. (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 אחד ל-UseCase אחר. לדוגמה, טרנספורמציה של הקואורדינטות של אובייקטים שזוהו ב-ImageAnalysis לשכבת-על של PreviewView. (I947ab)
  • הופכים את ה-API של camera-viewfinder-core לגנרי יותר כדי שאפשר יהיה להשתמש בו ב-camera-viewfinder וב-camera-viewfinder-compose. (I1e295)
  • מוסיפים את הפונקציה getSurface ל-ViewfinderSurfaceRequest. (I781a0)
  • משתמשים ב-camera-viewfinder-core ב-camera-viewfinder ומבטלים את השימוש ב-ViewfinderSurfaceRequest וב-CameraViewfinder. (I6198c)
  • נוספה ZoomGestureDetector שמפרשת תנועות שינוי קנה מידה שהוגדרו במיוחד לפעילות של צביטה כדי להתקרב. (Ifafbf)

תיקוני באגים

  • תוקנה בעיה בבחירת הרזולוציה של ImageAnalysis שקשורה להגדרת ברירת המחדל של רזולוציית היעד בניתוח: רזולוציית היעד נשארה בטעות 640x480, גם אם באפליקציות הוגדרה הגדרת ברירת מחדל אחרת של רזולוציית הניתוח. אם באפליקציות נתקלת בבעיה הזו (1.3.0 עד 1.3.2) ואין לך אפשרות לשדרג אותן כדי להשתמש בגרסאות החדשות יותר שכוללות את הפתרון, אפשר להגדיר ישירות ResolutionSelector עם הרזולוציה המועדפת ו-AspectRatioStrategy תואם ל-ImageAnalysis UseCase כדי לעקוף את הבעיה. (I81f72, ‏ b/330091012)
  • תוקנה בעיה שבה בקשת takePicture שנמצאת בתור עלולה שלא לפעול אם הבקשה הנוכחית נכשלה. (Ie0801)
  • בדיקת הנתונים הלא חוקיים של קובצי JPEG חלה על מכשירי Vivo X60 ו-X60 Pro. הפעולה הזו יכולה לפתור בעיה של תמונות גדולות במיוחד במכשירים האלה. (I82247, ‏ b/288828159)
  • תוקנה הבעיה במטא-נתונים של תמונות JPEG שגויים במכשירי Samsung A24. בעקבות התיקון, CameraX יכול לשמור את קובץ ה-JPEG של התמונה, או להחזיר אובייקטים נכונים של Bitmap כשקוראים לפונקציה ImageProxy.toBitmap() במכשירי Samsung A24. (I8d6eb, ‏ b/309005680)
  • בדיקת הנתונים הלא חוקיים של קובצי JPEG תחול על כל מכשירי Samsung אם התמונה שצולמה גדולה מ-10MB. הפעולה הזו יכולה לפתור בעיה של תמונות גדולות במיוחד במכשירי Samsung. (Ic2a65, ‏ b/288828159)
  • הסרנו את התמיכה ב-ImageAnalysis בתוספים של CameraX, כי הטמעות של תוספים רבים של יצרני ציוד מקורי לא פועלות טוב עם ImageAnalysis ועשויות לגרום לבעיות לא עקביות. (I2d926)

גרסה 1.4.0-alpha04

24 בינואר 2024

androidx.camera:camera-*:1.4.0-alpha04 משוחרר. גרסה 1.4.0-alpha04 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תכונות חדשות

  • פריט חדש: camera-effects: ספרייה להוספת אפקטים בזמן אמת לפלט של CameraX, כולל Preview, ‏ VideoCapture ו/או ImageCapture. הארטיפקט הזה מכיל הטמעות OpenGL של ה-API CameraEffect שמאפשרות לבצע מניפולציות על הפלט של המצלמה בצורה יעילה.
  • OverlayEffect: לציור שכבות-על באמצעות Canvas API של Android. כך האפליקציה יכולה להחיל סימן מים או להדגיש אובייקטים שזוהו בפלט של המצלמה.
  • DynamicRange ממשקי API לתרחיש לדוגמה של תצוגה מקדימה: עכשיו אפשר להגדיר את הטווח הדינמי בתרחיש לדוגמה של תצוגה מקדימה, בנפרד מתרחיש לדוגמה של סרטון. כך אפשר להשתמש בטווחים דינמיים של HDR כמו HLG10 בתצוגה מקדימה בלבד. ב-CameraInfo יש גם ממשקי API חדשים שמאפשרים לשלוח שאילתות לגבי טווחי הדינמיקה שנתמכים בכל מצלמה.

שינויים ב-API

  • השם של ScreenFlashUiCompleter השתנה ל-ScreenFlashListener ו-ScreenFlashUiCompleter#getExpirationTimeMillis הועבר לפרמטר expirationTimeMillis של ScreenFlash#apply. (I13944)
  • נוספו ממשקי API חדשים שמאפשרים להגדיר טווח דינמי בתרחיש לדוגמה של תצוגה מקדימה, ולבצע שאילתות לגבי טווחים דינמיים שנתמכים בכל מצלמה. כך אפשר להשתמש בטווחים דינמיים של HDR, כמו HLG10, בתרחיש לדוגמה של תצוגה מקדימה בלבד, בלי צורך לשייך VideoCapture בו-זמנית. (If25e3)
  • השם של getMirroring() השתנה ל-isMirroring() (I47063)
  • הוספנו תמיכה ב-CameraX בזמן אמת בחישוב זמן האחזור של צילום סטילס. תוספים למצלמה מאפשרים לאפליקציות להשתמש ב-API שמספק אומדן של משך הזמן הנדרש לצילום. האומדן מתייחס לתנאי הסביבה הנוכחיים, למצב המצלמה, וגם כולל את הזמן שחולף על עיבוד בקשות לצילום של כמה פריימים, יחד עם זמן נוסף לקודק של מאגרי נתונים שעברו עיבוד, אם יש צורך. (I05c3a)
  • שינינו את השם של ScreenFlashUiControl ל-ScreenFlash, את השם של ScreenFlashUiControl#applyScreenFlashUi ל-ScreenFlash#apply, את השם של ScreenFlashUiControl#clearScreenFlashUi ל-ScreenFlash#clear והוספנו את השיטה getScreenFlashUiApplyTimeoutSeconds במקום לחשוף את SCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS ישירות. (Iccdd0)

תיקוני באגים

  • תוקנה דליפת זיכרון שגרמה לכך שפעילויות או קטעים לא שוחררו כשהתוספים מופעלים (I14215)
  • תוקנה בעיה שבה getZoomRatio החזיר באופן שגוי ערך מופחת כשחלה עליו עלייה ביחס הזום. (I4aa0d, ‏ b/317543616)
  • האירוע ImageCapture#ScreenFlash#clear מופעל באופן מיידי כשהקישור של ImageCapture לא תקין או שהמצלמה סגורה. בנוסף, תוקנו כמה באגים שבהם האירוע לא הופעל אף פעם בגלל שהצילומים בתרחישים האלה לא הושלמו כראוי. (If99f9)
  • תוקנה קריסה שמתרחשת כשמחזור החיים מושהה לפני השלמת הבקשה takePicture (Idf017, ‏ b/306202751)
  • תוקנה בעיה שבה התצוגה המקדימה של המצלמה הופכת לשחורה כשהתוספים מופעלים במכשירים מסוימים (I1ffd0)
  • תוקנה בעיה של משך הקלטת וידאו שגוי במכשירים עם מעבד 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 בצד המסגרת ויסנכרן את התזמון עם השינויים בממשק המשתמש של האפליקציה לפי הצורך (למשל, הפעלת AE לפני הצילום אחרי שינוי הצבע או הבהירות של מסך האפליקציה). האפליקציות יצטרכו להוסיף את ההטמעות שלהן בצד ממשק המשתמש רק בממשק ScreenFlashUiControl שסופק ל-CameraX. (I8ae84)
  • הוספנו תמיכה בהטמעה של תכונת הבהוב המסך בצד ממשק המשתמש ב-CameraX. אפליקציות יוכלו לקבל הטמעה בסיסית של ImageCapture.ScreenFlashUiControl מ-PreviewView או מ-ScreenFlashView שנוסף לאחרונה, שתוסיף תצוגת שכבת-על בצבע יחיד ותגדיל את בהירות המסך למקסימום במהלך צילום תמונות באמצעות הבהוב המסך. (I1810e)

שינויים ב-API

  • תמיכה בתכונות חדשות של התוספים (התקדמות של תהליך הצפייה לאחר הצגת המודעות והתקדמות של תהליך הצילום): נוספו ממשקי API מסוג ImageCapture#getImageCaptureCapabilities() לאפליקציות כדי לאפשר להן לשלוח שאילתות לגבי היכולות של קריאה חוזרת (callback) לגבי התקדמות של תהליך הצפייה לאחר הצגת המודעות והתקדמות של תהליך הצילום. אפליקציות יכולות להפעיל את התצוגה שלאחר הצפייה באמצעות ImageCapture.Builder#setPostviewEnabled(). אפשר לבחור את הגודל של המודעות לאחר הצפייה באמצעות ImageCapture.Builder#setPostviewResolutionSelector(). כשמפעילים את takePicture(), אפשר להטמיע את onPostviewBitmapAvailable ו-onCaptureProcessProgressed ב-OnImageSavedCallback או ב-OnImageCapturedCallback כדי לקבל את ההודעה על התקדמות הטיפול בבקשה לאחר הצפייה, אם יש תמיכה בכך. (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)
  • מוסיפים ל-CameraController את ה-getter/setter של פורמט הפלט של ImageAnalysis. (I9a96c, ‏ b/308240643)

תיקוני באגים

  • ממצלמה 1.3.1: שיפור הביצועים של ProcessCameraProvider#bindToLifecycle(). השינוי העיקרי הוא אופטימיזציה של תהליך הזיהוי של שילובי הגדלים המתאימים ביותר ל-UseCases. התוצאות האופטימליות משתנות בהתאם לשילובים הספציפיים של UseCase ולמספר גדלי הפלט הנתמכים במכשירי היעד. (I454f2)
  • מתן הרשאה לשימוש ב-VideoCapture כשהתוספים מופעלים. (I91f32)
  • תוקנה בעיה בתמונות JPEG גדולות שצולמו במכשירי Samsung מדגמי A71 ו-M51. תמונות ה-JPEG שצולמו מכילות נתוני מילוי יתירים של אפסים בפלחי הנתונים הנדחסים של JFIF. כתוצאה מכך, גודל הקובץ של התמונות שצולמו גדול מאוד. נתוני המילוי העודפים של האפסים יוסרו כדי שהתמונות שצולמו יהיו בגודל קובץ תמונה רגיל. (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 של הליבה של המצלמה. (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 שצולמו מכילות נתוני מילוי יתירים של אפסים בפלחי הנתונים הנדחסים של JFIF. כתוצאה מכך, גודל הקובץ של התמונות שצולמו גדול. נתוני המילוי העודפים של האפסים יוסרו כדי שהתמונות שצולמו יהיו בגודל קובץ תמונה רגיל. (I79505, ‏ b/299069235)
  • תוקנה בעיה שבה לא ניתן לשייך את ImageAnalysis ל-ImageCapture ולתצוגה המקדימה כשחלק ממצבי התוספים מופעלים במכשירים מסוימים. התיקון יחזיר את הערך הנכון כשאפליקציות יבקשו מידע על הזמינות של ImageAnalysis דרך ExtensionsManager#isImageAnalysisSupported(). (I7d538)
  • מעדכנים את JavaDoc כך שיתאים להתנהגות. במקום שהפעולות #setZoomRatio, ‏ #setLinearZoom ו-#enableTorch יושלמו באופן מיידי, הן ימתינו עד שהמצלמה תהיה מוכנה. הוספנו גם מידע על קבלת שדה הראייה המקסימלי באמצעות ה-API של #takePicture. (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() מחזירה אובייקטים נכונים של Bitmap. (I8d6eb, ‏ b/309005680)
  • האפשרות ברזולוציה 9280x6944 הוסרה במכשירי Redmi Note 9 Pro עקב בעיות. (Ia23da)

גרסה 1.3.1

13 בדצמבר 2023

androidx.camera:camera-*:1.3.1 משוחרר. גרסה 1.3.1 מכילה את השמירות האלה.

תיקוני באגים

שיפור הביצועים של ProcessCameraProvider#bindToLifecycle(). השינוי העיקרי הוא אופטימיזציה של תהליך הזיהוי של שילובי הגדלים המתאימים ביותר ל-UseCases. התוצאות האופטימליות משתנות בהתאם לשילובים הספציפיים של UseCase ולמספר גדלי הפלט הנתמכים במכשירי היעד. (I454f2)

ריכזנו כאן כמה תוצאות לדוגמה בתרחישים שונים:

  • ארבעה UseCases: Preview + ImageCapture + ImageAnalysis + VideoCapture

    • Google Pixel 7: כ-430 אלפיות שנייה עד 60 אלפיות שנייה
    • Samsung Galaxy S23 Ultra: כ-540 אלפיות שנייה עד 45 אלפיות שנייה
    • Samsung A53 5G: כ-115ms עד 70ms
  • שלוש UseCases: Preview + ImageCapture + ImageAnalysis

    • Google Pixel 7: כ-9 אלפיות השנייה עד 7 אלפיות השנייה
    • Samsung Galaxy S23 Ultra: כ-6 אלפיות השנייה עד 5 אלפיות השנייה
    • Samsung A53 5G: כ-32ms עד 12ms
  • הוספת 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 שצולמו מכילות נתוני מילוי יתירים של אפסים בפלחי הנתונים הנדחסים של JFIF. כתוצאה מכך, גודל הקובץ של התמונות שצולמו גדול. נתוני המילוי העודפים של האפסים יוסרו כדי שהתמונות שצולמו יהיו בגודל קובץ תמונה רגיל. (I407b0, ‏ b/288828159)
  • תוקנה בעיה בתמונות JPEG גדולות שצולמו במכשירי סדרת Samsung S22‏ (SM-S901B, ‏ SM-S901B/DS) ו-S22+‏ (SM-S906B). תמונות ה-JPEG שצולמו מכילות נתוני מילוי יתירים של אפסים בפלחי הנתונים הנדחסים של JFIF. כתוצאה מכך, גודל הקובץ של התמונות שצולמו הוא גדול, כ-13MB במכשיר S22 SM-S901B/DS. נתוני המילוי העודפים של האפסים יוסרו כדי שהתמונות שצולמו יהיו בגודל קובץ תמונה רגיל. (I73be9, b/288828159)
  • תוקנה בעיה בתמונות JPEG גדולות שצולמו במכשירי Samsung מדגמי A5, ‏ A52, ‏ A70 ו-A72. תמונות ה-JPEG שצולמו מכילות נתוני מילוי יתירים של אפסים בפלחי הנתונים הנדחסים של JFIF. כתוצאה מכך, גודל הקובץ של התמונות שצולמו גדול מאוד (למשל, כ-32MB או אפילו 96MB). נתוני המילוי העודפים של האפסים יוסרו כדי שהתמונות שצולמו יהיו בגודל קובץ תמונה רגיל. (I97c4d, ‏ b/288828159)
  • תוקן קריסה של קוד יליד בזמן צילום תמונות כשהתוספים מופעלים (I698f5)

גרסה 1.3.0-beta02

26 ביולי 2023

androidx.camera:camera-*:1.3.0-beta02 משוחרר. גרסה 1.3.0-beta02 מכילה את ההצהרות האלה.

תיקוני באגים

  • שימוש בפנס כפלאש בגרסאות Pixel 4 ו-Pixel 5 כדי לשפר את איכות הצילום בתאורה נמוכה (I56ff5, ‏ b/280221967)
  • תוקנה בעיה בתמונות JPEG גדולות שצולמו במכשירי סדרת Samsung A5‏ (2017). תמונות ה-JPEG שצולמו מכילות נתוני מילוי יתירים של אפסים בפלחי הנתונים הנדחסים של JFIF. כתוצאה מכך, גודל הקובץ של התמונות שצולמו הוא כ-32MB. נתוני המילוי העודפים של האפסים יוסרו כדי שהתמונות שצולמו יהיו בגודל קובץ תמונה רגיל. (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 מייצגת את הטווח הדינמי של התמונות. אפשר להשתמש באפשרות הזו כדי לבחור פורמטים של טווח דינמי גבוה (HDR) כפלט של VideoCapture עד VideoCapture.Builder#setDynamicRange(). (Ib0377)
  • הוספנו ממשק API מסוג isImageAnalysisSupported ל-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 מכילה את ההצהרות האלה.

תכונות חדשות

  • ה-API החדש של VideoCapture.Builder# setTargetFrameRate(Range) מאפשר לצלם סרטונים בקצב פריימים אחר מלבד קצב ברירת המחדל של המכשיר. אפשר לשלוח שאילתות לגבי שיעורי הפריימים הזמינים להקלטות דרך ממשק ה-API החדש של CameraInfo#getSupportedFrameRates().

שינויים ב-API

  • שינינו את השם של הקבועים ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON לשם ALLOWED_RESOLUTIONS_NORMAL/SLOW, ושינינו את השם של פונקציית ה-builder setHighResolutionEnabledFlag לשם setAllowedResolutionMode. (Iae817)
  • הפונקציה CameraInfo#getSupportedFrameRateRanges() מחזירה עכשיו Set במקום List, כדי לייצג טוב יותר את העובדה שהטווחים לא מסודרים. (I02f43)
  • מוסיפים מאזין שגיאות ל-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, כדי שאפשר יהיה להגדיר ולשלוף את קצב הפריימים היעד בתרחיש לדוגמה של תצוגה מקדימה (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 תומך רק בשתי מצלמות שפועלות בו-זמנית, ומאפשר להקצות לכל מצלמה עד שני {@link UseCase}. הרזולוציה המקסימלית היא 720p או 1440p. פרטים נוספים מופיעים בקישור הבא, בקטע CameraManager#getConcurrentCameraIds()
  • אנחנו שמחים להציג את ResolutionSelector API החדש, שכולל את התכונות הבאות:
    • אפליקציות יכולות לציין אסטרטגיות ליחס גובה-רוחב ולרזולוציה כדי לבחור את הרזולוציה המתאימה ביותר לצרכים שלהן.
    • כל הפרמטרים של הגדלים ויחסי הגובה-רוחב מפורטים בקואורדינטות של חיישן המצלמה.
    • אפליקציות יכולות להטמיע מסנן רזולוציה מותאם אישית כדי לסדר את הגדלים הנתמכים בסדר הרצוי.
    • אפליקציות יכולות גם להפעיל צילום ברזולוציה גבוהה כדי לקבל תמונות ברזולוציה גבוהה יותר. עם זאת, חשוב לזכור ששימוש ברזולוציה גבוהה עלול להוביל לזמני צילום ארוכים יותר.
    • נוספו ממשקי API להעתקה (mirroring) של VideoCapture. סרטונים שתצלמו באמצעות VideoCapture לא יופיעו במראה כפולה כברירת מחדל. עם זאת, התצוגה המקדימה במצלמה הופכת במראה במצלמה הקדמית כברירת מחדל. ממשקי API להשתקת VideoCapture מאפשרים להתאים את התצוגה המקדימה של המצלמה כשמשתמשים במצלמה הקדמית. יש שלושה MirrorMode, ‏ OFF, ‏ ON ו-ON_FRONT_ONLY. כדי להתאים את התצוגה המקדימה במצלמה, מומלץ להשתמש ב-ON_FRONT_ONLY, כלומר היפוך המראה לא מופעל במצלמה האחורית אבל מופעל במצלמה הקדמית.

שינויים ב-API

  • הוצג ממשק API חדש של ResolutionSelector. כדי לקבל את התוצאות הרצויות, אפליקציות יכולות לציין אסטרטגיות של יחס גובה-רוחב ורזולוציה באמצעות כללי חלופיים או מסנן רזולוציה בהתאמה אישית. אפליקציות יכולות לציין דגל כדי לאפשר צילום ברזולוציה גבוהה. כך אפליקציית CameraX תוכל לבחור רזולוציות גבוהות יותר כשמצלמים תמונות או סרטונים. עם זאת, חשוב לזכור ששימוש ברזולוציה גבוהה עלול להוביל לזמני צילום ארוכים יותר. (Ibed95)
  • עכשיו אפשר לשלוח שאילתות לגבי טווחי ה-FPS שנתמכים על ידי אלגוריתם ה-AE באמצעות CameraInfo#getSupportedFrameRateRanges(). (Iaa67f)
  • משלבים את השמות של כל השיטות לקביעת קצב הפריימים באמצעות 'FrameRate'. תיקון השגיאה ב-javadoc ב-VideoCapture#getTargetFrameRate() (I83304)
  • הוצאנו משימוש את ממשקי ה-API הקודמים setTargetAspectRatio ו-setTargetResolution. במקום זאת, יש להשתמש ב-ResolutionSelector API החדש. (I542c3)
  • הוספנו ממשקי API ציבוריים לשימוש בו-זמנית בשתי מצלמות, כולל:
    1. List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
    2. ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
    3. boolean isConcurrentCameraModeOn() וגם ConcurrentCameraConfig, ‏ SingleCameraConfig ו-ConcurrentCamera (Iab1c1)
  • הופכים את ImageProcessor.Response#getOutputImage ל-NonNull (Ib9c60)
  • הוספנו ממשקי API להעתקה (mirroring) של VideoCapture, כולל VideoCapture.Builder.setMirrorMode(int) ו-VideoCapture.getMirrorMode(). ממשקי ה-API שימושיים לאפליקציות שבהן צילום הווידאו צריך להיות עקבי עם ההתנהגות הנפוצה של תצוגה מקדימה במצלמה, כלומר התצוגה המקדימה של המצלמה האחורית לא הופכת, אבל התצוגה המקדימה של המצלמה הקדמית הופכת. (I713b6, ‏ b/194634656)
  • הוספת API של setTargetFrameRate() ב-VideoCapture.Builder ו-API של getTargetFramerate() ב-VideoCapture (I109d4)
  • מגדירים את SurfaceOutput כממשיך של Closable ומסתירים את המבנה הציבורי של SurfaceOutput.Event. (I60ea8)
  • הוספנו את Recording.mute כדי להשתיק או לבטל את ההשתקה של הקלטה בזמן העיבוד באופן דינמי. השדה RecordingStats יכיל את הערך AudioStats.AUDIO_STATE_MUTED כשהקלטת שנמצאת בעיבוד תושתק באופן מפורש. (Ie17fc)
  • הפרמטר #setEffects() לא יכול להיות null. הוספת API של #clearEffects() לניקוי אפקטים. האפליקציה צריכה לבצע קריאה ל-#clearEffects() כדי להסיר אפקטים. (I4b4d9)
  • מוסיפים קונסטרוקטור שני ל-ViewfinderSurfaceRequest.Builder כדי לקבל builder ליצירת קונסטרוקטור להעתקה (I621a7)

תיקוני באגים

  • תוקנה בעיה שגרמה לקריסה של אפליקציות שמפעילות את Extensions API כשסוגרים את המצלמה (Ib27e5)
  • תוקנה בעיה שבה לא ניתן היה להשתמש ב-VideoCapture עם המצלמה הקדמית במכשירים מסוימים. לדוגמה, ב-Samsung Galaxy S23 וב-Xiaomi 2107113SG. (Ibec7e, ‏ b/270656244)
  • תוקנה בעיה שבה תמיד נכשלה צילום תמונות באמצעות 'קבצים' בתיקייה הציבורית של האחסון החיצוני ב-Android 10 ואילך. לתשומת ליבכם: ב-Android 10, כדי לצלם תמונות באמצעות 'קבצים' בתיקייה הציבורית של האחסון החיצוני, צריך גם להגדיר את requestLegacyExternalStorage כ-true בתג האפליקציה. (I11b2c)
  • תוקנה קריסה של RejectedExecutionException ב-DefaultSurfaceProcessor. הקריסה יכולה להתרחש כש-VideoCapture מקושר והפעילות מושהית. (Idb46a, ‏ b/273713906)

גרסה 1.3.0-alpha05

22 במרץ 2023

androidx.camera:camera-*:1.3.0-alpha05 משוחרר. גרסה 1.3.0-alpha05 מכילה את ההצהרות האלה.

שינויים ב-API

  • הוספנו ממשקי API לבחירת מודעות בסבב VideoCapture, כולל VideoCapture.Builder.setTargetRotation(int), ‏ VideoCapture.setTargetRotation(int), ‏ VideoCapture.setTargetRotationDegrees(int) ו-VideoCapture.getTargetRotation(). ממשקי ה-API מועילים לאפליקציות שמנעילות את כיוון המכשיר. ImageCapture.setTargetRotationDegrees(int) וגם ImageAnalysis.setTargetRotationDegrees(int) נוספים. (Id3ffe, ‏ b/205242781)
  • מתן הרשאה ל-VIDEO_CAPTURE ול-PREVIEW|VIDEO_CAPTURE כיעד של אפקטים. אפקטים שמטרגטים את VIDEO_CAPTURE יחולו על תרחיש השימוש VideoCapture. אפקטים שמטרגטים את PREVIEW|VIDEO_CAPTURE יחולו על מקור נתונים משותף לפני ההעתקה לתצוגה המקדימה ולמקור הנתונים VideoCapture. (Iee6f3)

תיקוני באגים

  • מ-מצלמה 1.2.2: תוקנה בעיה שבה התוספים של CameraX לא פועלים כמו שצריך כש-ProGuard מופעל במכשירים מסוימים, כמו Pixel‏ (I90aa2)
  • תוקן באג ב-PreviewView: אם האפליקציה מטפלת בעצמה בכיוון המסך, התצוגה המקדימה עשויה להיות מעוותת אחרי סיבוב. זה קורה רק במכשירים מסוימים. אפשר לשחזר אותו ב-Pixel 4a, ב-Pixel 5 וב-Pixel 6a. (I14340, ‏ b/223488673)

גרסה 1.3.0-alpha04

22 בפברואר 2023

androidx.camera:camera-*:1.3.0-alpha04 משוחרר. גרסה 1.3.0-alpha04 מכילה את ההצהרות האלה.

תכונות חדשות

תכונה חדשה שתומכת בשילובים של Surface שלא נתמכו בעבר, על ידי שיתוף של שידור אחד לכמה תרחישים לדוגמה.

  • בעבר, כשקושרו הפונקציות 'תצוגה מקדימה, צילום וידאו, ניתוח תמונות' ברמת החומרה של המצלמה FULL ומטה, או כשקושרו הפונקציות 'תצוגה מקדימה, צילום וידאו, צילום תמונות' ברמת החומרה LEGACY, המערכת של CameraX החזירה את השגיאה IllegalArgumentException.
  • ההתנהגות החדשה היא שהקישורים יפעלו בלי להפעיל חריגות. במקום זאת, CameraX משתמשת ב-OpenGL כדי להעתיק סטרימינג משותף גם לתצוגה המקדימה וגם ל-VideoCapture.
  • כתוצאה מהעלות של העתקת המטמון, יכול להיות שתהיה באפליקציה עלייה בזמן האחזור ובצריכת החשמל.

שינויים ב-API

  • מוסיפים API כדי להמיר את ImageProxy ל-Bitmap. הפורמטים הנתמכים של ImageProxy הם ImageFormat.YUV_420_888 ו-PixelFormat.RGBA_8888. אם הפורמט לא תקין, תופיע הודעת השגיאה IllegalArgumentException. (Ic7110)
  • הוספת CoroutineCameraViewfinder כדי לתמוך בהגדרת חלון הצפייה באמצעות פונקציות השהיה ב-Kotlin. (I657bc)
  • מוסיפים קונסטרוקטור ציבורי חדש ל-ViewfinderSurfaceRequest. היא מספקת גמישות במקרים שבהם המשתמש לא יכול לספק את CameraCharacteristics. (Ie6549)

תיקוני באגים

  • תוקנה קריסה של התוספים שמתרחשת במכשירי Samsung מסוימים כשמפסיקים או ממשיכים את האפליקציה מהר מדי (Iaca26)

גרסה 1.3.0-alpha03

25 בינואר 2023

androidx.camera:camera-*:1.3.0-alpha03 משוחרר. גרסה 1.3.0-alpha03 מכילה את ההצהרות האלה.

שינויים ב-API

  • נוספה CameraInfo.getIntrinsicZoomRatio כדי לספק מידע על זווית הראייה ביחס למצלמת ברירת המחדל. (Ib300c)
  • נוספה CameraInfo.getLensFacing כדי לספק מידע על כיוון העדשה. הוספנו את CameraSelector#LENS_FACING_EXTERNAL כתכונה ניסיונית לבחירת מצלמות חיצוניות. (Icaf3e)
  • הוספת #setEffect() ל-CameraController שמאפשרת להוסיף אפקטים לפלט של המצלמה. (I1d21f)
  • מוסיפים את השיטה invalidate() אל SurfaceRequest. ספק הפלטפורמה יכול להודיע שהשטח שסופק בעבר לא תקף יותר. (Idc649)
  • מוסיפים ממשק 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)
  • מסירים את הכיתות Metadata, ‏ OnVideoSavedCallback, ‏ OutputFileOptions ו-OutputFileResults שלא בשימוש יותר אחרי החלת ה-API החדש לצילום וידאו. (I38cd8)
  • מחילים את ממשק ה-API החדש לצילום וידאו. השיטות getVideoCaptureTargetSize ו-setVideoCaptureTargetSize מוחלפות בשיטות getVideoCaptureTargetQuality ו-setVideoCaptureTargetQuality בהתאמה, כי אין יותר תמיכה ב-setTargetResolution. (I2a1d5)

תיקוני באגים

  • מסירים את ממשק ה-API core.VideoCapture שהוצא משימוש. (I531e0)
  • תוקנה הבעיה שבה פונקציית ה-callback‏ onError לא נקראת כשמצלמים תמונות בלי הרשאת האחסון.(I936db, ‏ b/244807669)
  • שיפור האיכות והאמינות של התוספים למצלמה. התוספים למצלמה מושבתים במכשירי Motorola עם תוספים למצלמה מגרסה 1.1.0 ואילך, בגלל בעיות בתמיכה בבוקה, בצילום תמונות ובהמשך התצוגה המקדימה. (Id3ce3)
  • תוקנה קריסה של קוד מותאם כשחיתוך סרטון באמצעות ViewPort מופעל במכשירים ישנים. (I16b8a, ‏ b/251357665)

גרסה 1.3.0-alpha01

9 בנובמבר 2022

androidx.camera:camera-*:1.3.0-alpha01 משוחרר. גרסה 1.3.0-alpha01 כוללת את ההוספות האלה.

תכונות חדשות

  • Camera-viewfinder פורסם באופן רשמי. Camera-viewfinder מספק ווידג'ט של עינית בסיסית שיכול להציג את פיד המצלמה של Camera2. דוגמה מפורטת מופיעה בקוד לדוגמה.

שינויים ב-API

  • הוספנו את OutputOptions.setDurationLimit כדי לאפשר הגדרה של מגבלת אורך הסרטון. ההקלטה תסתיים באופן אוטומטי אם תחרגו ממגבלת משך הזמן שצוינה. (I902a0)
  • הוספת מצב שגיאה של אודיו בהקלטת וידאו AudioStats.AUDIO_STATE_SOURCE_ERROR. נשלח כשההגדרה של מקור האודיו נכשלת או כשמתרחשת שגיאה כלשהי. (I37410)

תיקוני באגים

  • הוספת תכונה שמאפשרת למכשירים בעייתיים מסוימים לנסות שוב לצלם פעם אחת כשהם נתקלים בכשלים בצילום. (Id4795)
  • תיקון בעיה של מסך שחור בהטמעה של PreviewView SurfaceView ב-ViewPager2. כחלק מהתיקון, PreviewView ישתמש שוב ב-SurfaceView שלו אם הרזולוציה המבוקשת לא תשתנה. (Ib3f27)
  • תמיכה בחיתוך סרטונים (תכונה של WYSIWYG) כשמשתמשים ב-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 כוללת את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • תוקנה בעיה שבה התוספים של 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 ניסיוני חדש ללא זמן צילום. אופטימיזציה של צינור עיבוד הנתונים לצילום כדי לשפר את זמן האחזור תוך שמירה על איכות תמונה טובה. כשמצב הצילום מוגדר ל-CAPTURE_MODE_ZERO_SHUTTER_LAG, זמן האחזור בין הלחיצה על לחצן הצמצם לבין צילום התמונה צפוי להיות קצר ככל האפשר, בהשוואה למצבי צילום אחרים. במכשירים שלא תומכים ב-ZERO_SHUTTER_LAG, המערכת תשתמש ב-CAPTURE_MODE_MINIMIZE_LATENCY.
  • הוצאה משימוש של android.camera.core.VideoCapture.
  • הוספנו את setStreamUseCase() כ-API Camera2Interop ציבורי.
  • הוספנו דרישה לגבי רמת ה-API של setOutputImageRotationEnabled.
  • השם של ImageAnalysis.Analyzer#getTargetResolutionOverride() השתנה ל-ImageAnalysis.Analyzer#getDefaultTargetResolution().
  • הוספנו ממשק API להגדרת מטא-נתונים של מיקום בסרטון השמור.
  • תוקנה בעיה של קצב פריימים נמוך בתרחישים לדוגמה של VideoCapture ותצוגה מקדימה ביחס גובה-רוחב של 16:9
  • תוקנה הבעיה של תצוגה מקדימה שחורה שמתרחשת כשתוסף ה-BOKEH מופעל במכשירי 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 ב-Preview לא מוגדר. כחלק מהתיקון, התצוגה המקדימה ללא הגדרת 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 – ממשק API ניסיוני חדש. אופטימיזציה של צינור עיבוד הנתונים לצילום כדי לשפר את זמן האחזור תוך שמירה על איכות תמונה טובה. כשמצב הצילום מוגדר כ-CAPTURE_MODE_ZERO_SHUTTER_LAG, זמן האחזור בין הלחיצה על לחצן הצמצם לבין צילום התמונה צפוי להיות קצר ככל האפשר, בהשוואה למצבי צילום אחרים. במכשירים שלא תומכים ב-ZERO_SHUTTER_LAG, המערכת תעבור ל-CAPTURE_MODE_MINIMIZE_LATENCY.
  • הכרזנו על ImageAnalysis.Analyzer ו-MLKitAnalyzer כממשקי API רשמיים.
  • ממשק API שחשוף להגדרת מטא-נתונים של מיקום בסרטון השמור.
  • משנים את השם של ImageAnalysis.Analyzer#getTargetResolutionOverride() ל-ImageAnalysis.Analyzer#getDefaultTargetResolution().

תיקוני באגים

  • תוקנה בעיה בצילום תמונות של Alps k61v1_basic_ref. לתמונות ה-JPEG שצולמו מ-HAL יש מטא-נתונים שגויים של Exif. המטא-נתונים של Exif לא מכילים את התג 0xffd9 או 0xffda כדי לאפשר ל-ExifInterface לנתח את המאפיינים בצורה נכונה. כדי לעקוף את הבעיה הזו, אפשר לצלם את התמונות בפורמט YUV ולאחר מכן לדחוס אותן לתמונות פלט בפורמט JPEG. (I45abb)

גרסה 1.2.0-alpha04

27 ביולי 2022

androidx.camera:camera-*:1.2.0-alpha04 משוחרר. גרסה 1.2.0-alpha04 מכילה את ההוספות האלה.

שינויים ב-API

  • משנים את השם של ImageAnalysis.Analyzer#getTargetResolutionOverride() ל-ImageAnalysis.Analyzer#getDefaultTargetResolution(). ההתנהגות השתנתה גם כך שאפשר לשנות את הערך שמוחזר על ידי השיטה הזו באמצעות הערך של ImageAnalysis#setTargetResolution(). (If1d36)
  • ממשק API שחשוף להגדרת מטא-נתונים של מיקום בסרטון השמור. אפשר להגדיר אובייקט android.location.Location באמצעות ה-API החדש androidx.camera.video.OutputOptions.Builder.setLocation(Location). (I313a0, ‏ b/204197544)

תיקוני באגים

  • תיקון הבעיה בצילום תמונה עם תצוגה מקדימה של ביטול קישור (Ie70b6, ‏ b/235119898)
  • תוקנה קריסה ב-Recorder כשמנסים להקליט כשמקור האודיו לא זמין. (I9f652)

גרסה 1.2.0-alpha03

29 ביוני 2022

androidx.camera:camera-*:1.2.0-alpha03 משוחרר. גרסה 1.2.0-alpha03 כוללת את ההוספות האלה.

שינויים ב-API

  • הסרת ההערה הניסיונית לגבי ImageAnalysis.Analyzer ו-MLKitAnalyzer. (I0ff22)

תיקוני באגים

  • נוספה ברירת מחדל של זמן קצוב לתפוגה של 5000ms ל-AF, שישלים את החלק של ה-AF עם isFocusSuccessful false אם ה-FocusMeteringAction לא בוטל והחלק של ה-AF לא הגיע להסכמה במהלך משך הזמן. (Ibc2e3)
  • תיקון הבעיה בצילום תמונה עם תצוגה מקדימה של ביטול קישור (I1d3a2, ‏ b/235119898)
  • הפעלנו הטמעה מתקדמת של מרחיב ועדכנו את גרסת ממשק התמיכה של התוספים של CameraX ל-1.2 (I92256)

גרסה 1.2.0-alpha02

1 ביוני 2022

androidx.camera:camera-*:1.2.0-alpha02 משוחרר. גרסה 1.2.0-alpha02 מכילה את ההוספות האלה.

תכונות חדשות

  • חשיפת CameraX Zero-Shutter Lag API כניסיוני.

שינויים ב-API

  • מוסיפים את מצב הצילום החדש CAPTURE_MODE_ZERO_SHUTTER_LAG ב-ImageCapture ומוסיפים את isZslSupported ב-CameraInfo כדי לשלוח שאילתה לגבי יכולות המכשיר. המטרה של מצב CAPTURE_MODE_ZERO_SHUTTER_LAG היא לספק את זמן האחזור המינימלי לצילום מיידי. ההטמעה מבוססת על מאגר טבעת (ring buffer), שמאחסן במטמון תוצאות של צילומים ביניים לצורך עיבוד מחדש מאוחר יותר, כשהמשתמש לוחץ על לחצנים כדי לצלם תמונות. אם {@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

  • ספריות Landed View, ‏ Extension ו-Video Capture בגרסה הראשונה שלהן ב-RC. החל מגרסה 1.1.0-beta01, כל ספריות CameraX יהיו עם אותו מספר גרסה. כך המפתחים יוכלו לעקוב אחרי הגרסאות בקלות רבה יותר ולצמצם את המורכבות של מטריצות התאימות של גרסאות גדולות.
  • השקנו ממשקי API ותכונות ציבוריים חדשים, כולל:
  • הוספת ספריית הווידאו הרשמית של המצלמה כדי לתמוך בתרחישי שימוש של צילום וידאו.
  • יכולת של המרה וכיוון של YUV ל-RGB (ImageAnalysis.Builder.setOutputImageRotationEnabled ו-setOutputImageFormat)
  • תמיכה במצב 'חלונות מרובים' על ידי מתן אפשרות לאפליקציות CameraX להמשיך את השימוש במצלמה כשהיא מופסקת על ידי אפליקציה אחרת והמיקוד חוזר.
  • תיקון בעיות מסוימות בתצוגה המקדימה כדי לוודא ש-CameraX פועלת היטב במכשירים מתקפלים.
  • הוספנו ממשק API של CameraState שיהיה חשוף דרך CameraInfo.
  • נוספה ממשק API‏ ProcessCameraProvider.getAvailableCameraInfos() לאחזור ישיר של מידע על המצלמות הזמינות
  • פורמט הפלט של JPEG עבור ImageCapture#OnImageCapturedCallback כשהתוספים מופעלים.
  • הוספנו ממשק API‏ isFocusMeteringSupported ב-CameraInfo שמאפשר לאפליקציות לבדוק אם FocusMeteringAction הנתון נתמך במצלמה הנוכחית או לא.
  • ה-API של getResolutionInfo נחשף כדי לספק את פרטי הרזולוציה של התצוגה המקדימה, 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 ב-APIs ניסיוניים. כדי לקרוא לממשקי 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 שמבוסס על רשימה

תיקוני באגים

  • תוקנה בעיה ב-YuvToJpegProcessor EOFException כשמצב התוסף מופעל והמצב ImageCapture#CAPTURE_MODE_MAX_QUALITY מוגדר.
  • הגדרת הקודק הקבועה נכשלה כי צילום הסרטון נסגר
  • תוקן יחס הגובה-רוחב של התצוגה המקדימה/הסרטון המוארך בזמן צילום ברזולוציית FHD
  • תיקנו בעיות של אודיו/וידאו לא מסונכרנים אחרי השהיה והמשך צפייה במכשירים מסוימים
  • תוקנה בעיה שבה הפלאש מופעל במהלך הקשה לצורך התמקדות (startFocusAndMetering) כשמצב הפלאש מוגדר כ'אוטומטי' או כ'מופעל תמיד' בסביבה עם תאורה חלשה.

גרסה 1.1.0-rc02

1 ביוני 2022

androidx.camera:camera-*:1.1.0-rc02 משוחרר. גרסה 1.1.0-rc02 כוללת את השמירות האלה.

תיקוני באגים

  • תיקון NullPointerException בוצע ב-ImageCapture.takePicture(). (I92366, ‏ b/230454568, ‏ b/229766155)
  • תוקן באג שבו לא בוצע טיפול ב-AssertionError כשמקבלים את המאפיין CONTROL_ZOOM_RATIO_RANGE. (Ia248a, b/231701345)

גרסה 1.1.0-rc01

11 במאי 2022

androidx.camera:camera-*:1.1.0-rc01 משוחרר. גרסה 1.1.0-rc01 כוללת את השמירות האלה.

תכונות חדשות

  • פרסום הגרסה הראשונה של RC ל-camera-video,‏ camera-view ו-camera-extension

תיקוני באגים

  • תוקנה בעיה שבה קודק הווידאו לא שוחרר כש-VideoCapture<Recorder> היה משוחרר, וכתוצאה מכך ניסיונות שימוש חוזרים ב-VideoCapture<Recorder> נכשלו בהקלטה באמצעות MediaCodec.CodecException, במיוחד במכשירים עם API מגרסה 21 עד 22. (Ie7f68)
  • תיקון של תמונות שצולמו של CameraExtensionsActivity שלא נמחקות ב-ImageCaptureTest

גרסה 1.1.0-beta03

6 באפריל 2022

androidx.camera:camera-*:1.1.0-beta03 משוחרר. גרסה 1.1.0-beta03 כוללת את ההצהרות האלה.

שינויים ב-API

  • הוגבל המבנה הגנרטיבי (constructor) של CaptureRequestOptions. (I261b6)
  • הוספנו ממשק API ניסיוני לשימוש ב-CameraController עם ספריות חיצוניות לעיבוד תמונות. לדוגמה, MLKit‏ (I4ea71)

תיקוני באגים

  • תוקנה בעיה שבה התצוגה המקדימה הופכת לצדדית ב-PreviewView כשהפעילות לא מופעלת מחדש אחרי סיבוב המכשירים במצב של כמה חלונות. (I1ea36, ‏ b/223488673)
  • תוקנה בעיה במצב 'חלונות מרובים', שבה כשהמיקוד חוזר לאפליקציה, לא ניתן להמשיך את השימוש במצלמה במקרים הבאים: (1) אפליקציה אחרת בעדיפות גבוהה פותחת מצלמה אחרת (2) המכשיר הוא מכשיר Samsung עם Android 12. (I7e9f2)
  • פתרון עקיף למכשירים שמתרסקים כשבודקים את הזמינות של הפלאש. לא תהיה אפשרות להשתמש בפנס במכשירים האלה. (If26a3, ‏ b/216667482)
  • תיקון בעיה AbstractMethodError שהתרחשה כשאפליקציות משתמשות בתוספים ומפעילות את ProGuard. (I7cbaf, ‏ b/222726805)
  • השבתה בכפייה של מצב התוסף 'בוקה' במכשיר Motorola razr 5G, שעלולה לגרום לבעיה במסך התצוגה המקדימה השחור. (I35d49)
  • תוקן אי-סנכרון של אודיו/וידאו אחרי השהיה והמשך הפעלה במכשירי Samsung מסוימים עם גרסת API 29 ומטה. (I64622, ‏ b/202798609, ‏ b/202798572)
  • תוקנה בעיה של אודיו/וידאו לא מסונכרנים אחרי השהיה והמשך הפעלה במכשיר Sony G3125. (I2a1a5, ‏ b/202799148)
  • תוקנה קריסה שהתרחשה כשהמכשיר נתקל ב-InvalidConfigException. עם זאת, התיקון הזה מונע רק קריסה של האפליקציה, אבל לא פותר את הבעיה שגורמת ל-InvalidConfigException. אם עדיין לא ניתן להגדיר את Recorder, האפליקציות יקבלו קריאה חוזרת עם שגיאה כשהן יתחילו להקליט. (I89c29, ‏ b/213617227)

תרומה חיצונית

  • עודכן :compose:ui:ui-test api (updateApi) עקב העברה של test-coroutines-lib (I3366d)

גרסה 1.1.0-beta02

23 בפברואר 2022

androidx.camera:camera-*:1.1.0-beta02 משוחרר. גרסה 1.1.0-beta02 כוללת את השמירות האלה.

שינויים ב-API

  • הוספת היכולת לציין מזהה מצלמה פיזי באמצעות Camera2Interop. (I5aed8)

תיקוני באגים

  • תוקנה הבעיה בתצוגה המקדימה המורחבת ב-Oppo Find N‏ (I7d004)
  • תוקנה בעיה ב-Galaxy J7 Prime שבה התצוגה המקדימה מעוותת. (I4c500)
  • שימוש בקצב נתונים תואם כדי למצוא מקודד וידאו. (d969052)

גרסה 1.1.0-beta01

26 בינואר 2022

androidx.camera:camera-*:1.1.0-beta01 משוחרר. גרסה 1.1.0-beta01 כוללת את ההצהרות האלה.

תכונות חדשות

  • החל מגרסה 1.1.0-beta01, כל ספריות CameraX יהיו עם אותו מספר גרסה. כך המפתחים יוכלו לעקוב אחרי הגרסאות בקלות רבה יותר ולצמצם את המורכבות של מטריצה גדולה של תאימות גרסאות.

שינויים ב-API

  • נוספה האפשרות Camera2CameraControl.clearCaptureRequestOptions למחיקת האפשרויות הקיימות של בקשות הצילום. (Ifa07d)

תיקוני באגים

  • תוקנה קריסה במהלך הקלטת הסרטון במכשירים מסוימים עם גרסת Android לפני O‏(API 26). (I88fdf, ‏ b/212328261)
  • תוקנה בעיה של אזור פוקוס אוטומטי שגוי בשימוש ב-cameraControl#startFocusAndMetering() במצלמה הקדמית במכשירי Samsung (Ifbf59, ‏ b/210548792)
  • שימוש בפנס כפלאש ב-Pixel 3a/Pixel 3a XL כדי לשפר את המהירות ואת איכות התמונות שצולמו בסביבה חשוכה (Ib12b6, ‏ b/211474332)
  • אפליקציות שהופעלה בהן האפשרות להמשיך את השימוש במצלמה כשהיא מופסקת על ידי אפליקציה אחרת עם עדיפות גבוהה יותר במצב חלונות מרובים, והמיקוד חוזר לאפליקציה. חשוב לדעת: יכול להיות עיכוב מסוים(בין שנייה ל-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() הוסר ועכשיו צריך להעביר את ה-event listener אל PendingRecording.start(). הדרישה הזו של רכיב המעקב אחר אירועים נועדה לעודד טיפול בשגיאות אסינכררוניות שמדווחות באירוע 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 ב-Pixel1. (I833c6, ‏ b/205340278)

גרסה 1.1.0-alpha11

17 בנובמבר 2021

androidx.camera:camera-*:1.1.0-alpha11 משוחרר. גרסה 1.1.0-alpha11 מכילה את השמירות האלה.

שינויים ב-API

  • הוספנו את CameraSelector#filter לממשק ה-API הציבורי כדי לסנן רשימה של CameraInfos על סמך CameraSelector. (I105d0)
  • מוסיפים את ה-API setOutputImageRotationEnabled לתצורה של ImageAnalysis. המשתמש יכול להפעיל סיבוב למאגר תמונות YUV/RGB. מידת הסיבוב היא סיבוב יחסי שמחושב על סמך סיבוב החיישן וסיבוב היעד, כדי שהתמונה תישאר בחזית.

  • מוסיפים את ה-API setOutputImageRotationEnabled לתצורה של ImageAnalysis. המשתמש יכול להפעיל רוטציה למאגר התמונות של YUV/RGB. מידת הסיבוב היא סיבוב יחסי שמחושב על סמך סיבוב החיישן וסיבוב היעד, כדי שהתמונה תישאר בחזית.

    מוסיפים את ה-API של getSensorToBufferTransformMatrix ב-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) כשמצב הפלאש הוא auto או always_on בסביבה עם תאורה חלשה. (Id4c11)
  • השבתנו את ההגדרה +HDR ב-Pixel 2 XL וב-Pixel 3 XL במצב MINIMIZE_LATENCY כדי לצמצם את זמן האחזור. (Ib6270, ‏ b/203505523)

תרומה חיצונית

גרסה 1.1.0-alpha10

13 באוקטובר 2021

androidx.camera:camera-*:1.1.0-alpha10 משוחרר. גרסה 1.1.0-alpha10 מכילה את ההצהרות האלה.

תכונות חדשות

  • גרסת androidx.camera:camera-video:1.1.0-alpha10 פורסמה באופן רשמי כגרסת האלפא הראשונה של Video. יש כמה בעיות ידועות שיטופלו במהדורות הבאות.

שינויים ב-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 מכילה את ההצהרות האלה.

תכונות חדשות

  • הוספת ה-API setOutputImageFormat לתצורה של ניתוח תמונות. המשתמש יכול לבחור ב-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 ל-ImageAnalysis, צריך להגדיר רזולוציית יעד בגודל RECORD גם ב-ImageCapture וגם ב-ImageAnalysis. המשמעות היא שהאפליקציה מבינה בבירור את הפשרה ומעדיפה שרזולוציית התמונה ב-ImageAnalysis תהיה גבוהה יותר מאשר שרזולוציית התמונה ב-ImageCapture תהיה מקסימלית. ההגדרות של RECORD, MAXIMUM וגדלים נוספים מפורטות בכתובת 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)
  • תוקנה בעיה מסוג YuvToJpegProcessor EOFException כשמצב התוסף מופעל והמצב ImageCapture#CAPTURE_MODE_MAX_QUALITY מוגדר. (I538bd, ‏ b/192017012)

גרסה 1.1.0-alpha06

30 ביוני 2021

התכונות androidx.camera:camera-camera2:1.1.0-alpha06, androidx.camera:camera-core:1.1.0-alpha06 וגם androidx.camera:camera-lifecycle:1.1.0-alpha06 משוחררות. גרסה 1.1.0-alpha06 מכילה את ההוספות האלה.

שינויים ב-API

  • קידום ממשקי ה-API הניסיוניים של תיקון החשיפות ל-camera-core‏ (I08ee8)
  • נוספה פונקציית API‏ isFocusMeteringSupported ב-CameraInfo שמאפשרת לאפליקציות לבדוק אם הפעולה של FocusMeteringAction מסוימת נתמכת במצלמה הנוכחית. (Ib45ae, ‏ b/188606490)
  • חשיפת ה-API של getResolutionInfo כדי לספק את פרטי הרזולוציה של Preview, ‏ ImageCapture ו-ImageAnalysis. (I2b613, ‏ b/188600718)
  • שדרגנו את ממשקי ה-API הניסיוניים הבאים לממשקי API רשמיים: CameraXConfig.Builder#setAvailableCamerasLimiter(),‏ CameraXConfig.Builder#setMinimumLoggingLevel(),‏ CameraXconfig.Builder#setSchedulerHandler(),‏ CameraXConfig#getAvailableCamerasLimiter(),‏ CameraXConfig#getMinimumLoggingLevel(),‏ CameraXConfig#getCameraExecutor(),‏ CameraXConfig#getSchedulerHandler().‏ (I2ade2)
  • חשיפת הממשק CameraProvider כדי לספק גישה לקבוצת מצלמות. (I1a7b1)
  • קידום UseCaseGroup API הניסיוני לממשקי camera-core, ‏ camera-lifecycle ו-camera-video. נוספו ViewPort#getLayoutDirection, ‏ ViewPort.Builder#setLayoutDirection ו-ViewPort.Builder#setScaleType להתאמה אישית של אזור התצוגה. (I7cee8)

גרסה 1.1.0-alpha05

2 ביוני 2021

התכונות androidx.camera:camera-camera2:1.1.0-alpha05, androidx.camera:camera-core:1.1.0-alpha05 וגם androidx.camera:camera-lifecycle:1.1.0-alpha05 משוחררות. גרסה 1.1.0-alpha05 מכילה את ההצהרות האלה.

שינויים ב-API

  • הכיתה Camera2CameraFilter הוסרה. אם צריך, מומלץ לבחור מצלמה באמצעות CameraFilter ולאחזר את CameraCharacteristics או מידע אחר שקשור ל-Camera2 דרך Camera2CameraInfo. (Ib887c)
  • ממשקי ExperimentalCameraFilter API לא נמצאים יותר בשלב הניסיוני, והם הופכים לממשקי API רשמיים. אפשר להשתמש בהם בלי הסכמה מפורטת. (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 מכילה את ההוספות האלה.

תיקוני באגים

  • תוקנה דליפת זיכרון שנגרמה על ידי מספר חוטים שגולשים בו-זמנית לאותה אוסף. דליפה בזיכרון עשויה לגרום לכך שהפעילות או ה-Fragment יישמרו על ידי מכונה של תצוגה מקדימה. (I7b4b8)
  • החלפתי את ההערה @Experimental ב-@RequiresOptIn ב-APIs ניסיוניים. כדי לקרוא לממשקי API ניסיוניים, צריך להשתמש ב-androidx.annotation.OptIn במקום ב-androidx.annotation.experimental.UseExperimental שהוצא משימוש. (Iff226)
  • תיקון: כשמצלמים עם פלאש מופעל או אוטומטי, התמונות מטושטשות ב-Samsung Galaxy S7. (I30001)
  • נוספה ממשק CameraState API שיהיה חשוף דרך CameraInfo. (I75392)

גרסה 1.1.0-alpha03

24 במרץ 2021

התכונות androidx.camera:camera-camera2:1.1.0-alpha03, androidx.camera:camera-core:1.1.0-alpha03 וגם androidx.camera:camera-lifecycle:1.1.0-alpha03 משוחררות. גרסה 1.1.0-alpha03 כוללת את ההוספות האלה.

תיקוני באגים

  • פורמט פלט JPEG ל-ImageCapture#OnImageCapturedCallback כשהאפשרות 'מצבי תוספים' מופעלת. (I0d7b1)
  • תוקנה שגיאת איפוס במכשירי UMIDIGI BISON‏ (I57d9e, ‏ b/180818665)
  • תוקנה בעיה בתצוגה המקדימה של Samsung A3 ב-PreviewView. (Iacb30, ‏ b/180121821)

גרסה 1.1.0-alpha02

24 בפברואר 2021

התכונות androidx.camera:camera-camera2:1.1.0-alpha02, androidx.camera:camera-core:1.1.0-alpha02 וגם androidx.camera:camera-lifecycle:1.1.0-alpha02 משוחררות. גרסה 1.1.0-alpha02 מכילה את ההוספות האלה.

שינויים ב-API

  • הוספנו ממשק API‏ ProcessCameraProvider.getAvailableCameraInfos() לאחזור ישיר של מידע על המצלמות הזמינות. המצלמות האלה יכולות להיות כל המצלמות במכשיר, או המצלמות שנבחרו לפי הערך של CameraSelector שצוין ב-CameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector). (Ieac08)

תיקוני באגים

  • עכשיו, CameraX מנסה לפתוח את המצלמה בכוח בניסיון הראשון. כתוצאה מכך, יכול להיות ש-CameraX תגנוב את המצלמה מלקוחות אחרים של מצלמה אם לאפליקציה שלה יש עדיפות גבוהה יותר. (Iab069, ‏ b/175820568)
  • תוקנה התקלה בבדיקת Robolectric כשמשתמשים ב-setAvailableCamerasLimiter ב-CameraXConfig. (Ice307)
  • השינוי הזה מאפשר לזהות את החריגה כשעומס התמונות ב-ImageAnalysis מגיע למקסימום. לכן, במקום קריסה, יכול להיות שתבחינו בתרחישי שימוש אחרים שהם קפואים או איטיים. לדוגמה, תצוגה מקדימה קפואה או איטית. (Ic12da, b/175851631)
  • תוקן ExtensionsErrorListener כדי לדווח על שגיאות כשרק Preview או ImageCapture מקושרים. (I5ae39)
  • תוקנה נסיגה בביצועים של ImageCapture על ידי הסרת האימות של המיקום שבו נשמרת התמונה לפני צילום התמונה. אחרי ביצוע השינוי הזה, אם יעד השמירה לא חוקי, ייקח יותר זמן לקבל את תגובת הכשל כי המערכת תנסה לשמור את התמונה אחרי צילום התמונה. (I1fd4e, ‏ b/177061560)
  • תוקנה רגרסיה בביצועים של ImageCapture עם OutputFileOptions מסוג 'קובץ'. (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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • תוקנה הבעיה שבה הערך 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

בעיות מוכרות

גרסה 1.0.0-rc05

21 באפריל 2021

התכונות androidx.camera:camera-camera2:1.0.0-rc05, androidx.camera:camera-core:1.0.0-rc05 וגם androidx.camera:camera-lifecycle:1.0.0-rc05 משוחררות. גרסה 1.0.0-rc05 כוללת את ההוספות האלה.

תיקוני באגים

  • תיקון: כשמצלמים עם פלאש מופעל או אוטומטי, התמונות מטושטשות ב-Samsung Galaxy S7. (I30001)

גרסה 1.0.0-rc04

24 במרץ 2021

התכונות androidx.camera:camera-camera2:1.0.0-rc04, androidx.camera:camera-core:1.0.0-rc04 וגם androidx.camera:camera-lifecycle:1.0.0-rc04 משוחררות. גרסה 1.0.0-rc04 כוללת את ההוספות האלה.

תיקוני באגים

  • תוקנה שגיאת איפוס במכשירי UMIDIGI BISON‏ (I57d9e, ‏ b/180818665)

גרסה 1.0.0-rc03

24 בפברואר 2021

התכונות androidx.camera:camera-camera2:1.0.0-rc03, androidx.camera:camera-core:1.0.0-rc03 וגם androidx.camera:camera-lifecycle:1.0.0-rc03 משוחררות. גרסה 1.0.0-rc03 כוללת את ההצהרות האלה.

תיקוני באגים

  • תיקון שגיאת פורמט במסמך של ProcessCameraProvider#getInstance
  • תוקנה התקלה בבדיקת Robolectric כשמשתמשים ב-setAvailableCamerasLimiter ב-CameraXConfig.
  • תוקנה נסיגה בביצועים של ImageCapture על ידי הסרת האימות של המיקום שבו נשמרת התמונה לפני צילום התמונה. אחרי ביצוע השינוי הזה, אם יעד השמירה לא חוקי, ייקח יותר זמן לקבל את תגובת הכשל כי המערכת תנסה לשמור את התמונה אחרי צילום התמונה.
  • השינוי הזה מאפשר לזהות את החריגה כשעומס התמונות ב-ImageAnalysis מגיע למקסימום. לכן, במקום קריסה, יכול להיות שתבחינו בתרחישים אחרים לדוגמה שבהם התצוגה המקדימה קופאת או איטית. לדוגמה, תצוגה מקדימה קפואה או איטית.
  • תוקנה זמנית לנתוני תמונות פגומים לסירוגין בקובצי JPEG במצלמה האחורית של SM-G930T. (I52001, ‏ b/159831206)
  • השינוי הזה מאפשר לזהות את החריגה כשעומס התמונות ב-ImageAnalysis מגיע למקסימום. לכן, במקום קריסה, יכול להיות שתבחינו בתרחישי שימוש אחרים שהם קפואים או איטיים. לדוגמה, תצוגה מקדימה קפואה או איטית. (Ic12da, ‏ b/175851631)
  • תוקנה הבעיה שבה הבדיקה של Robolectric נכשלה כשמשתמשים ב-setAvailableCamerasLimiter ב-CameraXConfig. (Ice307)
  • תוקנה נסיגה בביצועים של ImageCapture על ידי הסרת האימות של המיקום שבו נשמרת התמונה לפני צילום התמונה. אחרי ביצוע השינוי הזה, אם יעד השמירה לא תקין, ייקח יותר זמן לקבל את תגובת הכשל כי המערכת תנסה לשמור את התמונה אחרי צילום התמונה. (I1fd4e, ‏ b/177061560)
  • תוקנה נסיגה בביצועים של ImageCapture עם OutputFileOptions מסוג 'קובץ'. (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 של ההערה הניסיונית הוצאו משימוש כדי לספק תאימות ל-Kotlin. הוא הוחלף בהערה RequiresOptIn, והכלי לזיהוי שגיאות בקוד ב-Java עודכן כך שיתמוך גם בהערה החדשה ב-Kotlin וגם בגרסה החדשה של androidx. (I52495, ‏ b/151331381)

Camera-Camera2 גרסה 1.0.0-beta11

14 באוקטובר 2020

androidx.camera:camera-camera2:1.0.0-beta11 משוחרר. גרסה 1.0.0-beta11 מכילה את ההצהרות האלה.

תכונות חדשות

  • תמיכה ב-CONTROL_ZOOM_RATIO API של Android 11 לזום במכשירי Android מגרסה 11 ואילך שמכילים CONTROL_ZOOM_RATIO_RANGE תקין. (I62cc6)

תיקוני באגים

  • תוקנה בעיית NumberFormatException שארעה כאשר מזהה המצלמה הוא מזהה מצלמה שאינו מספר שלם. (Ib2228)
  • שיפור זמן האחזור של טעינה ראשונית של CameraX ושל bindToLifecycle‏ (I61dc5)
  • כדי ליצור תרחישי שימוש, לא צריך לאתחל את CameraX. כל ההגדרות הספציפיות להטמעה מוגדרות ב-UseCase אחרי שהוא מצורף למכונה של מצלמה, שה-API הציבורי שלה הוא ProcessCameraProvider.bindToLifecycle(). (Ia5411)
  • <UseCase>.getTargetRotation() מחזירה את הערך Surface.ROTATION_0 אם היא נקראת לפני שמצרפים אותה למכונה של Camera, אלא אם הוגדר targetRotation ב-Builder או ב-UseCase. (I80fcd)

Camera-Core גרסה 1.0.0-beta11

14 באוקטובר 2020

androidx.camera:camera-core:1.0.0-beta11 משוחרר. גרסה 1.0.0-beta11 מכילה את השמירות האלה.

תכונות חדשות - תמיכה ב-Android 11 CONTROL_ZOOM_RATIO API לזום במכשירי Android 11 ואילך שמכילים CONTROL_ZOOM_RATIO_RANGE תקין. (I62cc6)

תיקוני באגים

  • תוקנה בעיית NumberFormatException שארעה כאשר מזהה המצלמה הוא מזהה מצלמה שאינו מספר שלם. (Ib2228)
  • כדי ליצור תרחישי שימוש, לא צריך לאתחל את CameraX. כל ההגדרות הספציפיות להטמעה מוגדרות ב-UseCase אחרי שהוא מצורף למכונה של מצלמה, שה-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

  • תוקן באג שבו אזור התצוגה סומן כ-non-null ב-UseCaseGroup. המפתחים צריכים להיות מסוגלים ליצור אזור תצוגה בלי להגדיר אזור תצוגה. (Ie3d2e)
  • נוספו ממשקים ניסיוניים ל-ExposureCompensation (If96c7)
  • מתן הרשאה לסיבוב שרירותי של היעד בתצוגה המקדימה. פרטי הטרנספורמציה מחושבים ומוחזרים למשתמש בזמן אמת באמצעות קריאה חוזרת חדשה של TranformationInfoListener. (I21470)

תיקוני באגים

  • תוקנה בעיה שבה הפלאש לא כבוי במכשירים מסוימים. הבעיה מתרחשת כשמצב הפלאש מוגדר ל-FLASH_MODE_ON כדי לצלם תמונה, והוא משתנה ל-FLASH_MODE_OFF כשהפלאש מופעל. התופעה דומה להפעלת מצב פנס. (Ib4451, ‏ b/162568128)
  • כאשר אפקט התוסף מופעל וההטמעה של ספריית הספק צריכה לבצע תהליך מיוחד על פני הפלט, מערכת Android מאלצת את 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)
  • תוקנה בעיה בקבוצת הגדלים של יחס הגובה-רוחב ברזולוציה אוטומטית, שבה נבחר גודל 16:9 mod16‏ (864x480) כשהגדרת רזולוציית היעד היא 2016x1080 ויש גודל 16:9 אחר נתמך של 1920x1080. (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 שלא מחזיר אובייקט Application מ-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 כשמבטלים את הקישור של תרחישי שימוש. (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 בכיתה Application של האפליקציה. (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)
  • האתחול האוטומטי מתקן את הבעיה כשמשתמשים באפליקציה במכשיר שמשתמש ב-pseudo-locale. (I3bef3, ‏ b/154767663)
  • יומן השגיאות שקשור לתרחיש לדוגמה מנותק הומר ליומן ניפוי באגים ב-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)
  • האתחול האוטומטי מתקן את הבעיה כשמשתמשים באפליקציה במכשיר שמשתמש ב-pseudo-locale. (I3bef3, ‏ b/154767663)
  • תוקנה בעיה שבה התמונה שנלקחה הייתה כהה מדי לפעמים, למרות שהפלאש הופעל. (I5d9fa, ‏ b/149729613)
  • תוקנה בעיה ב-ImageAnalysis שבה מספר קריאות ל-setAnalyzer/clearAnalyzer גרמו לכך שהמנתח לא קיבל תמונות לניתוח. (I6169f, ‏ b/151605317, ‏ b/153514544)
  • תיקון באג שבו המאגר ב-ImageProxy מ-ImageCapture לא הוחזר אחורה (I0c455, ‏ b/153249512)
  • תוקנה בעיה שבה לא תמיד נבחרה המצלמה הראשונה ברשימה הנתמכת מ-CameraManager לשימוש. (I4c624, ‏ b/153418028)
  • תוקנה קריסה לסירוגין שנגרמה בגלל שההגדרה Preview.SurfaceProvider לא משחררת את שטח התצוגה שהתבקש בעבר. “java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”‏ (I8e4e7, ‏ b/155936225)

Camera-Camera2 גרסה 1.0.0-beta03

15 באפריל 2020

androidx.camera:camera-camera2:1.0.0-beta03 משוחרר. גרסה 1.0.0-beta03 מכילה את ההצהרות האלה.

תיקוני באגים

  • תיקונים שתומכים בהשקה של camera-core

Camera-Core גרסה 1.0.0-beta03

15 באפריל 2020

androidx.camera:camera-core:1.0.0-beta03 משוחרר. גרסה 1.0.0-beta03 מכילה את ההצהרות האלה.

תיקוני באגים

  • תוקנה רגרסיה מ-beta03 שבה קריאה ל-bindToLifecycle() עם אפס UseCases גורמת להשלכת חריגה. כך לא ניתן היה לאחזר 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)
  • כבר אין צורך בסדר מפורש של יחסי התלות של CameraX ב-build.gradle כדי להשתמש בהטמעה שמוגדרת כברירת מחדל של CameraX/Camera2. במקרים שבהם צריך להצהיר על יחסי תלות מחמירים, עכשיו אפשר לכלול את כל יחסי התלות של CameraX בקובץ ה-build. (I46e88)
  • תוקנה בעיה ב-IllegalArgumentException במכשירים שבהם גודל המסך קטן מ-640x480. (Ife3f2, ‏ b/150506192)
  • תוקנה הבעיה ב-bindToLifecycle כך שהיא תשנה את UseCase רק אם הקישור יתבצע בהצלחה. בעבר, כשהתרחיש bindToLifecycle נקרא כדי לבצע חישובי רזולוציה, התרחיש מעודכן. עכשיו אין צורך לעדכן את תרחיש השימוש כדי לבצע את החישובים (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 נקרא כדי לבצע חישובי רזולוציה, התרחיש מעודכן. עכשיו אין צורך לעדכן את תרחיש השימוש כדי לבצע את החישובים (I78d9e)
  • תוקנה בעיה שבה סשן הצילום של תרחיש השימוש Preview לא התעדכן כששטח התצוגה המקדימה השתנה אחרי קריאה ל-Preview.setSurfaceProvider() יותר מפעם אחת.

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 כדוגמה הקנונית. (Ia3bec)
  • השם של Preview.PreviewSurfaceProvider שונה ל-Preview.SurfaceProvider. ב-SurfaceProviders, המפתחים כבר לא צריכים ליצור 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

  • שם הפרמטר SurfaceOrientedMeteringPointFactoryuseCaseForSurface השתנה ל-useCaseForAspectRatio, ומסמכי העזרה הורחבו.
  • השיטות FocusMeteringAction.Builder.from() מוחלפות ב-constructors‏ FocusMeteringAction.Builder().
  • הוסר DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float). באפליקציות צריך להשתמש ב-constructor שמקבל פרמטר Display ומעביר את התצוגה הנוכחית.
  • שיפורים ב-Javadoc לממשקי ה-API של התמקדות ומדידה לגבי הדגלים MeteringMode ו-3A, ושימוש בפרמטר Display.
  • הרחבנו את מאמרי העזרה של setZoomRatio ו-setLinearZoom.

תיקוני באגים

  • תוקנו בעיות שקשורות לסגירה ולפתיחה של מצלמות, שהובילו לכישלון בבדיקת התנאי המקדים.
  • תוקן ConcurrentModificationException שעלול היה להתרחש כשמשתמשים בממשקי API של זרקור וזום.
  • תוקנה בעיה שבה המערכת בוחרת עכשיו רזולוציות שקרובות יותר לרזולוציה המבוקשת כשזמין גודל של ממדים במודול 16.
  • ממשקי ה-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 interop. אם האפשרות המבוקשת לא נתמכת, הסשן לא יופעל ותופיע שגיאה כמו זו: 09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination

תיקוני באגים

  • תוקנה בעיה שבה מסך התצוגה המקדימה היה שחור אחרי סיבוב או החלפת המצלמה ברמות API 21 ו-22.

שינויים ב-API

  • ניסיוני: נוספה דרך של camera2 interop לחילוץ מזהה המצלמה.

Camera-Core גרסה 1.0.0-alpha08

18 בדצמבר 2019

androidx.camera:camera-core:1.0.0-alpha08 משוחרר. גרסה 1.0.0-alpha08 מכילה את ההוספות האלה.

בעיות מוכרות

  • באפליקציות שמשתמשות ב-PreviewView או ב-CameraView, ייתכן שהתצוגה המקדימה תהיה ביחס גובה-רוחב שגוי. זה קורה אחרי השהיה או המשך של הפעלה במכשירים מסוימים עם תמיכה מלאה, כמו Pixel2.

תיקוני באגים

  • עדכנו את המסמכים של FocusMeteringAction ו-CameraControl.
  • הטמענו את TorchControl עבור enableTorch() ו-getTorchState().

שינויים ב-API

  • הוסתרו הגדרות IntDef והערכי קבוע של IntDef הועברו מחוץ להגדרת IntDef.
  • rotationDegrees הועבר מכיתה OnImageCaptureCallback לכיתה ImageInfo.
  • rotationDegrees הועבר מכיתה Analyzer לכיתה ImageInfo.

Camera-Camera2 גרסה 1.0.0-alpha07

4 בדצמבר 2019

androidx.camera:camera-camera2:1.0.0-alpha07 משוחרר. גרסה 1.0.0-alpha07 של camera-camera2 מכילה את ההצהרות האלה

  • Camera2Config זמין עכשיו לשימוש עם אתחול והגדרה של הטמעה שמבוססת על Camera2 ל-CameraX. פרטים נוספים על השימוש באפשרות הזו במהלך האיפוס מופיעים בקטע camera-core של הערות המוצר.
  • הפונקציונליות של יכולת הפעולה ההדדית של camera2 מסומנת עכשיו כניסיונית והועברה לחבילה נפרדת, androidx.camera.camera2.interop.

Camera-Core גרסה 1.0.0-alpha07

4 בדצמבר 2019

androidx.camera:camera-core:1.0.0-alpha07 משוחרר. גרסה 1.0.0-alpha07 של camera-core מכילה את ההצהרות האלה

שימו לב: יש כמה שינויים משמעותיים בגרסה הזו של אלפא, כי אנחנו מתכוננים להשקת גרסת הבטא. מומלץ לבדוק את השינויים ולשתף משוב בקבוצת Google של CameraX. מפתחים שמשתמשים ב-CameraX באפליקציות שמוצגות ב-Play Store מומלצים להמתין עד לפרסום הגרסה הרשמית של גרסת הבטא לפני שמשדרגים את הספרייה באפליקציות.

שינויים ב-API

  • חשוב: תהליך האיפוס של CameraX השתנה. באפליקציות צריך להטמיע את CameraXConfig.Provider ולהשתמש ב-Camera2Config שמוגדרת כברירת מחדל על ידי androidx.camera.camera2. שימוש טיפוסי הוא:

    import androidx.camera.camera2.Camera2Config
    import androidx.camera.core.CameraXConfig
    
    public class MyCameraXApplication : Application(),  CameraXConfig.Provider {
        override fun getCameraXConfig(): CameraXConfig {
                return Camera2Config.defaultConfig(this)
        }
    }
    
  • הכיתה CameraX הוסרה. הערכים bindToLifecycle(),‏ unbind(),‏ unbindAll(),‏ isBound() ו-hasCamera() שסופקו בעבר על ידי קריאה לכיתה CameraX זמינים עכשיו דרך ProcessCameraProvider.

  • מופע של ProcessCameraProvider לכל תהליך מתקבל באופן אסינכרוני באמצעות השיטה הסטטית ProcessCameraProvider.getInstance(), שמחזירה עתיד שניתן להאזנה, שמספק את ProcessCameraProvider בסיום. כאן הוא מוצג ב-onCreate() לשימוש טיפוסי. אפשר לבצע קריאות ל-getInstance() בשלב מאוחר יותר במחזור החיים של הפעילות כדי לדחות את זמן האחזור של האתחול למועד מאוחר יותר (למשל, כשפעולת משתמש פותחת ממשק משתמש של מצלמה).

    import androidx.camera.lifecycle.ProcessCameraProvider
    import com.google.common.util.concurrent.ListenableFuture
    
    class MainActivity : AppCompatActivity() {
       private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider>
       override fun onCreate(savedInstanceState: Bundle?) {
           cameraProviderFuture = ProcessCameraProvider.getInstance(this);
      }
    
  • אפשר להוסיף מאזין ל-ListenableFuture שמוחזרת על ידי getInstance(). כך אפשר לאחזר את ספק המצלמה מה-Future בלי חסימה ב-Future.get()

    cameraProviderFuture.addListener(Runnable {
      val cameraProvider = cameraProviderFuture.get()
      cameraProvider.bindToLifecycle(...)
    }, ContextCompat.getMainExecutor(this))
    
  • בחירת המצלמה מתבצעת עכשיו באמצעות בורר מצלמות, במקום לפי תרחיש שימוש

    val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
    
  • CameraProvider.bindToLifecycle מקבל את הבעלים של מחזור החיים, את בורר המצלמה ואת תרחישי השימוש, שמקושרים לאחר מכן לבעלים של מחזור החיים הנתון ומופעלים במצלמה שנבחרה.

    cameraProvider.bindToLifecycle(this as LifecycleOwner,
           cameraSelector, preview, imageAnalysis)
    
  • הכיתות 'Config' של תרחיש לדוגמה יוסרו. במקום זאת, אפשר ליצור תרחישים לדוגמה ישירות ולהגדיר אפשרויות בכל כלי ליצירת תרחישים לדוגמה. לדוגמה:

    preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
    
  • תרחיש לדוגמה של תצוגה מקדימה עודכן כדי לאפשר שימוש בממשק שנוצר ומנוהל על ידי האפליקציה, כדי לוודא שהשימוש עומד בשיטות המומלצות ל-Android. מומלץ מאוד להשתמש בכיתה התצוגה PreviewView שסופקת בחבילת התצוגה של המצלמה.

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • במאמר בנושא צירוף משטח מנוהל על ידי אפליקציה מוסבר איך עושים את זה. במקרים כאלה, האפליקציה מנהלת את מחזור החיים של הממשק.

  • חשוב: בהטמעה של שיטת הניתוח ImageAnalysis, צריך לקרוא ל-image.close() בתמונות שהתקבלו כשמסיימים להשתמש בהן. אחרת, יכול להיות שלא יתקבלו תמונות חדשות או שהמצלמה תתעכב, בהתאם להגדרת לחץ החזרה. פרטים נוספים זמינים במסמכי העזרה.

  • ImageAnalysis ImageReaderMode השתנה לשיטת בקרת לחץ intdef.

  • ImageProxy.getImage() מסומן כניסוי. באפליקציות צריך להוסיף הערות לגבי השימוש, לדוגמה באמצעות @androidx.camera.core.ExperimentalGetImage

  • הדרישה להוספת הערה UIThread ל-Analyzer הוסרה.

  • הפונקציה ImageAnalysis.clearAnalyzer() מתווספת כדי להסיר מנתח.

  • השם של רכיבי ההאזנה עם יותר מ-method אחד השתנה ל-Callback:

    • ImageCapture.OnImageCapturedListener נקרא עכשיו ImageCapture.OnImageCapturedCallback
    • ImageCapture.OnImageSavedListener נקרא עכשיו ImageCapture.OnImageSavedCallback
    • VideoCapture.OnVideoSavedListener נקרא עכשיו VideoCapture.OnVideoSavedCallback
  • Enums השתנו ל-IntDef

  • נוספו פקדים לשינוי מרחק התצוגה:

    • CameraControl.setLinearZoom()
    • CameraControl.setZoomRatio()
    • CameraInfo.getLinearZoom()
    • CameraInfo.getMaxZoomRatio()
    • CameraInfo.getZoomRatio()
  • CameraInfo.hasFlashUnit() נוסף כדי לקבוע אם יש חומרה של פלאש/פנס.

  • CameraInfo.isFlashAvailable() הוסר. הפונקציה 'פנס' מבטלת את פונקציית הפלאש. פרטים נוספים מופיעים במאמרי העזרה.

  • שדות ImageCapture.Metadata מוחלפים ב-accessors של get/set/is.

  • הפונקציות startFocusMetering ו-cancelFocusMetering מחזירות עכשיו את הערך ListenableFutures, שמייצג את הפעולה האסינכרונית של הקריאה.

  • MeteringPoints פועלים עכשיו כמקורות לפעולות של מדידה, והם מיוצרים על ידי מפעלים. באפליקציות צריך להשתמש במפעלים הקיימים במקום במפעלים מותאמים אישית.

בעיות שתוקנו

  • תוקנה בעיה בצילום תמונה לאחר חזרה לפעולה (אחרי שההשהיה הקודמת גרמה לצילום תמונות בהמתנה להשלמה).
  • בעיה ידועה: הפונקציה CameraControl.enableTorch() תקינה, אבל הערך ListenableFuture<Void> שמוחזר הוא תמיד complete(success) עתידי מיידי, גם אם אין יחידת פלאש. בגרסאות עתידיות הבעיה הזו תיפתר וההתנהגות הסופית תהיה: כשאין יחידת Flash, enableTorch(true) נכשל מיד (לא נשלח בקשה אל CaptureSession) ו-TorchState נשאר במצב מושבת.
  • בעיה ידועה: הפונקציות startFocusAndMetering ו-cancelFocusAndMetering מתחילות ומבטלות את המדידה של המיקוד, אבל מחזירות ערך completed (success) עתידי מיידי שלא מייצג את ההתנהגות המתועדת. הערך של FocusMeteringResult מ-ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering() הוא תוצאה מזויפת ש-isFocusSuccessful() והוא תמיד 'false', בניגוד להתנהגות המתוכננת והמתועדת.
  • בעיה ידועה: אנחנו מפתחים מפעל של נקודות מדידה לשימוש עם אירועי מגע מסוג 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 של הגדרות התרחיש לדוגמה, והוא מחזיר את יחס הגובה-רוחב שאליו מכוון הפלט של התרחיש לדוגמה.
  • השיטה setTargetAspectRatio(Rational aspectRatio) של ImageCapture שונתה ל-setTargetAspectRatioCustom(Rational aspectRatio). כשהיא מוגדרת, הפלט של ImageCapture ייחתך בהתאם.

ממשקי API של Executor

  • הפונקציות הבאות מקבלות פרמטר של מנהל משימות, שמאפשר לאפליקציה לקבוע באיזה מנהל משימות הפונקציה תפעל.
    • Preview.setOnPreviewOutputUpdateListener() API. אם המבצע לא נמצא בפונקציה הזו, היא מתבצעת בשרשור הראשי.
    • Preview.setOnPreviewOutputUpdateListener
    • FocusMeteringAction.Builder.setAutoFocusCallback
    • ImageAnalysis.setAnalyzer
    • ImageCapture.takePicture
    • CameraView.takePicture
    • CameraView.startRecording
    • VideoCapture.startRecording

הוספנו את CameraInfo עם ממשקי ה-API של בדיקת הזמינות של הפלאש ושל סיבוב החיישן

  • נוספו CameraInfo ו-method‏ getCameraInfo, שמאפשרים לאפליקציות לבדוק אם יש עדשה שפונה ל-CameraInfo ואם יש פלאש במצלמה הזו. לדוגמה:

    try {
        CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing);
        LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable();
        flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE);
    } catch (CameraInfoUnavailableException e) {
        Log.w(TAG, "Cannot get flash available information", e);
        flashToggle.setVisibility(View.VISIBLE);
    }
    
  • צירפנו את CameraInfo.getSensorRotationDegrees() למרחב המשותף. הוא מספק את כיוון חיישן המצלמה ביחס לכיוון הטבעי של המכשיר, או, לנוחות, ביחס לכיוון שמתואר על ידי סיבוב של משטח (שמתואר ביחס לכיוון הטבעי).

שינויים ב-API ותיקוני באגים

  • יחסי גובה-רוחב: בכל תרחיש לדוגמה, האפליקציות צריכות להפעיל רק אחת מהפונקציות setTargetResolution() או setTargetAspectRatio(). קריאה לשניהם באותו ה-builder מחזירה שגיאה.
    • באופן כללי, מומלץ להשתמש ב-setTargetAspectRatio() בהתאם לעיצוב של ממשק המשתמש של האפליקציה. הפתרונות הספציפיים מבוססים על תרחיש לדוגמה. לדוגמה, התצוגה המקדימה היא ברזולוציות שדומות לרזולוציות המסך, וצילום התמונות מספק תמונות סטילס ברזולוציה גבוהה. מידע נוסף זמין בטבלה של הפתרונות האוטומטיים.
    • משתמשים ב-setTargetResolution() במקרים ספציפיים יותר, למשל כשדרושות רזולוציות מינימום (כדי לחסוך בזמן חישוב) או רזולוציות מקסימום (לעיבוד פרטים).
  • Executor API: הקריאה setCallbackHandler() הוסרה מממשקי ה-API להגדרת תרחישי שימוש. במקום זאת, אפליקציות יכולות להגדיר את המבצע כפרמטר בממשקי API שונים שמגדירים קריאה חוזרת (callback).
  • עדכנו את ההערות על null לפונקציות שונות.
  • תוקנה בעיה שגרמה להשלכת java.lang.IllegalStateException at Camera$StateCallback.onError בפתיחת המצלמה.
  • תוקנה בעיה שבה נבחרו רזולוציות קטנות מדי (פחות מ-640x480) כשהאפליקציה ביקשה רזולוציות גדולות יותר או רזולוציות ברירת המחדל, וכתוצאה מכך התמונה המקדימה הייתה מטושטשת או מרובעת. אפליקציות שזקוקות באופן ספציפי לרזולוציות קטנות יותר יכולות לבקש אותן באופן מפורש.
  • תוקנה בעיה שבה המצלמה הציגה מסך שחור (לא הצליחה להפעיל את המצלמה) אחרי חזרה מכוונה שהפעילה אפליקציית מצלמה אחרת.
  • תוקן באג שגרם להצגת השגיאה הבאה כשאפליקציות מופעלות או מופסקות שוב ושוב: 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: השמות של משתני השגיאה בתרחיש לדוגמה שונו:

    • השם של ImageCapture.UseCaseError השתנה ל-ImageCapture.ImageCaptureError
    • השם של VideoCapture.UseCaseError השתנה ל-VideoCapture.VideoCaptureError
  • נוספו ממשקי API של CameraControl עם ממשקי 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 למפעלים של נקודות מדידה שעוזרים לתרגם קואורדינטות של הקשות לקווי אורך ולקווים רוחב של חיישנים, על סמך כיתות תצוגה:

      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, ויכול להיות ש-getters תואמים יחזירו 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 משתמש בפשרות לגבי רזולוציה/יחסי גובה-רוחב על סמך יכולות המכשיר, כדי להתחיל סשן צילום כמטרה הראשונה שלו. לכן, יכול להיות שהבקשות המדויקות לא יתקבלו. הסיבות האפשריות לכך:

  • מכשירים שלא תומכים ברזולוציה המבוקשת
  • בעיות תאימות, למשל במכשירים מדור קודם שבהם צריך להשתמש ברזולוציות מסוימות כדי שהם יפעלו כראוי
  • במכשירים מסוימים, פורמטים מסוימים זמינים רק ביחסי גובה-רוחב מסוימים
  • העדפה ל-'nearest mod16' לקידוד JPEG או וידאו. CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP

‏CameraX יוצרת ומנהלת את הסשן, אבל תמיד צריך לבדוק את גדלי התמונות שמוחזרים בפלט של תרחיש לדוגמה בקוד ולשנות אותם בהתאם.

ביצענו כמה שינויים בהגדרת הרזולוציות ויחסי הגובה-רוחב, במטרה להבהיר את ה-API:

  • עכשיו, אם לא מגדירים יחס גובה-רוחב, המערכת מגדירה כברירת מחדל יחס גובה-רוחב של 4:3 בתרחיש לדוגמה של תצוגה מקדימה.
  • כש-CameraX מתייחס באופן פנימי לשינויים ברזולוציות וביחסי הגובה-רוחב המבוקשים על סמך יכולות המכשיר, הוא מנסה קודם לשמור על אותו יחס גובה-רוחב (כפי שנקבע על ידי כל אחת מהקריאות setTargetAspectRatio או setTargetResolution).
  • גרסת 'Nearest mod16' של הרזולוציה נחשבת לאותה יחס גובה-רוחב.

מצב ללא חסימה של ImageAnalysis

  • ההתנהגות של ImageReaderMode.ACQUIRE_LATEST_IMAGE היא עכשיו לא חוסמת. הוא אוסף את התמונה האחרונה בתור, אבל משמיד תמונות שלא בשימוש באופן קבוע כדי למנוע חסימה של צינור עיבוד הנתונים של המצלמה.
  • הניתוח יכול לאחסן תמונה אחת ללא הגבלת זמן בלי לעכב את צינור עיבוד הנתונים.
  • אם האפליקציה מספקת מבצע שמחסם לאחר מכן, תרחיש לדוגמה של ImageAnalysis נחסם.
  • ה-executor שמוגדר כברירת מחדל פועל באופן פנימי כ-executor לא חוסם.

תיקוני באגים

  • תוקנו בעיות של זמן קצוב לתפוגה בהמתנה להתכנסות של 3A בזמן צילום תמונות במכשירים ללא התכונות 'מיקוד אוטומטי', 'חשיפה אוטומטית' ו'איזון לבן אוטומטי'
  • תוקנה בעיה בצילום מהיר של תמונות באמצעות ImageCapture. תיקון השגיאה: java.lang.IllegalStateException: maxImages (2) has already been acquired
  • תוקנה בעיה שהתרחשה כאשר לא התבצעה קריאה ל-setLensFacing בתרחיש לדוגמה, וכתוצאה מכך התקבל java.lang.IllegalArgumentException: Unable to get camera ID for use case.
  • תוקנה בעיה שבה מכשיר LEGACY דרש יחס גובה-רוחב ספציפי כרזולוציית JPEG מקסימלית
  • תוקנה בעיה שקרתה כשהאפליקציה הועברה לרקע בזמן פתיחת המצלמה
  • תוקנה בעיה ב-API בגרסאות פחות מ-25, והוסרה השגיאה checkAndUpdateEglState: invalid current EGLDisplay
  • תוקנה בעיה בביטול הקישור של התצוגה המקדימה אחרי הפעלה והפעלה של תוספים
  • קובצי build של 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

  • תוקנה קריסה של Input/Output Surface לא מוגדר בפתיחה/סגירה או קישור/ביטול קישור מהירים
  • מעבר להטמעות חדשות של Futures
  • בדיקת התיקונים לצורך בדיקה חזקה יותר
  • בבדיקה של שילוב הליבה מוצג עכשיו זמן הצילום של התמונות
  • פיתוח של סוג תאימות פנימי ל-Executors
  • תזמון הבדיקה של האפליקציה לצילום תמונות ממתין להשלמת התמונה הקודמת ושיפור היציבות

תוספים

  • נוספו בדיקות לגרסאות
  • היקף בדיקה נוסף – קריאות חזרה (callbacks) של אירועי תוספים
  • שיפורים בתמונות ובמטא-נתונים שתואמים פנימית
  • תיקונים למעבר בין המצבים באפליקציית הבדיקה

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 מכילה את ההוספות האלה.

תיקוני באגים

  • תוקנה בעיה של חלוקה באפס בזמן השימוש באמולטור
  • תוקנה השגיאה NullPointerException/Surface Abandoned, שהתרחשה במכשירים מסוימים כשצילמו תמונות במהירות תוך ביטול קישור וקישור מחדש של תרחישי שימוש במהירות.
  • תוקנה בעיה פנימית כדי לוודא שעדכונים של בקשות הצילום ישפיעו על כל המשטחים באופן עקבי
  • שיפורים ביציבות כשמפעילים מחדש תרחישי שימוש במכונות אפליקציה חדשות
  • שינויים בארכיטקטורה הפנימית כדי להתכונן לתמיכה במבצעים ב-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 שלא מחזיר אובייקט Application מ-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() עם אפס UseCases גורמת להשלכת חריגה. כך לא ניתן היה לאחזר 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 מכילה את ההצהרות האלה.

תיקוני באגים

  • העדכון תומך בתיקוני הבאגים ב-artifacts‏ 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 מכילה את ההוספות האלה.

שינויים ביחסי התלות

  • עודכן לשימוש ב-androidx.camera:camera-core:1.0.0-alpha08.

Camera-Lifecycle גרסה 1.0.0-alpha01

4 בדצמבר 2019

androidx.camera:camera-lifecycle:1.0.0-alpha01 משוחרר. גרסה 1.0.0-alpha01 של camera-lifecycle מכילה את ההצהרות האלה

הערות בנושא API

  • מוסיפים את הארטיפקט של מחזור החיים של המצלמה, שמספק את הממשק LifeCycleCameraProvider, והטמעה שנקראת ProcessCameraProvider שמספקת הרבה מהפונקציות של הכיתה הקודמת של CameraX בליבה, ומתקבלת באמצעות שיטת getInstance().
  • כדי להשתמש ב-CameraX, אפליקציות צריכות לכלול את ספריית מחזור החיים של המצלמה.
  • בקטע camera-core מוסבר איך מבצעים את האינטוליזציה של CameraX באמצעות ProcessCameraProvider.

Camera-Extensions ו-Camera-View גרסה 1.0.0

גרסה 1.0.0-alpha32

15 בדצמבר 2021

androidx.camera:camera-extensions:1.0.0-alpha32 ו-androidx.camera:camera-view:1.0.0-alpha32 משוחררים. גרסה 1.0.0-alpha32 מכילה את ההוספות האלה.

שינויים ב-API

  • הוסרו הערות @RequiresApi(21) מיותרות מהממשקים או מהכיתות הפנימיים. (I8e286, b/204917951)
  • עדכון קובצי ה-API של פריט המידע שנוצר בתהליך הפיתוח (artifact) של התוספים למצלמה. (If683a, ‏ b/161377155)

תיקוני באגים

  • אסור לאפליקציה להפעיל מצבי תוספים כשמקשרים את VideoCapture. התוספים של CameraX תומכים רק ב-ImageCapture וב-Preview. עדיין אין תמיכה ב-VideoCapture. אם האפליקציה מקשרת את VideoCapture ומפעילה מצב תוסף כלשהו, תופיע הודעת השגיאה IllegalArgumentException. (I0d87b)
  • CameraSelector#filter כבר לא גורם להשלכת IllegalArgumentException כשקבוצת התוצאות ריקה. (I27804)
  • השם של ממשק ה-API ExtensionsManager#getInstance השתנה ל-getInstanceAsync כי הוא מחזיר את הערך ListenableFuture. הסיומת Async בשם הפונקציה יכולה להציג בבירור שמדובר בפונקציה אסינכררונית. (I279d2)
  • מסירים את פרמטר הרזולוציה מ-ExtensionsManager#getEstimatedCaptureLatencyRange API, כי המשתמשים לא יכולים לדעת אילו גדלים נתמכים בתרחיש לדוגמה ImageCapture, ולא יכולים להבדיל אם פרטי זמן האחזור שמוחזרים הם לגבי גודל הפלט המקסימלי של הצילום או לגבי פרמטר רזולוציית הקלט. (I74bb2)
  • מעבירים את הפרמטר CameraProvider של הפונקציות ExtensionsManager ל-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 הציבורי כדי לסנן רשימה של CameraInfos על סמך 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

  • הוצאנו את ממשק ה-API של חלון התצוגה מהסטטוס 'ניסיוני'. מסירים את ההערה הניסיונית של ה-API. (I717ea)
  • שינוי השם של CoordinateTransform#getTransform ל-CoordinateTransform#transform ועדכון JavaDoc (I864ae)

תיקוני באגים

  • תוקנה בעיה של מתיחה במצב PreviewView PERFORMANCE כשמשתמשים בו יחד עם ממשק המשתמש של Compose. (Ie1137, ‏ b/183864890)

גרסה 1.0.0-alpha26

30 ביוני 2021

androidx.camera:camera-extensions:1.0.0-alpha26 ו-androidx.camera:camera-view:1.0.0-alpha26 משוחררים. גרסה 1.0.0-alpha26 מכילה את ההצהרות האלה.

שינויים ב-API

  • מוסיפים שיטה חדשה CameraController#getTapToFocusState() שחשפה את התוצאה האחרונה של הקשה להתמקד. (Iaccb0)
  • הוספת תכונות נוספות של הליבה של המצלמה ל-CameraController: פונקציות getter/setter ליחס גובה-רוחב של יעד, רזולוציית יעד, מצב צילום, CameraControl ומבצעים מותאמים אישית. (Iea8f2)
  • מוסיפים את הכיתה RotationReceiver שמקבלת שינויים בכיוון של Surface. אפשר להשתמש בו כדי להגדיר את סיבוב היעד כשהמכשיר נמצא במצב ניצב/רוחב קבוע. (Ib278f)
  • ממשקי API ציבוריים חדשים של getEstimatedCaptureLatencyRange נחשפו בכיתה ExtensionsManager. (I6a8ec)
  • ה-ExtensionsErrorListener הוצא משימוש. בשלב זה, הממשק הזה משמש רק למעקב אחרי היעדר של Preview או ImageCapture כשמפעילים את המצבים של התוספים. כדי שהפונקציות של התוסף יפעלו כמו שצריך, אפליקציית CameraX תוסיף באופן אוטומטי תצוגה מקדימה או צילום תמונה נוספים. לאחר מכן, לא יתבצע דיווח על שגיאות דרך הממשק הזה. (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

  • ממשקי ה-API של ExperimentalCameraFilter עברו את שלב הניסוי והם מוגדרים עכשיו כממשקי API רשמיים. אפשר להשתמש בהם בלי הסכמה מפורטת. (I4bc94)
  • מוסיפים כלי שממיר קואורדינטות בין תרחישים לדוגמה. דוגמה לשימוש: טרנספורמציה של הקואורדינטות שזוהו בתרחיש לדוגמה של 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 ב-APIs ניסיוניים. כדי לקרוא לממשקי API ניסיוניים, צריך להשתמש ב-androidx.annotation.OptIn במקום ב-androidx.annotation.experimental.UseExperimental שהוצא משימוש. (Iff226)
  • תוקנה הבעיה של התצוגה המקדימה המורחבת ב-Samsung J5 Prime‏ (Ib10b6)

תוספים למצלמה ותצוגה בגרסה 1.0.0-alpha23

24 במרץ 2021

androidx.camera:camera-extensions:1.0.0-alpha23 ו-androidx.camera:camera-view:1.0.0-alpha23 משוחררים. גרסה 1.0.0-alpha23 מכילה את ההצהרות האלה.

שינויים ב-API

  • ה-CameraView הוצא משימוש. במקום זאת, צריך להשתמש ב-LifecycleCameraController. מדריך ההעברה (Idac2c)
  • נוספה הערה של FloatRange ל-setLinearZoom()‏ (I69971)

תיקוני באגים

  • תלות מוצמדת בתצוגת המצלמה שמסתמכת על ארטיפקטים של 1.0.0. שימוש ב-camera-view לא יגרום יותר לפתרון יחסי התלות של Gradle לשדרג באופן אוטומטי את camera-core, ‏ camera-camera2 ו-camera-lifecycle לגרסאות הארטיפקטים האחרונות של 1.1.0, אבל camera-view עדיין תואם לארטיפקטים האלה אם הם מוגדרים באופן מפורש לשימוש בגרסה 1.1.0. (Ic8fa1, ‏ b/181599852)
  • תוקנה בעיה בתצוגה המקדימה של Samsung A3 ב-PreviewView. (Iacb30, ‏ b/180121821)
  • תוקנה בעיה שבה לא ניתן להגדיר את בורר המצלמות לפני שמפעילים את המצלמה. (Ic8bd0)

תוספים למצלמה ותצוגה בגרסה 1.0.0-alpha22

24 בפברואר 2021

androidx.camera:camera-extensions:1.0.0-alpha22 ו-androidx.camera:camera-view:1.0.0-alpha22 משוחררים. גרסה 1.0.0-alpha22 מכילה את ההוספות האלה.

שינויים ב-API

  • מוסיפים ל-CameraController פונקציית getter של CameraInfo. (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)

גרסה 1.0.0-alpha18 של Camera-View

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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

Camera-View גרסה 1.0.0-alpha17

23 בספטמבר 2020

androidx.camera:camera-view:1.0.0-alpha17 משוחרר. גרסה 1.0.0-alpha17 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

Camera-Extensions גרסה 1.0.0-alpha16

16 בספטמבר 2020

androidx.camera:camera-extensions:1.0.0-alpha16 משוחרר. גרסה 1.0.0-alpha16 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • נוספה שיטה ב-ExtensionsManager כדי לקבל אובייקט Extensions שמשמשים להפעלה של תוספים ולשליחת שאילתות עליהם במכונות של Camera (I4fb7e)

גרסה 1.0.0-alpha16 של Camera-View

16 בספטמבר 2020

androidx.camera:camera-view:1.0.0-alpha16 משוחרר. גרסה 1.0.0-alpha16 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

שינויים ב-API

  • PreviewView#setDeviceRotationForRemoteDisplayMode() ו-PreviewView#getDeviceRotationForRemoteDisplayMode() הוסרו. שתי השיטות נועדו להתאמה אישית של סיבוב התצוגה המקדימה, כשהסיבוב הרצוי הוא לא סיבוב המסך, למשל מסך מרוחק. כדי לטפל עכשיו בכיוון התצוגה המקדימה שלא מוצגת, מגדירים את הכיוון הרצוי באמצעות Preview#setTargetRotation() ו-PreviewView#getViewPort(targetRotation) שנוסף. (Ib62cc)
  • השם של createSurfaceProvider() השתנה ל-getSurfaceProvider(). השיטה תמיד תחזיר את אותו מופע של Preview.SurfaceProvider. (Iff83c)

תיקוני באגים

  • כאשר אפקט התוסף מופעל וההטמעה של ספריית הספק צריכה לבצע תהליך מיוחד על פני הפלט, מערכת PreviewView תיאלץ להשתמש ב-TextureView. (I0c3cc)
  • מתן הרשאה לסיבוב שרירותי של היעד בתצוגה המקדימה. פרטי הטרנספורמציה מחושבים ומוחזרים למשתמש בזמן אמת באמצעות קריאה חוזרת חדשה מסוג TranformationInfoListener. (I21470)

בעיות מוכרות

  • ב-PreviewView, OnClickListener#onClick() לא מופעל כשמשתמש הקצה לוחץ על PreviewView. אירוע המגע נצרך בטעות על ידי PreviewView#onTouchEvent(). הבעיה תיפתר במהדורה הבאה.
  • אם משתמשים ב-ViewPort עם PreviewView, יכול להיות שהערך של MeteringPoint שהתקבל מ-PreviewView#getMeteringPointFactory() יהיה שגוי.

Camera-Extensions גרסה 1.0.0-alpha15

19 באוגוסט 2020

androidx.camera:camera-extensions:1.0.0-alpha15 משוחרר. גרסה 1.0.0-alpha15 מכילה את ההצהרות האלה.

תיקוני באגים

  • השיטה ExtensionsManager.init() מקבלת עכשיו פרמטר מסוג Context במקום 0 ארגומנטים. (Ife754)
  • לא אמורה להיות יותר קריסה של ההפעלה הראשונית כשמשתמשים ב-Context שלא מחזיר אובייקט Application מ-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 שמחזור החיים שלו עובר למצב DESTROYED זמן קצר אחרי הקישור. קישור של מחזורי חיים במצב 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)

גרסה 1.0.0-alpha12 של Camera-View

10 ביוני 2020

androidx.camera:camera-view:1.0.0-alpha12 משוחרר. גרסה 1.0.0-alpha12 מכילה את ההוספות האלה.

תיקוני באגים

  • מוסיפים את ה-API PreviewView#getBitmap() שמחזיר ייצוג Bitmap של התוכן שמוצג על פני השטח של התצוגה המקדימה. (I9b500, ‏ b/157659818)

Camera-Extensions גרסה 1.0.0-alpha11

27 במאי 2020

androidx.camera:camera-extensions:1.0.0-alpha11 משוחרר. גרסה 1.0.0-alpha11 מכילה את ההצהרות האלה.

גרסה 1.0.0-alpha12 של Camera-View

10 ביוני 2020

androidx.camera:camera-view:1.0.0-alpha12 משוחרר. גרסה 1.0.0-alpha12 מכילה את ההוספות האלה.

תכונות חדשות

שינויים ב-API

תיקוני באגים

  • מוסיפים את ה-API PreviewView#getBitmap() שמחזיר ייצוג Bitmap של התוכן שמוצג על פני השטח של התצוגה המקדימה. (I9b500, ‏ b/157659818)

Camera-View גרסה 1.0.0-alpha11

27 במאי 2020

androidx.camera:camera-view:1.0.0-alpha11 משוחרר. גרסה 1.0.0-alpha11 מכילה את ההצהרות האלה.

שינויים ב-API

  • מוסיפים את ה-API PreviewView#getPreviewStreamState שמאפשר לאפליקציות לבדוק אם התצוגה המקדימה מועברת בסטרימינג או לא. כש-PreviewView נמצא במצב TEXTURE_VIEW, המצב STREAMING מבטיח גם שתמונת התצוגה המקדימה תהיה גלויה. (Ic0906, ‏ b/154652477)
  • נוספה ממשק API מסוג PreviewView#setDeviceRotationForRemoteDisplayMode() כדי לספק סיבוב של המכשיר לצורך חישובי טרנספורמציה אם האפליקציה פועלת במצב תצוגה מרחוק. (I59b95, ‏ b/153514525)

תיקוני באגים

  • תוקנה בעיית העיוות בתצוגה המקדימה במצלמות FULL/LIMITED/LEVEL_3 עם Android מגרסה 7.0 ומטה. שימוש בכפייה במצב ImplementationMode#TEXTURE_VIEW כשגרסת Android היא 7.0 ואילך. (I83e30, ‏ b/155085307)
  • הפרמטר CameraInfo הוסר מ-PreviewView#createSurfaceProvider(), ו-PreviewView מאחזר אותו עכשיו באופן פנימי מ-SurfaceRequest. (If18f0, ‏ b/154652477)
  • תוקן יחס הגובה-רוחב שמוגדר כברירת מחדל ב-VideoCapture ל-16:9 ב-CameraView. (Ie6a7b, ‏ b/153237864)
  • תוקנו בעיות של מסך שחור ב-PreviewView כשמחליקים החוצה את החלק Preview ואז מחליקים חזרה ב-ViewPager2. הבעיה נפתרה גם כשמבצעים את הפעולות removeView(previewview) ואז addView(previewView). (Iab555, ‏ b/149877652, ‏ b/147354615)
  • צריך לעדכן את ה-API של CameraView#takePicture() כדי לאפשר שמירת תמונות ב-Uri וב-OutputStream. מעדכנים את אפליקציית הבדיקה כך שתשתמש ב-Uri כדוגמה הקנונית. (Ia2459, ‏ b/153607583)
  • אפשר להגדיר את סוג התצוגה הממוזערת של PreviewView מפריסת XML על ידי הגדרת המאפיין ScaleType. (I08565, ‏ b/153015659)
  • CameraView.ScaleType הוסר. במקום זאת, משתמשים ב-PreviewView.ScaleType כדי להגדיר/לקבל סוג קנה מידה באמצעות CameraView. (Ia8974, ‏ b/153014831)
  • אם עדיין אין ל-PreviewView צבע רקע, נותנים לו צבע רקע כברירת מחדל. כך, התוכן שמאחורי הווידאו לא יהיה גלוי לפני שהשידור של התצוגה המקדימה יתחיל. (I09fad)

Camera-Extensions גרסה 1.0.0-alpha10

15 באפריל 2020

androidx.camera:camera-extensions:1.0.0-alpha10 משוחרר. גרסה 1.0.0-alpha10 מכילה את ההצהרות האלה.

תיקוני באגים

  • תיקונים לתמיכה בהשקה של Camera-Core

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 מכילה את השמירות האלה.

תיקוני באגים

  • העדכון תומך בתיקוני הבאגים ב-artifacts‏ camera-camera2:1.0.0-beta02,‏ camera-core:1.0.0-beta02 ו-camera-lifecycle:1.0.0-beta02

תצוגת מצלמה גרסה 1.0.0-alpha09

1 באפריל 2020 androidx.camera:camera-view:1.0.0-alpha09 פורסם. גרסה 1.0.0-alpha09 מכילה את השמירות האלה.

בעיות מוכרות

  • יכול להיות שהשימוש ב-ImplementationMode.SURFACE_VIEW עם PreviewView לא יפעל טוב במכשירים מסוימים. הסיבה לכך היא ש-SurfaceView שמשמש לתצוגה המקדימה מבטל את התוקף של פני השטח שלו כשמחזור החיים של החלון שבו הוא נמצא מושהה. כשהוא מופעל מחדש, המצלמה נפתחת מחדש ועשויה לנסות להמשיך את התצוגה המקדימה לפני שפני השטח של SurfaceView יהיו תקפים שוב. בינתיים, כדאי להשתמש ב-ImplementationMode.TEXTURE_VIEW.

שינויים ב-API

  • השם של PreviewView.setImplementationMode() השתנה ל-PreviewView.setPreferredImplementationMode().
  • השם של PreviewView.getImplementationMode() השתנה ל-PreviewView.getPreferredImplementationMode().
  • PreviewView.getSurfaceProvider() הוחלף ב-PreviewView.createSurfaceProvider(CameraInfo), שמקבל מופע nullable של CameraInfo שמשמש לאופטימיזציה של התצוגה המקדימה באמצעות ImplementationMode.SURFACE_VIEW בכל הזדמנות אפשרית. אם מעבירים מופע null או אם מגדירים את מצב ההטמעה המועדף כ-ImplementationMode.TEXTURE_VIEW, המערכת משתמשת ב-ImplementationMode.TEXTURE_VIEW באופן פנימי.
  • דוגמת הקוד הבאה מראה איך תרחיש לדוגמה של תצוגה מקדימה היה משמש בעבר עם 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(), כלומר צריך להפעיל אותה מה-thread הראשי. (I192f3)

  • נוספה PreviewView.setScaleType() שמאפשרת להגדיר את סוג התצוגה המקדימה. אפשר להזין בו אחד מהערכים ב-PreviewView.ScaleType, והערך שמוגדר כברירת מחדל הוא PreviewView.ScaleType.FILL_CENTER.

  • ההוספה של PreviewView.getScaleType() התבצעה.

  • הוסרה התמיכה בהגדרת מצב ההטמעה של PreviewView בפריסה של XML באמצעות המאפיין implementationMode.

  • מוסיפים את ה-API של createMeteringPointFactory() ל-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. אם רוצים שהתצוגה המקדימה של המצלמה תכסה חלק של ממשק המשתמש (למשל, את כל המסך), לא צריך להגדיר את הגודל של PreviewView לערך קבוע או לאפשר לו לעטוף את התוכן (למשל, באמצעות המאפיין wrap_content). הפעולות האלה עלולות לגרום לכך שהתצוגה המקדימה של המצלמה תכסה רק חלק מ-PreviewView (אם גודל הפלט של חיישן המצלמה קטן יותר). במקום זאת, צריך להגדיר את PreviewView בגודל של האב שלו (לדוגמה, באמצעות המאפיין match_parent). (1204869)

תיקוני באגים

  • עדכנו את ImageCapture כדי לאפשר שמירת תמונות ב-Uri וב-OutputStream. שילוב של שיטות takePicture עם עומס יתר לשיטה אחת. אפליקציית הבדיקה עודכנה כך שתשתמש ב-Uri כדוגמה הקנונית. (Ia3bec)
  • השם של Preview.PreviewSurfaceProvider שונה ל-Preview.SurfaceProvider. ב-SurfaceProviders, המפתחים כבר לא צריכים ליצור 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.

גרסה 1.0.0-alpha06 של Camera-View

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 מכילה את ההצהרות האלה.

תיקוני באגים

  • העדכון תואם לממשקי ה-API הפנימיים של Camera Core.

גרסה 1.0.0-alpha05 של Camera-View

18 בדצמבר 2019

androidx.camera:camera-view:1.0.0-alpha05 משוחרר. גרסה 1.0.0-alpha05 מכילה את ההצהרות האלה.

בעיות מוכרות

  • יכול להיות שיחס הגובה-רוחב יהיה שגוי כשמשתמשים ב-PreviewView (b/146215202).

תכונות חדשות

  • הטמענו סוג חדש שנקרא PreviewView.TextureViewImplementation שמסנכרן את מחזור החיים של SurfaceTexture עם השימוש של המצלמה בשטח של TextureView.

Camera-Extensions גרסה 1.0.0-alpha04

4 בדצמבר 2019

androidx.camera:camera-extensions:1.0.0-alpha04 משוחרר. גרסה 1.0.0-alpha04 של camera-extensions מכילה את ההצהרות האלה

שינויים ב-API

  • בדיקת הזמינות וההפעלה של תוסף כוללת עכשיו את הפרמטר CameraSelector כפרמטר קלט. זה צריך להיות אותו CameraSelector שמשמש לקישור של תרחיש לדוגמה.

    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 מספקת דרך קלה להציג את הפלט של תרחיש לדוגמה 'תצוגה מקדימה' באפליקציה.
  • אפשר לכלול את PreviewView בפריסה:

    <androidx.camera.view.PreviewView
      android:id="@+id/preview_view"
       />
    
  • PreviewView מספק PreviewSurfaceProvider כדי לחבר בקלות תרחיש לדוגמה של גרסת Preview

    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.

תכונות חדשות

  • נוספה פונקציית איפוס הקשר (Context initializer) לתוספים. הגרסה של התוספים הועלתה ל-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

  • ספרייה חדשה לתוספים עתידיים למצלמה, שמאפשרת לגשת לאפקטים במכשירים נתמכים. הספרייה הזו נמצאת עדיין בשלבי פיתוח.
  • סוג חדש של תצוגה במצלמה. הספרייה הזו נמצאת בשלבי פיתוח.