เพิ่มทรัพยากร 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 ได้อย่างรวดเร็ว |