בטבלה הזו מפורטים כל פריטי המידע שנוצרו בתהליך הפיתוח (Artifact) בקבוצה androidx.camera
.
פריט מידע שנוצר בתהליך פיתוח (Artifact) | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסה אלפא |
---|---|---|---|---|
camera-camera2 | 1.4.0 | - | - | 1.5.0-alpha03 |
camera-core | 1.4.0 | - | - | 1.5.0-alpha03 |
camera-compose | - | - | - | 1.5.0-alpha03 |
אפקטים למצלמה | 1.4.0 | - | - | 1.5.0-alpha03 |
camera-extensions | 1.4.0 | - | - | 1.5.0-alpha03 |
שאילתה-שילוב של תכונות מצלמה | - | - | - | 1.5.0-alpha03 |
camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha03 |
camera-lifecycle | 1.4.0 | - | - | 1.5.0-alpha03 |
camera-mlkit-vision | 1.4.0 | - | - | 1.5.0-alpha03 |
camera-view | 1.4.0 | - | - | 1.5.0-alpha03 |
camera-viewfinder | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
camera-video | 1.4.0 | - | - | 1.5.0-alpha03 |
בדיקת המכשיר
אנחנו בודקים את 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-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.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) - שיפור החלק של שינוי מרחק התצוגה על ידי שינוי הגדרות הזום ב-framework במכשירים נתמכים.
גרסה 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. הפורמט תואם לאחור בפורמט SDR JPEG ותומך ברינדור תוכן ב-HDR. המשמעות היא שבאפליקציות או במכשירים ישנים יותר, התמונות נראות בצורה חלקה כמו JPEG רגיל. באפליקציות ובמכשירים שעודכנו כדי לתמוך באופן מלא בפורמט, התמונות יופיעו כ-HDR. (I5de50) - הוספה של
PhysicalCameraInfo
ב-CameraInfo
כדי לבצע שאילתה על מידע על המצלמה הפיזית ולהוסיף מזהה/מקלט פיזי של המצלמה ב-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 של ה-APICameraEffect
שמאפשרות לבצע מניפולציות על הפלט של המצלמה בצורה יעילה. OverlayEffect
: לציור שכבות-על באמצעות Canvas API של Android. כך האפליקציה יכולה להחיל סימן מים או להדגיש אובייקטים שזוהו בפלט של המצלמה.- ממשקי API של
DynamicRange
לתרחיש לדוגמה של תצוגה מקדימה: עכשיו אפשר להגדיר את הטווח הדינמי בתרחיש לדוגמה של תצוגה מקדימה, בנפרד מתרחיש לדוגמה של Video. כך אפשר להשתמש בטווחים דינמיים של 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 בצד ה-framework ותסנכרן את התזמון עם שינויים בממשק המשתמש של האפליקציה לפי הצורך (למשל הפעלה מראש של הקלטה אוטומטית ב-AE לאחר שינוי הצבע/הבהירות של מסך האפליקציה). האפליקציות יצטרכו להוסיף את ההטמעות שלהן בצד ממשק המשתמש רק בממשק
ScreenFlashUiControl
שסופק ל-CameraX. (I8ae84) - הוספנו תמיכה בהטמעה של תכונת הבהוב המסך בצד ממשק המשתמש ב-CameraX. אפליקציות יוכלו לקבל הטמעה בסיסית של
ImageCapture.ScreenFlashUiControl
מ-PreviewView
או מה-ScreenFlashView
שנוסף לאחרונה, שיוסיף תצוגה של שכבת-על בצבע יחיד ויגביר את בהירות המסך למקסימום במהלך צילום תמונות באמצעות הבהוב המסך. (I1810e)
שינויים ב-API
- תמיכה בתכונות חדשות של תוספים(צפייה לאחר מכן ותהליך הצילום): נוספו ממשקי API של
ImageCapture#getImageCaptureCapabilities()
לאפליקציות כדי להריץ שאילתות על היכולות של הצפייה לאחר הצפייה בסרטון ולתעד את הקריאה החוזרת של התקדמות התהליך. אפליקציות יכולות להפעיל את התצוגה לאחר הצפייה באמצעות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. כתוצאה מכך, גודל הקובץ של התמונות שצולמו גדול מאוד. נתוני המרווח הפנימי המיותרים מסוג 0 יוסרו כדי שקובצי תמונה יהיו בגדלים רגילים. (I01afc, b/288828159)
- השבתה של התמיכה ב-
ImageAnalysis
ב-Pixel כדי למנוע באג ב-Pixel שמחזיר בטעות גדלים לא ריקים שלImageAnalysis
. (I7ec31) - תוקנה בעיית ביצועים שבה טעינת המעבד (CPU) וצריכת החשמל עלו כשהתוספים הופעלו. (Ibdccb)
- הוספת Snapdragon 480 ל-
CameraUseInconsistentTimebaseQuirk
. התיקון הזה פותר בעיה ב-Android 12 במכשירים עם ערכת השבבים הזו, שבה האודיו בהקלטות מושהה למשך הזמן שבו המכשיר נמצא במצב השהיה. (I58010)
גרסה 1.4.0-alpha02
18 באוקטובר 2023
androidx.camera:camera-*:1.4.0-alpha02
משוחרר. גרסה 1.4.0-alpha02 מכילה את ההצהרות האלה.
שינויים ב-API
- צריך לשנות את שם ה-API ל-
setCameraOpenRetryMaxTimeoutInMillisWhileResuming
ולשנות את שם הארגומנט. (I72370) - הוספת ממשקי API לשליחת שאילתות לגבי יכולות המכשיר ולהפעלת ייצוב של סרטונים או תצוגות מקדימות. (I87544)
- הצגת API כדי להתאים אישית את הזמן המקסימלי לתפוגת הזמן לניסיון חוזר לפתיחת המצלמה. (I0c642)
- הגרסה
ProcessCameraProvider.shutdownAsync
הושקה כ-API לבדיקה ציבורית כדי לאפשר שימוש בספק מצלמות עיבוד בחבילות בדיקה שבהן ייתכן שיהיה צורך להפעיל את CameraX בדרכים שונות בין בדיקות. (I9eca7) - הוספת ממשקי API להגדרת טווח דינמי, קצב פריימים ומצב ראי של צילומי וידאו. (Ifb8f7)
- מוציאים משימוש את
OutputSize
ומחליפים אותו ב-ResolutionSelector
.ResolutionSelector
היא דרך מקיפה יותר לבחירת רזולוציות, והיא תואמת ל-API של הליבה של המצלמה. (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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
שינויים ב-API
- הוספת ממשק API חדש כדי לגשת למידע על משרעת האודיו בזמן ההקלטה. (Id4925)
תיקוני באגים
- כדי לשפר את היציבות של התוספים, חשוב לוודא שאירועי האיניציאליזציה וההסרה מופעלים בסדר הנכון. (Ib3b8e)
- תוקן הגדרת הסשן של הצילום בקשר לחריגה משילוב השטח הנתמך בגלל הוספה של משטח חוזר נוסף באופן פנימי. (Id718c)
- תוקנה בעיה בתמונת JPEG גדולה שצולמה במכשיר Vivo S16. תמונות ה-JPEG שצולמו מכילות נתוני מילוי יתירים של אפסים בפלחי הנתונים הנדחסים של JFIF. כתוצאה מכך, גודל הקובץ של התמונות שצולמו גדול. נתוני המרווח הפנימי המיותרים מסוג 0 יוסרו כדי שקובצי תמונה יהיו בגדלים רגילים. (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: בערך 32 אלפיות השנייה עד 12 אלפיות שנייה
הוספת Snapdragon 480 ל-
CameraUseInconsistentTimebaseQuirk
. התיקון הזה פותר בעיה ב-Android 12 במכשירים עם ערכת השבבים הזו, שבה האודיו בהקלטות מושהה למשך הזמן שבו המכשיר נמצא במצב השהיה. (I58010)
גרסה 1.3.0
18 באוקטובר 2023
androidx.camera:camera-*:1.3.0
משוחרר. גרסה 1.3.0 כוללת את ההצהרות האלה.
שינויים חשובים מאז גרסה 1.2.0
- תכונות וידאו, כולל HDR באיכות 10 ביט, חיתוך, שיקוף/ללא שיקוף, השתקה/ביטול השתקה, הגדרת קצב פריימים ועוד.
- מצלמה כפולה בו-זמנית
- ספריית אפקטים
- בורר רזולוציה
- בחירת מצלמה טלסקופית ורחבה במיוחד
- מעבר בין מצלמות במהלך צילום וידאו (תכונה ניסיונית)
גרסה 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
וגם עם תצוגה מקדימה. כמו כן, תוקן מסך שחור במכשירי LEGACY כששיתוף השידור הופעל. - תוקנה בעיה בתמונה גדולה בפורמט 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). נתוני המרווח הפנימי המיותרים מסוג 0 יוסרו כדי שקובצי תמונה יהיו בגדלים רגילים. (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
, ושינינו את השם של פונקציית ה-buildersetHighResolutionEnabledFlag
לשםsetAllowedResolutionMode
. (Iae817) - הפונקציה
CameraInfo#getSupportedFrameRateRanges()
מחזירה עכשיוSet
במקוםList
, כדי לייצג טוב יותר את העובדה שהטווחים לא מסודרים. (I02f43) - מוסיפים מאזין שגיאות ל-
CameraEffect
כדי לטפל בשגיאות שאי אפשר לשחזר (Ice471) - הוספת קונסטרוקטור ציבורי ב-
ResolutionInfo
לשיפור היכולת לבצע בדיקות (If6d1c) - הוספנו את ה-API
UseCase.snapToSurfaceRotation(int)
כדי להחליף את השימוש ב-setTargetRotationDegrees
ולהוציא משימוש את ה-APIImageAnalysis.setTargetRotationDegrees(int)
, ImageCapture.setTargetRotationDegrees(int)
ו-VideoCapture.setTargetRotationDegrees(int)
. (Ia9010) - נוספו ממשקי API חדשים,
Preview#getTargetFrameRate
ו-Preview.Builder#setTargetFrameRate
, כדי שאפשר יהיה להגדיר ולשלוף את קצב הפריימים היעד בתרחיש לדוגמה של תצוגה מקדימה (If4f22) - הפונקציה
VideoRecordEvent.Finalize
תסתיים עכשיו עם קוד השגיאהERROR_RECORDING_GARBAGE_COLLECTED
כשהאובייקטRecording
יופסק בגלל איסוף אשפה. (Iba974)
תיקוני באגים
- תוקנה השגיאה ב-
NullPointerException
כשגדלי הפלט ששמורים במטמון ב-StreamConfigurationMapCompat
הם 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 ציבוריים לשימוש בו-זמנית בשתי מצלמות, כולל:
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
boolean isConcurrentCameraModeOn()
וגםConcurrentCameraConfig
, SingleCameraConfig
ו-ConcurrentCamera
(Iab1c1)
- ביצוע
ImageProcessor.Response#getOutputImage
NonNull (Ib9c60) - הוספנו ממשקי API להעתקה (mirroring) של
VideoCapture
, כוללVideoCapture.Builder.setMirrorMode(int)
ו-VideoCapture.getMirrorMode()
. כדי להשתמש בממשקי ה-API, צריך להשתמש ב-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
יחולו על ה-UseCase של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 שלא נתמכו בעבר.
- בעבר, כשהקשרנו את ההגדרות 'Preview, VideoCapture', ImageAnalysis' ברמת חומרת המצלמה מלאה ומתחתיה, או קישרו את האפשרויות 'Preview, VideoCapture', ImageCapture ברמת החומרה, 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) - הסרת מטא-נתונים,
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 וגרסאות קודמות, עקב בעיות בתמיכה של Bokeh, בצילום התמונות ובתצוגה המקדימה. (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)
תיקוני באגים
- הוספת quirk תאפשר למכשירים בעייתיים מסוימים לבצע ניסיון חוזר של צילום פעם אחת במקרה של כשלים בצילום. (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()
כ-APICamera2Interop
ציבורי. - נוספה דרישה לרמת ה-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)
תיקוני באגים
- תוקנה הבעיה ב-Samsung J7 Prime (SM-G610M) וב-J7 (SM-J710MN)
Preview/VideoCapture
שנמתחה במכשירים עם רמת API 27. רזולוציה של 1920x1080 גורמת לתמונותPreview/VideoCapture
להתמתח. נוספה דרך לעקוף את הבעיה שלא לבחור ברזולוציה 1920x1080 לתצוגה מקדימה או ב-VideoCapture
כדי למנוע בעיה של מתיחות התמונה. (I0e04e) - תוקנה בעיה של קצב פריימים נמוך כשמשתמשים בתרחישים לדוגמה של
VideoCapture
ותצוגה מקדימה ביחס גובה-רוחב של 16:9 במכשירי Huawei מסוימים. (If8c88, b/223643510) - תוקן כשל בפתיחת המצלמה כשהוגדר
SurfaceProvider
של התצוגה המקדימה. כחלק מהתיקון, תצוגה מקדימה ללא הגדרה שלSurfaceProvider
לא תוגדר עכשיו לפעילות של צילום המצלמה. (I99681)
גרסה 1.2.0-beta02
21 בספטמבר 2022
androidx.camera:camera-*:1.2.0-beta02
משוחרר. גרסה 1.2.0-beta02 מכילה את התחייבויות אלה.
שינויים ב-API
- הוספת דרישה לרמת API עבור
setOutputImageRotationEnabled
(I26e3e, b/240993561)
תיקוני באגים
- השבתנו את הפתרון החלופי להפיכת אזור ה-AF באופן אופקי במצלמות הקדמיות של מכשירי Samsung עם Android T, כי הבעיה תוקנה. (I05f69)
- תוקנה בעיה של תצוגה מקדימה שחורה שמתרחשת כשהתוסף
BOKEH
מופעל במכשירי Samsung מסוימים והמשתמש מחליף בין המצלמות. (If6168)
גרסה 1.2.0-beta01
24 באוגוסט 2022
androidx.camera:camera-*:1.2.0-beta01
משוחרר. גרסה 1.2.0-beta01 מכילה את התחייבויות אלה.
תכונות חדשות
- ספרייה חדשה
camera-mlkit-vision
. אפשר לשלב בקלות את CameraX עם תכונות רבות של MLKit, כולל סריקת ברקודים, זיהוי פנים, זיהוי טקסט ועוד. הקוד לדוגמה זמין כאן. - ממשק API ניסיוני חדש של Zero-Shutter Lag. אופטימיזציה של צינור עיבוד הנתונים לצילום כדי לשפר את זמן האחזור תוך שמירה על איכות תמונה טובה. כשמצב הצילום מוגדר כ-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
ולתצוגה מקדימה במכשיר מצלמה ברמת חומרה מלאה או גבוהה יותר. שיטת חלופית של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 של Creator 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 הראשונה למצלמות וידאו, ראיית מצלמה ותוסף מצלמה
תיקוני באגים
- תוקנה בעיה שבה קודק הווידאו לא שוחרר כש-
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
, אפליקציות יקבלו קריאה חוזרת (callback) כשיתחיל להקליט. (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 שניות או יותר) בין שינוי המיקוד לבין פתיחת המצלמה מחדש בגלל בעיה כלשהי ב-framework. (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()
הוסר ועכשיו צריך להעביר את האזנה לאירוע אל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} אחד לשני. לדוגמה, מיפוי של קואורדינטות הפנים שזוהו באמצעות ImageAnalysis אל Preview. (I9ff1e)נוספה פונקציית API חדשה ImageCapture.Builder#setJpegQuality שמאפשרת לשנות את איכות דחיסת התמונה בפורמט JPEG של הפלט כשמצלמים תמונה. (I8dcf4)
השם של MediaStoreOutputOptions.getCollection השתנה ל-MediaStoreOutputOptions.getCollectionUri. (I16639)
תיקוני באגים
- תוקנה הבעיה שבה הפלאש הופעל במהלך הקשה למיקוד (startFocusAndMetering) כשמצב הפלאש היה אוטומטי או תמיד_פועל בסביבה עם תאורה חלשה. (Id4c11)
- הושבתה האפשרות HDR+ ב-Pixel 2 XL או ב-Pixel 3 XL במצב MINIMIZE_LATENCY כדי לצמצם את זמן האחזור. (Ib6270, b/203505523)
תרומה חיצונית
גרסה 1.1.0-alpha10
13 באוקטובר 2021
androidx.camera:camera-*:1.1.0-alpha10
משוחרר. גרסה 1.1.0-alpha10 מכילה את ההצהרות האלה.
תכונות חדשות
- גרסת
androidx.camera:camera-video:1.1.0-alpha10
פורסמה באופן רשמי כגרסת האלפא הראשונה של 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
- הערה ניסיוניתUseCaseGroupLifecycle תוסר עכשיו כשממשקי ה-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, גדלים של MESSAGE ועוד פרטים, אפשר לעיין בכתובת https://developer.android.com/reference/android/hardware/camera2/cameraDevice#regular-capture. הגודל של RECORD מתייחס לרזולוציית הצילום המקסימלית הנתמכת במכשיר המצלמה, כפי שנקבע על ידי CamcorderProfile. הגודל WIDTH מתייחס לרזולוציית הפלט המקסימלית של מכשיר המצלמה עבור הפורמט או היעד שצוינו ב-StreamConfigurationMap.getOutputSizes(int). (I1ee97, b/192911449)
- הוספת פרטי ה-Exif לתמונה שצולמה. (I01ff0, b/193342619)
- ב-ImageCapture, מוחזר ה-URI של התמונה שנשמרה אם מיקום השמירה הוא File (קובץ). (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 במכונה של Preview. (I7b4b8)
- ההערה
@Experimental
הוחלפה ב-@RequiresOptIn
בממשקי API ניסיוניים. כדי לקרוא לממשקי API ניסיוניים, צריך להשתמש ב-androidx.annotation.OptIn
במקום ב-androidx.annotation.experimental.UseExperimental
שהוצא משימוש. (Iff226) - תיקון: כשמצלמים תמונה עם הפלאש מופעל או במצב אוטומטי, התמונות מטושטשות ב-Samsung Galaxy S7. I30001
- נוספה ממשק CameraState API שיהיה חשוף דרך CameraInfo. (I75392)
גרסה 1.1.0-alpha03
24 במרץ 2021
התכונות androidx.camera:camera-camera2:1.1.0-alpha03
, androidx.camera:camera-core:1.1.0-alpha03
וגם androidx.camera:camera-lifecycle:1.1.0-alpha03
משוחררות. גרסה 1.1.0-alpha03 כוללת את ההוספות האלה.
תיקוני באגים
- פורמט פלט JPEG ל-
ImageCapture#OnImageCapturedCallback
כשהאפשרות 'מצבי תוספים' מופעלת. (I0d7b1) - תוקנה שגיאת איפוס במכשירי UMIDIGI BISON (I57d9e, b/180818665)
- תוקנה בעיה בתצוגה המקדימה של Samsung A3 ב-PreviewView. (Iacb30, b/180121821)
גרסה 1.1.0-alpha02
24 בפברואר 2021
התכונות androidx.camera:camera-camera2:1.1.0-alpha02
, androidx.camera:camera-core:1.1.0-alpha02
וגם androidx.camera:camera-lifecycle:1.1.0-alpha02
משוחררות. גרסה 1.1.0-alpha02 מכילה את התחייבויות אלה.
שינויים ב-API
- נוספה ממשק API
ProcessCameraProvider.getAvailableCameraInfos()
לאחזור ישיר של מידע על המצלמות הזמינות. המצלמות האלה יכולות להיות כל המצלמות במכשיר או המצלמות שנבחרו לפי הערך שלCameraSelector
שצוין ב-CameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector)
. (Ieac08)
תיקוני באגים
- עכשיו, CameraX מנסה לפתוח את המצלמה בכוח בניסיון הראשון. כתוצאה מכך, יכול להיות ש-CameraX תגנוב את המצלמה מלקוחות אחרים של מצלמה אם לאפליקציה שלה יש עדיפות גבוהה יותר. (Iab069, b/175820568)
- תוקנה התקלה בבדיקת Robolectric כשמשתמשים ב-setAvailableCamerasLimiter ב-CameraXConfig. (Ice307)
- השינוי הזה מאפשר לזהות את החריגה כשעומס התמונות ב-ImageAnalysis מגיע למקסימום. לכן, במקום קריסה, יכול להיות שתבחינו בתרחישי שימוש אחרים שהם קפואים או איטיים. לדוגמה, תצוגה מקדימה קפואה או איטית. (Ic12da, b/175851631)
- תוקנו תוספי SitelinksErrorListener כדי לדווח על שגיאות כאשר רק 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)
גרסה 1.0.2 של Camera- Camera2, Camera-Core ו- Camera-Lifecycle
גרסה 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)
גרסה 1.0.1 של Camera- Camera2, Camera-Core ו- Camera-Lifecycle
גרסה 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)
גרסה 1.0.0 של Camera- Camera2, Camera-Core ו- Camera-Lifecycle
גרסה 1.0.0
5 במאי 2021
התכונות androidx.camera:camera-camera2:1.0.0
, androidx.camera:camera-core:1.0.0
וגם androidx.camera:camera-lifecycle:1.0.0
משוחררות. גרסה 1.0.0 מכילה את ההתחייבויות האלה.
תכונות עיקריות בגרסה 1.0.0
- ב-CameraX יש תמיכה בתצוגה מקדימה, ב-ImageCapture וב-Analysis
- CameraX מנהל את מחזור החיים של המצלמה בממשק API קל לשימוש
- מטרת CameraX היא לספק שכבת תאימות שמתקנת בעיות רבות בסביבת המצלמה של Android
בעיות מוכרות
גרסה 1.0.0-rc05
21 באפריל 2021
התכונות androidx.camera:camera-camera2:1.0.0-rc05
, androidx.camera:camera-core:1.0.0-rc05
וגם androidx.camera:camera-lifecycle:1.0.0-rc05
משוחררות. גרסה 1.0.0-rc05 מכילה את ההתחייבויות האלה.
תיקוני באגים
- תיקון: כשמצלמים עם פלאש מופעל או אוטומטי, התמונות מטושטשות ב-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 כוללת את ההצהרות האלה.
תיקוני באגים
- תוקנה הבעיה DisallowArgument תנועה כשכל הגדלים הנתמכים של התצוגה המקדימה היו קטנים מ-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)
- הוספנו ל- CameraXConfig ממשק ניסיוני של setAvailablesLimiter, כדי לאפשר לאפליקציות לבצע אופטימיזציה של זמן האחזור של האתחול על ידי מניעת אתחול של מצלמות שאינן בשימוש. (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-בטא12 מכילה את ההתחייבויות האלה.
תיקוני באגים
- הפלאש האוטומטי מושבת במכשירי Samsung A3 כדי לתקן את הקריסה בזמן צילום תמונה במצב AE של Flash אוטומטי במכשירי Samsung A3. (Ia5fe3, b/157535165)
- תוקנה בעיה שבה התצוגה המקדימה נמתחה במכשירי Nexus 4 עם Android L (רמות API 21 ו-22). (I4d407, b/158749159)
- ההטמעה של הכיתה הבסיסית
OnImageCapturedCallback#onCaptureSuccess
כבר לא סוגרת את התמונה. המטרה היא למנוע התנהגות לא צפויה למפתחים. מפתחים לא צריכים להסתמך על super.onCaptureSuccess כדי לסגור את התמונה. (Ifbf9c) - הווריאנטים של androidx של ההערה הניסיונית הוצאו משימוש כדי לספק תאימות ל-Kotlin. החלפנו אותו בהערה RequiresOptIn, וה-Linter שמותאם ל-Java עודכן לתמיכה בהערת Kotlin החדשה וגם בווריאנט androidx החדש. (I52495, b/151331381)
Camera- Camera2 גרסה 1.0.0-beta11
14 באוקטובר 2020
androidx.camera:camera-camera2:1.0.0-beta11
משוחרר. גרסה 1.0.0-בטא11 מכילה את ההתחייבויות האלה.
תכונות חדשות
- תמיכה ב-
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-בטא11 מכילה את ההתחייבויות האלה.
תכונות חדשות
- תמיכה ב-API של CONTROL_ZOOM_RATIO
ב-Android 11 לזום במכשירי Android 11 ואילך שמכילים CONTROL_ZOOM_RATIO_RANGE
תקין. (I62cc6)
תיקוני באגים
- תוקנה בעיית NumberFormatException שארעה כאשר מזהה המצלמה הוא מזהה מצלמה שאינו מספר שלם. (Ib2228)
- כדי ליצור תרחישי שימוש, לא צריך לאתחל את CameraX. כל ההגדרות הספציפיות להטמעה מוגדרות ב-UseCase אחרי שהוא מצורף למכונה של מצלמה, שה-API הציבורי שלה הוא
ProcessCameraProvider.bindToLifecycle()
. (Ia5411) - הפונקציה
<UseCase>.getTargetRotation()
תחזיר את הערךSurface.ROTATION_0
אם נשלחת קריאה לפני שהיא מחוברת למופע של מצלמה, אלא אם הוגדר targetRotation ב-builder או ב-UseCase. (I80fcd)
Camera-Core גרסה 1.0.0-beta10
23 בספטמבר 2020
androidx.camera:camera-core:1.0.0-beta10
משוחרר. גרסה 1.0.0-beta10 כוללת את ההצהרות האלה.
תיקוני באגים
- תיקון באג באימות היעד לשמירת קובץ של צילום תמונה (I8c565, b/167697553)
Camera-Camera2 גרסה 1.0.0-beta10
23 בספטמבר 2020
androidx.camera:camera-camera2:1.0.0-beta10
משוחרר. גרסה 1.0.0-beta10 כוללת את ההצהרות האלה.
תיקוני באגים
- גרסה שתומכת ב-Camera-Core 1.0.0-beta10
Camera-Camera2 גרסה 1.0.0-beta09
16 בספטמבר 2020
androidx.camera:camera-camera2:1.0.0-beta09
משוחרר. גרסה 1.0.0-beta09 מכילה את התחייבויות אלה.
שינויים ב-API
- במקום לספק שיטות סטטיות, כש-Camera2CameraInfo נוצר, הוא מקבל מופע של CameraInfo כדי לאחזר ממנו מידע שקשור ל-Camera2. (I5b844)
תיקוני באגים
- תוקנה בעיה ביחס גובה-רוחב של היעד במכשירי טאבלט. כדאי לבחור גודל של 16:9 כשיחס הגובה-רוחב של היעד מוגדר כ-
AspectRatio.RATIO_16_9
. (Ib7fcf, b/151969438) - גורמים להשלכת
InitializationException
כדי שהאפליקציה תוכל לטפל בצורה תקינה ב-AssertionError שהתרחש בזמן יצירת CameraCharacteristics. (I89c8c, b/160524721) - הוספנו ממשקים ניסיוניים ל-ExposureCompensation (If96c7)
גרסה 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) - כפייה על 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 כוללת את ההצהרות האלה.
תיקוני באגים
- בוצע אופטימיזציה של ה-binToLifecycle כדי להריץ במהירות את ה-thread הראשי. (I1d57e)
- המאפיין DisplayOrientedMeteringPointFactory מקבל מופע של CameraInfo במקום CameraSelector, כך שיש מיפוי ישיר למצלמה שבשבילה המפעל ייצור נקודות. כל הכיתות שמשתמשות ב-DisplayOrientedMeteringPointFactory מקבלות גם מופע של CameraInfo במקום CameraSelector. (I400c1)
- תוקנה בעיה בקיבוץ של גודל יחס גובה-רוחב ברזולוציה אוטומטית, שבה נבחרה גודל mod16 ביחס גובה-רוחב של 16:9 (864x480) כשהגדרת רזולוציית היעד היא 2016x1080 וקיימת תמיכה נוספת בגודל 1920x1080 ביחס גובה-רוחב של 16:9. (I53167, b/159363774)
- תיקון הבעיה ב-CameraControl שבה היא לא יכולה לפעול בגלל תנאי מרוץ (I2279f, b/152333890, b/160714166)
Camera-Core גרסה 1.0.0-beta08
19 באוגוסט 2020
androidx.camera:camera-core:1.0.0-beta08
משוחרר. גרסה 1.0.0-beta08 כוללת את ההצהרות האלה.
שינויים ב-API
DisplayOrientedMeteringPointFactory
מקבלת מכונה מסוגCameraInfo
במקוםCameraSelector
, כך שיש מיפוי ישיר למצלמה שבה המפעל ייצור נקודות. כל הכיתות שמשתמשות ב-DisplayOrientedMeteringPointFactory
מקבלות גם מופע שלCameraInfo
במקוםCameraSelector
. (I400c1)
תיקוני באגים
- בצילום תמונות, מחליפים את הדגל של היפוך אופקית במטא-נתונים על סמך כיוון המצלמה. (I28499)
- לא אמורה להיות יותר קריסה של ההפעלה הראשונית כשמשתמשים ב-Context שלא מחזיר אובייקט 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
במחלקה של האפליקציה באפליקציה. (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)
- יומן שגיאות שהומר וקשור לתרחיש לדוגמה שלא נותק ליומן ניפוי באגים ב- Camera2 CameraImpl. (I1a565, b/154422490)
- תוקנה בעיה שבה התמונה שצולמה כהה מדי לפעמים למרות שהפלאש הופעל. (I5d9fa, b/149729613)
- תיקון באג שבו המאגר ב-
ImageProxy
מ-ImageCapture
לא הוחזר אחורה (I0c455, b/153249512) - תוקנו הבעיות שקשורות לקישור של ImageCapture בלבד: (1) אי אפשר לצלם תמונות עם MAX_QUALITY; (2) איכות התמונה נמוכה כי החשיפה האוטומטית לא פועלת. (I17782, b/145326998)
- שיפור האמינות של פתיחת המצלמה מחדש כש-CameraX מנותק על ידי תהליך אחר או נתיב קוד שמשתמש במצלמה (I1fbc3, b/153714651)
גרסה 1.0.0-beta04 של Camera-Core
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
גרסה 1.0.0-beta03 של מצלמת ליבה
15 באפריל 2020
androidx.camera:camera-core:1.0.0-beta03
משוחרר. גרסה 1.0.0-beta03 מכילה את ההצהרות האלה.
תיקוני באגים
- תוקנה רגרסיה מ-beta03 שבה קריאה ל-
bindToLifecycle()
עם אפסUseCase
s גורמת להשלכת חריגה. כך לא ניתן היה לאחזר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
כדי לבצע חישובי רזולוציה, ה-UseCase מתעדכן. עכשיו אין צורך לעדכן את תרחיש השימוש כדי לבצע את החישובים (I78d9e)
Camera-Core גרסה 1.0.0-beta02
1 באפריל 2020
androidx.camera:camera-core:1.0.0-beta02
משוחרר. גרסה 1.0.0-beta02 מכילה את ההצהרות האלה.
תיקוני באגים
- תוקן הערך של
ImageInfo.getRotationDegrees()
מתוך הערך שלImageProxy
שנוצר על ידיImageCapture
כך שיתאים לערך הסיבוב של כיוון התמונה ב-EXIF. (Id4281, b/150802561) - תוקנה הבעיה ב-
bindToLifecycle
כך שהיא תשנה את UseCase רק אם הקישור יתבצע בהצלחה. בעבר, כשהתרחישbindToLifecycle
נקרא כדי לבצע חישובי רזולוציה, התרחיש מעודכן. עכשיו אין צורך לעדכן את תרחיש השימוש כדי לבצע את החישובים (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)
מצלמה-מצלמה2 גרסה 1.0.0-alpha10
10 בפברואר 2020
androidx.camera:camera-camera2:1.0.0-alpha10
משוחרר. גרסה 1.0.0-alpha10 מכילה את ההצהרות האלה.
תיקוני באגים
- שופרה היציבות במכשירי
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
באמצעות הקפדה על כך שפריטיSurface
יישמרו רק למשך השימוש ב- Camera2. (I9dac2) - תוקנה בעיה של חשיפת יתר בתצוגה המקדימה במכשירים מדור קודם, על ידי התאמה נכונה של
CONTROL_AE_TARGET_FPS_RANGE
. (1224638)
Camera-Core גרסה 1.0.0-alpha10
10 בפברואר 2020
androidx.camera:camera-core:1.0.0-alpha10
משוחרר. גרסה 1.0.0-alpha10 כוללת את ההצהרות האלה.
שינויים ב-API
- ההגדרה
ImageCapture
עודכנה כדי לאפשר שמירת תמונות ב-Uri
וב-OutputStream
. שילוב של שיטותtakePicture
עם עומס יתר לשיטה אחת. אפליקציית הבדיקה עודכנה לשימוש ב-Uri
כדוגמה הקנונית. (Ia3bec) - השם של
Preview.PreviewSurfaceProvider
שונה ל-Preview.SurfaceProvider
. רכיביSurfaceProvider
כבר לא דורשים ממפתחים ליצורListenableFuture
משלהם. מסירתSurface
מתבצעת עכשיו באמצעות אובייקטSurfaceRequest
חדש. השיטהPreview.getPreviewSurfaceProvider()
הוסרה בגלל האפשרות לשימוש לרעה בה, כש-Preview
משויך לכיתות אחרות כמוPreviewView
. (I20105) getTargetRotation()
ו-getTargetName()
נוספו ל-Preview
. (Iceee7)- הוספת את
getTargetRotation()
, אתgetBackpressureStrategy()
ואתgetImageQueueDepth()
ב-ImageAnalysis
. (I9d6d9) - נוספו
getTargetRotation()
ו-getCaptureMode()
ב-ImageCapture()
(I5bc17) - הארגומנטים שהועברו בעבר ב-
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
נדרש markerClassExperimentalCamera2Interop
.
גרסה ליבה של מצלמה 1.0.0-alpha09
22 בינואר 2020
androidx.camera:camera-core:1.0.0-alpha09
משוחרר. גרסה 1.0.0-alpha09 מכילה את ההצהרות האלה.
שינויים ב-API
- שם הפרמטר
SurfaceOrientedMeteringPointFactory
useCaseForSurface
השתנה ל-useCaseForAspectRatio
, ומסמכי העזרה הורחבו. - השיטות
FocusMeteringAction.Builder.from()
מוחלפות ב-constructorsFocusMeteringAction.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. אם האפשרות המבוקשת לא נתמכת, הסשן לא יופעל ותופיע שגיאה כמו זו:
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
תיקוני באגים
- תוקנה בעיה שבה מסך שחור בתצוגה המקדימה הופיע אחרי סיבוב או החלפת המצלמה ברמות API 21 ו-22.
שינויים ב-API
- ניסיוני: נוספה דרך של camera2 לפעולה הדדית (interop) לחילוץ מזהה המצלמה.
גרסה ליבה של מצלמה 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 של ליבת המצלמה מכילה את ההתחייבויות האלה
לתשומת ליבכם: יש כמה שינויים משמעותיים בגרסת האלפא הזו במסגרת ההכנות לקראת הבטא. אנחנו ממליצים לבדוק את השינויים ולשתף כל משוב שיש לכם על קבוצת 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
-
משתני enum השתנו ל-IntDef
נוספו פקדים לשינוי מרחק התצוגה:
CameraControl.setLinearZoom()
CameraControl.setZoomRatio()
CameraInfo.getLinearZoom()
CameraInfo.getMaxZoomRatio()
CameraInfo.getZoomRatio()
CameraInfo.hasFlashUnit()
נוסף כדי לקבוע אם יש חומרה של פלאש/פנס.CameraInfo.isFlashAvailable()
הוסר. הפנס מבטל את הפונקציונליות של ה-Flash. פרטים נוספים מופיעים במאמרי העזרה.שדות של
ImageCapture.Metadata
מוחלפים ברכיבי accessor/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
.
מצלמה-מצלמה2 וגרסה 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
ו-methodgetCameraInfo
, שמאפשרים לאפליקציות לבדוק אם יש עדשה שפונה ל-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()
במקרים ספציפיים יותר, למשל כשנדרשות רזולוציות מינימום (כדי לחסוך בזמן חישוב) או רזולוציות מקסימום (לעיבוד פרטים).
- באופן כללי, מומלץ להשתמש ב-
- ממשק 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()
הגדרות config שונות מקבלות עכשיו פרמטרים של null, ופרמטרים תואמים עלולים להחזיר את הערך 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
- תוקנה קריסה של פני שטח של קלט/פלט שלא הוגדרו בפתיחה/סגירה מהירה או בקישור/ביטול חיבור במהירות
- מעבר להטמעות חדשות של Futures
- בודקים תיקונים לבדיקות מקיפות יותר
- בבדיקה של שילוב הליבה מוצג עכשיו זמן הצילום של התמונות
- פיתוח של סוג תאימות פנימי ל-Executors
- תזמון הבדיקה של האפליקציה לצילום תמונות ממתין להשלמת התמונה הקודמת ושיפור היציבות
תוספים
- נוספו בדיקות לגרסאות
- כיסוי בדיקה נוסף - קריאות חוזרות (callback) של אירועים של תוספים
- שיפורים בתמונות ובמטא-נתונים שתואמים פנימית
- תיקונים למעבר למצב באפליקציית הבדיקה
Camera-Camera2 ו-Camera-Core בגרסה 1.0.0-alpha02
5 ביוני 2019
androidx.camera:camera-core:1.0.0-alpha02
ו-androidx.camera:camera-camera2:1.0.0-alpha02
משוחררים. גרסה 1.0.0-alpha02 מכילה את ההוספות האלה.
תיקוני באגים
- תוקנה בעיה של חלוקה באפס כשמשתמשים באמולטור
- תוקנה השגיאה 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-Core 1.0.0-beta10
גרסה 1.0.0-beta09 של Camera-Lifecycle
16 בספטמבר 2020
androidx.camera:camera-lifecycle:1.0.0-beta09
משוחרר. גרסה 1.0.0-beta09 מכילה את התחייבויות אלה.
גרסה 1.0.0-beta08 של Camera-Lifecycle
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 עם Process CameraProvider#ConfigurationInstance() לפני הקריאה Process CameraProvider#getInstance(). כך ניתן להתאים אישית את ה- CameraXConfig בלי שיהיה צורך להטמיע את CameraXConfig.Provider במחלקה של האפליקציה. (Ia1a8d)
גרסה 1.0.0-beta05 של Camera-Lifecycle
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 מכילה את התחייבויות אלה.
גרסה 1.0.0-beta03 של מחזור החיים של מצלמה
15 באפריל 2020
androidx.camera:camera-lifecycle:1.0.0-beta03
משוחרר. גרסה 1.0.0-beta03 מכילה את ההצהרות האלה.
תיקוני באגים
- תוקנה רגרסיה מ-beta03 שבה קריאה ל-
bindToLifecycle()
עם אפסUseCase
s גורמת להשלכת חריגה. כך לא ניתן היה לאחזר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)
גרסה 1.0.0-beta02 של מחזור החיים של המצלמה
1 באפריל 2020
androidx.camera:camera-lifecycle:1.0.0-beta02
משוחרר. גרסה 1.0.0-beta02 מכילה את התחייבויות אלה.
תיקוני באגים
- עודכנה כדי לתמוך בתיקוני הבאגים בפריטי המידע שנוצרו בתהליך הפיתוח (Artifact) של
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)
גרסה 1.0.0-alpha03 של מחזור חיים של מצלמה
22 בינואר 2020
androidx.camera:camera-lifecycle:1.0.0-alpha03
משוחרר. גרסה 1.0.0-alpha03 כוללת את ההצהרות האלה.
עדכונים
- תיקונים ועדכונים שונים שתומכים בשינויים ב-Camera Core וב-Camera2.
גרסה 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_UNPROGRESSFUL ל-TAP_TO_FOCUS_NOT_FOCUSED ו-TAP_TO_FOCUS_PROGRESSFUL ל-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: ממירים/מגדירים ליחס גובה-רוחב של יעד, רזולוציית יעד, מצב צילום, CameraControl ואפליקציות מותאמות אישית. (Iea8f2)
- מוסיפים מחלקה RotationReceiver שמקבלת שינויים בסבב פני השטח. אפשר להשתמש בו כדי להגדיר את סיבוב היעד כשהמכשיר נמצא במצב ניצב/רוחב קבוע. (Ib278f)
- ממשקי API ציבוריים חדשים של getEstimatedCaptureLatencyRange נחשפו בכיתה ExtensionsManager. (I6a8ec)
- הוצא משימוש ExtensionsErrorListener. נכון לעכשיו, הממשק הזה משמש רק למעקב אחרי היעדר של Preview או ImageCapture כשמפעילים את המצבים של התוספים. CameraX תוסיף באופן אוטומטי עוד Preview או ImageCapture כדי שהפונקציות של התוסף יפעלו כראוי. לאחר מכן לא ידווחו שגיאות דרך הממשק הזה. (I47d9e)
- ממשקי API ציבוריים של תכונות חשופות של extensionsManager, isExtensionAvailable ו-getExtensionEnabledcamSelector, ממשקי API ציבוריים, ומחלקות
<EffectName><UseCase>Extender
ישנות וממשקי API קשורים שהוצאו משימוש. (I329e6)
גרסה 1.0.0-alpha25
2 ביוני 2021
androidx.camera:camera-extensions:1.0.0-alpha25
ו-androidx.camera:camera-view:1.0.0-alpha25
משוחררים. גרסה 1.0.0-alpha25 כוללת את ההוספות האלה.
שינויים ב-API
- ממשקי ה-API הניסיוניים של CameraFilter נמצאים עכשיו בשלב ניסיוני והופכים לממשקי 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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
תיקוני באגים
- החלפתי את ההערה
@Experimental
ב-@RequiresOptIn
ב-APIs ניסיוניים. כדי לקרוא לממשקי API ניסיוניים, צריך להשתמש ב-androidx.annotation.OptIn
במקום ב-androidx.annotation.experimental.UseExperimental
שהוצא משימוש. (Iff226) - תוקנה הבעיה ב-PreviewView מתיחה ב-Samsung J5 Prime (Ib10b6)
תוספים למצלמה ותצוגה בגרסה 1.0.0-alpha23
24 במרץ 2021
androidx.camera:camera-extensions:1.0.0-alpha23
ו-androidx.camera:camera-view:1.0.0-alpha23
שוחררו. גרסה 1.0.0-alpha23 מכילה את ההצהרות האלה.
שינויים ב-API
- ה-CameraView הוצא משימוש. במקום זאת, יש להשתמש ב-
LifecycleCameraController
. המדריך להעברת נתונים (Idac2c) - נוספה הערה של FloatRange ל-setLinearZoom() (I69971)
תיקוני באגים
- יחסי תלות של צפייה במצלמה מוצמדים כדי להסתמך על ארטיפקטים של 1.0.0. בהתאם לתצוגה של המצלמה, הרזולוציה של התלות ב-Gradle לא תגרום יותר לשדרוג האוטומטי של הליבה של המצלמה, של המצלמה השנייה ושל מחזור החיים של המצלמה לפריטי 1.1.0 העדכניים ביותר, למרות שתצוגת המצלמה עדיין תואמת לפריטי המידע האלה אם הם מוגדרים במפורש לשימוש ב-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 כוללת את ההצהרות האלה.
משיקים כדי לתמוך בפריטי מידע אחרים בספריית המצלמה.
גרסה 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 מכילה את ההצהרות האלה.
תיקוני באגים
- גרסה שתומכת ב-Camera-Core 1.0.0-beta10
תצוגת מצלמה גרסה 1.0.0-alpha17
23 בספטמבר 2020
androidx.camera:camera-view:1.0.0-alpha17
משוחרר. גרסה 1.0.0-alpha17 מכילה את ההצהרות האלה.
תיקוני באגים
- גרסה שתומכת ב-Camera-Core 1.0.0-beta10
Camera-Extensions גרסה 1.0.0-alpha16
16 בספטמבר 2020
androidx.camera:camera-extensions:1.0.0-alpha16
משוחרר. גרסה 1.0.0-alpha16 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
תיקוני באגים
- נוספה שיטה ב-
ExtensionsManager
כדי לקבל אובייקטExtensions
שמשמשים להפעלה של תוספים ולשליחת שאילתות עליהם במכונות של Camera (I4fb7e)
גרסה 1.0.0-alpha16 של המצלמה
16 בספטמבר 2020
androidx.camera:camera-view:1.0.0-alpha16
משוחרר. גרסה 1.0.0-alpha16 מכילה את התחייבויות אלה.
שינויים ב-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.getApplicationContext()
. (I3d3c9, b/160817073)גרסה 1.0.0-alpha15 של Camera-View
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 של המצלמה
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 מכילה את ההצהרות האלה.
גרסה 1.0.0-alpha08 של Camera-View
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
לגודל הפלט מחיישן המצלמה לפני ההתאמה לעומס (scaling) שלו כך שימלא אתPreviewView
ההורה. אם רוצים שהתצוגה המקדימה של המצלמה תכסה חלק של ממשק המשתמש (למשל, את כל המסך), לא צריך להגדיר את הגודל שלPreviewView
לערך קבוע או לאפשר לו לעטוף את התוכן (למשל, באמצעות המאפייןwrap_content
). הפעולות האלה עלולות לגרום לכך שהתצוגה המקדימה של המצלמה תכסה רק חלק מ-PreviewView
(אם גודל הפלט של חיישן המצלמה קטן יותר). במקום זאת, צריך להגדיר אתPreviewView
בגודל של האב שלו (לדוגמה, באמצעות המאפייןmatch_parent
). (1204869)
תיקוני באגים
- עדכנו את
ImageCapture
כדי לאפשר שמירת תמונות ב-Uri
וב-OutputStream
. שילוב של שיטותtakePicture
עם עומס יתר לשיטה אחת. אפליקציית הבדיקה עודכנה לשימוש ב-Uri
כדוגמה הקנונית. (Ia3bec) - השם של
Preview.PreviewSurfaceProvider
שונה ל-Preview.SurfaceProvider
. ב-SurfaceProvider
s, המפתחים כבר לא צריכים ליצור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.
תוספי מצלמה, גרסה 1.0.0-alpha04
4 בדצמבר 2019
androidx.camera:camera-extensions:1.0.0-alpha04
משוחרר. גרסה 1.0.0-alpha04 של תוספי המצלמה כוללת את התחייבויות אלה
שינויים ב-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
כדי לחבר בקלות תרחיש לדוגמה של גרסת Previewpreview.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
תוספי מצלמה וגרסה 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
- ספרייה חדשה לתוספי מצלמה עתידיים לגישה לאפקטים במכשירים נתמכים. הספרייה הזו נמצאת בשלבי פיתוח.
- סוג חדש של תצוגה במצלמה. הספרייה הזו נמצאת בשלבי פיתוח.