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 שומר סשן מדיה ונגן משויך בשירות נפרד מה-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 .
|
מידע נוסף על Media3 MediaSession
רכיבי ממשק המשתמש
Media3 מספק רכיבי ממשק משתמש שמוגדרים כברירת מחדל לצפייה בסרטונים ולשליטה בהפעלה.
כיתה | תיאור | הערה לגבי ההטמעה |
---|---|---|
PlayerView |
View כברירת מחדל כדי להציג את הסרטון ואת פקדי ההפעלה.
|
מתחבר אל ExoPlayer , MediaController או Player מותאם אישית אחר.
|
מידע נוסף על ממשק המשתמש של Media3
עריכת רכיבים
Media3 כולל את ממשקי ה-API של Transformer לתרחישים לדוגמה של עריכת מדיה, כולל:
- עיבוד אודיו ווידאו, כמו הוספת פילטרים ואפקטים
- טיפול בפורמטים מיוחדים, כמו סרטוני HDR וסרטוני הילוך איטי
- יצירה, למשל שילוב של כמה קובצי קלט
- ייצוא הפלט הסופי לקובץ
כיתה | תיאור | הערה לגבי ההטמעה |
---|---|---|
Transformer |
אפשר להשתמש בכיתה Transformer כדי להפעיל ולעצור טרנספורמציות ולבדוק אם יש עדכוני התקדמות בטרנספורמציה שפועלת.
|
|
Effects |
אובייקט Effects הוא אוסף של אפקטים של אודיו ווידאו שאפשר להחיל על פריט מדיה.
|
|
EditedMediaItem |
הערך EditedMediaItem מייצג פריט מדיה לעיבוד ואת פעולות העריכה שיחולו עליו.
|
אפשר להשתמש ב-ExoPlayer כדי לראות תצוגה מקדימה של האפקטים שנוספו לפריט מדיה לפני שמתחילים את תהליך הייצוא.
|
מידע נוסף על Media3 Transformer
סרטון היכרות
בסרטון הבא תוכלו לצפות בהקדמה ל-Media3 מהמהנדסים שפיתחו אותו.
קישורים מועילים
- Media Developer Center
ExoPlayer
docs- מדריך להעברת נתונים (מיגרציה)
- AndroidX Media3 ב-GitHub
- אפליקציית דוגמה לסשן מדיה ב-Media3
- אפליקציית דוגמה של נגן מוזיקה אוניברסלי ל-Android