הוספת התלות
Kotlin
implementation("androidx.media3:media3-ui:1.8.0")
Groovy
implementation "androidx.media3:media3-ui:1.8.0"
PlayerView
הרכיב הכי חשוב הוא PlayerView
, תצוגה להפעלת מדיה.
PlayerView
מציג סרטון, תמונות, כתוביות ועטיפת אלבום במהלך ההפעלה,
וגם את רכיבי ה-UI להפעלה.
ל-PlayerView
יש method setPlayer()
לצירוף ולניתוק של מופעי Player
(על ידי קביעת ערך של null
).
אפשר להשתמש ב-PlayerView
להפעלת וידאו, תמונות ואודיו. הוא מרנדר סרטונים וכתוביות במקרה של הפעלת סרטון, מפות סיביות להפעלת תמונה ויכול להציג פוסטרים שנכללים כמטא-נתונים בקובצי אודיו. אפשר לכלול אותו בקובצי הפריסה כמו כל רכיב אחר בממשק המשתמש. לדוגמה, אפשר לכלול PlayerView
עם ה-XML הבא:
<androidx.media3.ui.PlayerView
android:id="@+id/player_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:show_buffering="when_playing"
app:show_shuffle_button="true"/>
קטע הקוד שלמעלה ממחיש ש-PlayerView
מספק כמה מאפיינים.
אפשר להשתמש במאפיינים האלה כדי להתאים אישית את ההתנהגות של התצוגה, וגם את המראה והתחושה שלה. לרוב המאפיינים האלה יש שיטות setter מתאימות, שאפשר להשתמש בהן כדי להתאים אישית את התצוגה בזמן הריצה. במאמרי העזרה של PlayerView
מפורטים המאפיינים ושיטות ה-setter האלה.
כדי לשפר את חוויית המשתמש, מומלץ להוסיף את מאפיין keepScreenOn
Android
או להגדיר חסימת מצב שינה, אם אתם משתמשים ב-ExoPlayer. אפשר לבדוק פעולות אחרות שגורמות למכשיר להישאר פעיל בדפים של עבודה ברקע.
android:keepScreenOn="true"
אחרי שמצהירים על התצוגה בקובץ הפריסה, אפשר לחפש אותה ב-method onCreate
של הפעילות:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ... playerView = findViewById(R.id.player_view) }
Java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... playerView = findViewById(R.id.player_view); }
אחרי שמפעילים נגן, אפשר לצרף אותו לתצוגה באמצעות הקריאה ל-setPlayer
:
Kotlin
// Instantiate the player. val player = ExoPlayer.Builder(context).build() // Attach player to the view. playerView.player = player // Set the media item to be played. player.setMediaItem(mediaItem) // Prepare the player. player.prepare()
Java
// Instantiate the player. player = new ExoPlayer.Builder(context).build(); // Attach player to the view. playerView.setPlayer(player); // Set the media item to be played. player.setMediaItem(mediaItem); // Prepare the player. player.prepare();
PlayerControlView
PlayerControlView
הוא אחד מתוך PlayerView
תצוגות משנה שמכילות את סרגל ההתקדמות ואת הכפתורים לשליטה בהפעלה. הערה: הרכיב PlayerControlView
לא מיועד לשימוש כרכיב עצמאי מחוץ ל-PlayerView
. אפשר להתאים אותו אישית על ידי הגדרת מאפיינים ב-PlayerView
(שיועברו אל PlayerControlView
) או על ידי אספקת בקר בהתאמה אישית עם android:id="@id/exo_controller
.
בחירת סוג הפלטפורמה
המאפיין surface_type
של PlayerView
מאפשר להגדיר את סוג הפלטפורמה שמשמשת להפעלת הסרטון. הערכים המותרים הם surface_view
, texture_view
, spherical_gl_surface_view
(ערך מיוחד להפעלת סרטון ב-360°), video_decoder_gl_surface_view
(לרינדור סרטונים באמצעות רכיבי עיבוד של תוספים) ו-none
(להפעלת אודיו בלבד). בדף הפלטפורמות יש מידע נוסף על סוג הפלטפורמה שכדאי לבחור.