เริ่มต้นใช้งาน UI ที่อิงตามมุมมอง

เพิ่มการพึ่งพา

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 สามารถใช้ได้ทั้งสำหรับการเล่นวิดีโอ รูปภาพ และเสียง โดยจะแสดงผลวิดีโอและคําบรรยายในกรณีที่เล่นวิดีโอ แสดงผลบิตแมปสําหรับการเล่นรูปภาพ และแสดงอาร์ตเวิร์กที่รวมอยู่ในข้อมูลเมตาของไฟล์เสียง คุณสามารถรวมไว้ในไฟล์เลย์เอาต์ได้เช่นเดียวกับคอมโพเนนต์ UI อื่นๆ เช่น 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 เหล่านี้อย่างละเอียด

เมื่อประกาศมุมมองในไฟล์เลย์เอาต์แล้ว คุณจะค้นหามุมมองนั้นใน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 (สำหรับการเล่นเสียงเท่านั้น) ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทแพลตฟอร์มที่ควรเลือกได้ในหน้าแพลตฟอร์ม