הוספת יחסי התלות
Kotlin
implementation("androidx.media3:media3-ui:1.7.1")
מגניב
implementation "androidx.media3:media3-ui:1.7.1"
PlayerView
הרכיב הכי חשוב הוא PlayerView
, תצוגה להפעלת מדיה.
PlayerView
מציג סרטון, תמונות, כתוביות ועטיפת אלבום במהלך ההפעלה,
וגם את אמצעי הבקרה של ההפעלה.
ל-PlayerView
יש שיטה setPlayer()
לצירוף ולניתוק (על ידי העברת null
) של מופעים של Player
.
אפשר להשתמש ב-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
מפורטים המאפיינים ושיטות ההגדרה האלה.
כדי לשפר את חוויית המשתמש, מומלץ להוסיף את מאפיין keepScreenOn
Android
או להגדיר נעילת השהיה, אם אתם משתמשים ב-ExoPlayer. אפשר לבדוק פעולות אחרות שגורמות למכשיר להישאר פעיל בדפים של עבודה ברקע.
android:keepScreenOn="true"
אחרי שמצהירים על התצוגה בקובץ הפריסה, אפשר לחפש אותה בשיטה 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
(ערך מיוחד להפעלה של סרטון פנורמי), video_decoder_gl_surface_view
(לרינדור של סרטון באמצעות תוספים לרינדור) ו-none
(להפעלה של אודיו בלבד). בדף הפלטפורמות יש מידע נוסף על סוג הפלטפורמה שכדאי לבחור.