תחילת העבודה עם ממשק משתמש שמבוסס על תצוגות

מוסיפים את יחסי התלות

Kotlin

implementation("androidx.media3:media3-ui:1.6.0")

Groovy

implementation "androidx.media3:media3-ui:1.6.0"

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 תואמות, שאפשר להשתמש בהן כדי להתאים אישית את התצוגה בזמן הריצה. המאפיינים ושיטות ההגדרה (setter) האלה מפורטים במסמכי התיעוד של PlayerView.

אחרי שמצהירים על התצוגה בקובץ הפריסה, אפשר לחפש אותה ב-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);
}

אחרי שמפעילים את ה-player, אפשר לצרף אותו לתצוגה באמצעות קריאה ל-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. אפשר להתאים אישית את ה-controller על ידי הגדרת מאפיינים ב-PlayerView (שיועברו אל PlayerControlView) או על ידי מתן בקר בהתאמה אישית עם android:id="@id/exo_controller.

בחירת סוג פלטפורמה

המאפיין surface_type של PlayerView מאפשר להגדיר את סוג המשטח שמשמש להפעלת הסרטון. הערכים המותרים הם surface_view, ‏ texture_view,‏ spherical_gl_surface_view (ערך מיוחד להפעלת סרטונים ספירליים), ‏ video_decoder_gl_surface_view (לעיבוד וידאו באמצעות מעבדי תצוגה של תוספים) ו-none (להפעלת אודיו בלבד). מידע נוסף על סוג המשטח שצריך לבחור זמין בדף 'משטח'.