מבוא ל-Jetpack Media3

Jetpack Media3 הוא הבית החדש של ספריות המדיה שמאפשר לאפליקציות ל-Android להציג חוויות אודיו חזותיות עשירות. ‏Media3 מציע ארכיטקטורה פשוטה עם התאמה אישית חזקה, אמינות ואופטימיזציות על סמך יכולות המכשיר, כדי להסתיר את המורכבות שמגיעה עם הפיצול.

במסמך הזה נספק מבוא לממשקי API מרכזיים להטמעת תרחישים לדוגמה של הפעלה ועריכה באמצעות Media3.

רכיבי הפעלה

ב-Media3 יש כמה רכיבים מרכזיים לתרחישי שימוש בהפעלה. אם עבדו איתכם בעבר על ספריות מדיה של Android, הכיתות שמרכיבות את הרכיבים האלה יהיו מוכרות לכם.

בתרשים הבא מוצג איך הרכיבים האלה משתלבים באפליקציה רגילה.

הרכיבים השונים של אפליקציית מדיה שמשתמשת ב-Media3 מתחברים יחד בכמה דרכים פשוטות, כי הם משתפים ממשקים וסוגים.
איור 1: רכיבי אפליקציית מדיה

נגן המדיה

נגן מדיה הוא רכיב באפליקציה שמאפשר הפעלה של קובצי מדיה. ב-Media3 תמצאו:

כיתה תיאור הערה לגבי ההטמעה
Player Player הוא ממשק שמגדיר יכולות מסורתיות ברמה גבוהה לנגן מדיה, כמו היכולת להפעיל, להשהות ולעיין. בממשק Media3, ממשק Player הוא ממשק API נפוץ שמוטמע או שבו משתמשים כמה רכיבים, כולל MediaSession ו-MediaController, לדוגמה.
ExoPlayer ExoPlayer היא הטמעת ברירת המחדל של ממשק Player ב-Media3.

מידע נוסף על Media3 ExoPlayer

סשן המדיה

סשן מדיה מספק דרך אוניברסלית לאינטראקציה עם נגן מדיה. כך אפשר להציג מודעות להפעלת מדיה למקורות חיצוניים, ולקבל בקשות לשליטה בהפעלה ממקורות חיצוניים. ב-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 מהמהנדסים שפיתחו אותו.