Jetpack Media3 הוא המקום החדש לספריות מדיה שמאפשרות לאפליקציות ל-Android להציג חוויות אודיו ווידאו עשירות. Media3 מציעה ארכיטקטורה פשוטה עם אפשרויות התאמה אישית, אמינות ואופטימיזציות מתקדמות שמבוססות על יכולות המכשיר, כדי להפחית את המורכבות שנובעת מהפיצול.
במסמך הזה מופיע מבוא לממשקי API מרכזיים להטמעה של תרחישי שימוש בהפעלה ובעריכה באמצעות Media3.
רכיבי הפעלה
Media3 מציעה כמה רכיבים מרכזיים לתרחישי שימוש בהשמעה. אם עבדתם עם ספריות מדיה קודמות של Android, תכירו את המחלקות שמרכיבות את הרכיבים האלה.
בתרשים הבא מוצג אופן השילוב של הרכיבים האלה באפליקציה טיפוסית.
 
  נגן המדיה
נגן מדיה הוא רכיב באפליקציה שמאפשר הפעלה של קובצי מדיה. ב-Media3 אפשר למצוא:
| כיתה | תיאור | הערה לגבי הטמעה | 
|---|---|---|
| Player |  Playerהוא ממשק שמגדיר יכולות מסורתיות ברמה גבוהה לנגן מדיה, כמו היכולת להפעיל, להשהות ולחפש. | ב-Media3, הממשק Playerהוא API משותף שמיושם או נמצא בשימוש על ידי כמה רכיבים, כוללMediaSessionו-MediaController, למשל. | 
| ExoPlayer |  ExoPlayerהוא יישום ברירת המחדל של הממשקPlayerב-Media3. | 
סשן המדיה
סשן מדיה מספק דרך אוניברסלית לאינטראקציה עם נגן מדיה. ההרשאה הזו מאפשרת לאפליקציה לפרסם הפעלת מדיה למקורות חיצוניים ולקבל בקשות לשליטה בהפעלה ממקורות חיצוניים. ב-Media3 אפשר למצוא:
| כיתה | תיאור | הערה לגבי הטמעה | 
|---|---|---|
| MediaSession | סשנים של מדיה מאפשרים לאפליקציה שלכם ליצור אינטראקציה עם נגן אודיו או וידאו. הם מפרסמים הפעלת מדיה חיצונית ומקבלים פקודות הפעלה ממקורות חיצוניים. | ב-Media3, ל- MediaSessionדרושPlayerכדי להריץ פקודות ולקבל את המצב הנוכחי. | 
| MediaSessionService | ה- MediaSessionServiceמחזיק בסשן מדיה ובנגן המשויך שלו בשירות נפרד מה-MediaSessionServiceהראשי של האפליקציה כדי לאפשר הפעלה ברקע.Activity | |
| MediaController | המחלקות MediaControllerמשמשות בדרך כלל לשליחת פקודות מחוץ לאפליקציה, למשל מאפליקציות אחרות או מהמערכת עצמה.
      הפקודות נשלחות ל-Playerהבסיסי שלMediaSessionהמשויך. | המחלקות MediaControllerמיישמות את הממשקPlayer, אבל כשמפעילים method, המחלקהMediaControllerשולחת את הפקודה שנשלחה אלMediaSessionהמחובר. אפליקציות לקוח כמו Google Assistant יכולות להשתמש ב-MediaControllerכדי לשלוט בהפעלה בסשן מחובר. | 
| MediaLibraryService | MediaLibraryServiceדומה ל-MediaSessionService, אבל הוא כולל ממשקי API נוספים שמאפשרים להציג את ספריית התוכן באפליקציות לקוח. | |
| MediaBrowser | המחלקות MediaBrowserמאפשרות למשתמש לנווט בספריית התוכן של אפליקציית מדיה ולבחור אילו פריטים להפעיל. | המחלקה MediaBrowserמטמיעה את הממשקיםMediaControllerו-Player. בדומה ל-MediaController, אפליקציות לקוח כמו Android Auto בדרך כלל מטמיעות אתMediaBrowser. | 
מידע נוסף על MediaSession ב-Media3
רכיבי ממשק המשתמש
Media3 מספקת רכיבי ממשק משתמש שמוגדרים כברירת מחדל לצפייה בסרטונים ולשליטה בהפעלה.
| כיתה | תיאור | הערה לגבי הטמעה | 
|---|---|---|
| PlayerView | Viewכברירת מחדל להצגת סרטון ופקדי הפעלה. | מתחבר אל ExoPlayer, MediaControllerאו אל כלPlayerמותאם אישית אחר. | 
| PlayerSurface | רכיב קומפוזבילי שמייצג ציור ייעודי Surfaceלהצגת סרטון. | מתחבר לכל Player, אבל לא כולל כפתורי הפעלה.
      השימוש הוא רק לצורך עיבוד של מסגרות, ואפשר לשנות את הגודל בהתאם ל
      
      ContentScaleסוגים שונים. הרכיב הקומפוזבילי הזה ועוד הרבה רכיבים קומפוזביליים אחרים זמינים בכלי העזר של Compose UI. | 
מידע נוסף על ממשק המשתמש של Media3
עריכת רכיבים
Media3 כולל את ממשקי ה-API של Transformer לתרחישי שימוש בעריכת מדיה, כולל:
- עיבוד של אודיו ווידאו, כמו הוספה של פילטרים ואפקטים
- טיפול בפורמטים מיוחדים, כמו סרטוני HDR וסרטונים בהילוך איטי
- יצירה, כמו שילוב של כמה קובצי קלט
- ייצוא הפלט הסופי לקובץ
| כיתה | תיאור | הערה לגבי הטמעה | 
|---|---|---|
| Transformer | משתמשים במחלקה Transformerכדי להתחיל ולהפסיק טרנספורמציות, וכדי לבדוק עדכוני התקדמות בטרנספורמציה שפועלת. | |
| Effects | אובייקט Effectsהוא אוסף של אפקטים של אודיו ווידאו שאפשר להחיל על פריט מדיה. | אפשר להשתמש ב ExoPlayerכדי לראות תצוגה מקדימה של האפקטים שנוספו לפריט מדיה לפני שמתחילים את תהליך הייצוא. | 
| EditedMediaItem |  EditedMediaItemמייצג פריט מדיה לעיבוד ואת העריכות שצריך להחיל עליו. | 
מידע נוסף על Media3 Transformer
סרטון היכרות
בסרטון הבא מהמהנדסים שיצרו את Media3 יש מבוא לספרייה.
קישורים שימושיים
- Media Developer Center
- ExoPlayerdocs
- מדריך להעברת נתונים (מיגרציה)
- AndroidX Media3 ב-GitHub
- אפליקציית לדוגמה של סשן מדיה ב-Media3
- אפליקציית דוגמה של נגן מוזיקה אוניברסלי ל-Android
