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