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

เพิ่มทรัพยากร Dependency

ไลบรารี Media3 มีโมดูล UI ที่ใช้ Jetpack Compose 2 โมดูล คุณไม่จำเป็นต้องเพิ่มทั้ง 2 รายการเนื่องจาก Material3 ขึ้นอยู่กับ Core

Kotlin

// Include only one of the following dependencies
implementation("androidx.media3:media3-ui-compose:1.11.1")
implementation("androidx.media3:media3-ui-compose-material3:1.11.1")

ดึงดูด

// Include only one of the following dependencies
implementation "androidx.media3:media3-ui-compose:1.11.1"
implementation "androidx.media3:media3-ui-compose-material3:1.11.1"

เราขอแนะนำอย่างยิ่งให้คุณพัฒนาแอปในรูปแบบที่ใช้ Compose เป็นหลักหรือย้ายข้อมูลจากการใช้ View

แอปสาธิตที่ใช้ Compose ทั้งหมด

แม้ว่าไลบรารี media3-ui-compose จะไม่มี Composable ที่พร้อมใช้งานทันที (เช่น ปุ่ม ตัวบ่งชี้ รูปภาพ หรือกล่องโต้ตอบ) แต่คุณสามารถดูแอปสาธิตที่เขียนด้วย Compose ทั้งหมด ซึ่งหลีกเลี่ยงโซลูชันการทำงานร่วมกัน เช่น การรวม PlayerView ไว้ใน AndroidView แอปสาธิตใช้คลาสตัวเก็บสถานะ UI จากโมดูล media3-ui-compose และไลบรารี Compose Material3

ฉันต้องใช้ไลบรารีใด

คุณเลือกไลบรารี Media3 Compose ได้ 2 ไลบรารี โดยขึ้นอยู่กับระดับการปรับแต่งที่ต้องการ เพื่อให้เข้าใจความแตกต่าง คุณควรนึกถึงไปป์ไลน์การสร้างสถานะ UI ซึ่งก็คือ Business logic → UI logic → UI

ใช้ media3-ui-compose เพื่อควบคุมคอมโพเนนต์ UI ได้อย่างเต็มที่

ไลบรารีนี้มีการเชื่อมต่อ Business logic → UI logic ซึ่งประกอบด้วยคอมโพเนนต์พื้นฐาน เช่น PlayerSurface และ ContentFrame รวมถึงคลาสตัวเก็บสถานะ (เช่น PlayPauseButtonState, CurrentMediaItemState, PlaylistState, ErrorState) ที่แปลงสถานะ Player เป็นสถานะ UI

ไลบรารีนี้ไม่มีคอมโพเนนต์ Material Design ที่พร้อมใช้งาน คุณมีหน้าที่สร้างคอมโพเนนต์ UI ของตนเองและจัดสไตล์คอมโพเนนต์เหล่านั้น ซึ่งช่วยให้คุณควบคุมรูปลักษณ์และสไตล์ได้สูงสุด จึงเหมาะอย่างยิ่งหากคุณมีระบบการออกแบบที่กำหนดเองสูง

ใช้ media3-ui-compose-material3 เพื่อผสานรวมกับ Material Design ได้เร็วขึ้น

ไลบรารีนี้มีส่วน UI สุดท้ายของไปป์ไลน์ ซึ่งขึ้นอยู่กับ media3-ui-compose และมีฟังก์ชันที่ประกอบกันได้ที่สร้างไว้ล่วงหน้าซึ่งได้รับการจัดรูปแบบด้วยคอมโพเนนต์ Material3 รวมถึง Composable Player และ MiniController คอมโพสิเบิล Player มอบประสบการณ์การเล่นสื่อที่ครอบคลุมทั้งวิดีโอ ตัวควบคุม และแถบความคืบหน้า ซึ่งคุณสามารถปรับแต่งเพิ่มเติมได้โดยใช้ PlayerDefaults คอมโพสิเบิล MiniController มีความสามารถในการควบคุมเพลเยอร์ขณะแสดงข้อมูลเกี่ยวกับรายการสื่อปัจจุบัน ซึ่งช่วยให้คุณไม่ต้องสร้างปุ่มและองค์ประกอบ UI อื่นๆ เองตั้งแต่ต้น คุณยังคงปรับแต่งธีม สี และไอคอนของคอมโพเนนต์เหล่านี้ได้ แต่เราจะจัดเตรียมการใช้งานหลักไว้ให้คุณ

ข้อมูลโดยย่อ

ฟีเจอร์ media3-ui-compose media3-ui-compose-material3
คอมโพเนนต์ UI องค์ประกอบพื้นฐาน เช่น PlayerSurface และ ContentFrame แต่ไม่มีปุ่มหรือตัวควบคุมที่จัดรูปแบบไว้ล่วงหน้า มีคอมโพสิเบิล Player และ MiniController รวมถึงคอมโพสิเบิลสไตล์ Material3 ที่สร้างไว้ล่วงหน้าครบชุด เช่น PlayPauseButton, SeekBackButton, PositionAndDurationText, ErrorText เป็นต้น
การจัดการสถานะ มอบตัวยึด remember...State เพื่อจัดการตรรกะ จัดการสถานะภายใน แต่คุณยังคงเข้าถึงตัวเก็บสถานะได้หากต้องการ
ทรัพยากร Dependency androidx.compose.foundation media3-ui-compose, androidx.compose.material3, com.google.android.material
กรณีการใช้งานหลัก การสร้าง UI ของเพลเยอร์ด้วยระบบการออกแบบที่กำหนดเอง ควบคุมรูปลักษณ์ได้อย่างเต็มที่ สร้าง UI ของเพลเยอร์ที่สอดคล้องกับหลักเกณฑ์ของ Material Design 3 ได้อย่างรวดเร็ว