שימוש בספריית Jetpack Picture-in-Picture

ספריית Jetpack של תמונה בתוך תמונה (PiP) מציעה פתרון יעיל וחזק למפתחי אפליקציות ל-Android להטמעת פונקציונליות של תמונה בתוך תמונה, במיוחד להפעלת מדיה, לאפליקציות של שיחות וידאו ולאפליקציות ניווט. הספרייה מספקת API מאוחד, ועוזרת לבטל קוד boilerplate, באגים נפוצים באפליקציה ולשפר את האיכות הכוללת של חוויית המשתמש ב-PiP.

ספריית Jetpack של תמונה בתוך תמונה (PiP) מאפשרת להשתמש בממשקי ה-API הקיימים של PiP, ומטפלת בכמה אתגרים ואי-התאמות מרכזיים בסביבת Android:

  • פיצול מערכת ההפעלה: הספרייה מטפלת אוטומטית בהבדלים בקריאות ל-PiP API בגרסאות שונות של Android, למשל שימוש ב-enterPictureInPictureMode לפני Android 12 וב-isAutoEnterEnabled אחרי, כך שהמפתחים לא צריכים לנהל את ההבדלים בין הגרסאות.
  • פרמטרים שגויים של PiP: הוא מספק פתרון מאוחד להגדרה נכונה של פרמטרים של PiP, למשל setSourceRectHint, כדי ליצור אנימציות חלקות ואיכותיות במהלך הפעלת המדיה.
  • התראות חוזרות מאוחדות על מצב התמונה בתוך תמונה (PiP): התראות חוזרות onPictureInPictureModeChanged ו-onPictureInPictureUiStateChanged אוחדו לממשק התראות חוזרות מאוחד יחיד (PictureInPictureDelegate.OnPictureInPictureEventListener) כדי לפשט את ניהול המצב וממשק המשתמש.
  • צמצום של קוד סטנדרטי (בוילרפלייט): הספרייה מצמצמת את כמות הקוד הסטנדרטי החוזר על עצמו, ומציעה קבוצות מוגדרות מראש של RemoteActions לתרחישי שימוש נפוצים, כמו אמצעי בקרה להפעלה ופעולות בשיחות וידאו.
  • הכנה לעתיד: תכונות נוספות של PiP מועברות דרך ספריית Jetpack, כך שמשתמשים יכולים לגשת לפונקציונליות נוספת במאמץ מינימלי או ללא מאמץ בכלל.

התחלת השימוש ב-Jetpack

כדי להשתמש בספריית Jetpack, צריך להחליף את ההטמעה הקיימת של תמונה בתוך תמונה (PiP) בממשקי Jetpack Library API. מורכבות ההטמעה והעלות שלה משתנות בהתאם להטמעה הנוכחית של האפליקציה.

בקטעים הבאים מתוארים כמה תרחישי שימוש אופייניים של PiP ושלבי ההטמעה הנדרשים:

האפליקציה מעדכנת את הספרייה לגבי המצב הפעיל או הלא פעיל של הניווט ומגדירה את יחס הגובה-רוחב. ספריית Jetpack מטפלת בכל השאר.

ההבדלים העיקריים:

  1. אין צורך להבחין בין הזנה אוטומטית לבין הזנה מדור קודם בצד האפליקציה.
  2. ממשקי קריאה חוזרת מאוחדים.
  3. PictureInPictureParams builder חדש לתאימות לאחור.

שיחת וידאו

האפליקציה מעדכנת את הספרייה לגבי המצב של השיחה (פעילה או לא פעילה) ומגדירה את יחס הגובה-רוחב.

ההבדלים העיקריים:

  1. אין צורך להבחין בין הזנה אוטומטית לבין הזנה מדור קודם בצד האפליקציה.
  2. ממשקי קריאה חוזרת מאוחדים.
  3. PictureInPictureParams builder חדש לתאימות לאחור.
  4. סמלי פעולות סטנדרטיים לשיחות וידאו.

הפעלת סרטון

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

תכונות עיקריות:

  1. הוא מטפל בתאימות לאחור, ולא נדרשת בדיקה של גרסת מערכת ההפעלה.
  2. סנכרון של מצב ההפעלה ושליטה אוטומטית בכניסה.
  3. מעקב רציף אחרי גיאומטריה באמצעות SourceRectHint.