Jetpack Media3 เป็นที่เก็บไลบรารีสื่อแห่งใหม่ที่ช่วยให้แอป Android แสดงประสบการณ์การใช้งานเสียงและภาพที่สมบูรณ์ได้ Media3 มีสถาปัตยกรรมที่เรียบง่าย พร้อมการปรับแต่งที่มีประสิทธิภาพ ความน่าเชื่อถือ และการเพิ่มประสิทธิภาพตามความสามารถของอุปกรณ์ เพื่อลดความซับซ้อนที่มาพร้อมกับการแยกส่วน
เอกสารนี้เป็นการแนะนำ API หลักๆ สำหรับการใช้งานกรณีการใช้งานการเล่นและการตัดต่อด้วย Media3
คอมโพเนนต์การเล่น
Media3 มีคอมโพเนนต์หลักหลายอย่างสำหรับกรณีการใช้งานการเล่น คุณจะคุ้นเคยกับคลาสที่ประกอบเป็นคอมโพเนนต์เหล่านี้หากเคยใช้ไลบรารีสื่อ Android เวอร์ชันก่อนหน้า
แผนภาพต่อไปนี้แสดงให้เห็นว่าคอมโพเนนต์เหล่านี้ทำงานร่วมกันในแอปทั่วไปอย่างไร
มีเดียเพลเยอร์
มีเดียเพลเยอร์คือคอมโพเนนต์ของแอปที่อนุญาตให้เล่นไฟล์สื่อ ใน Media3 คุณจะเห็นข้อมูลต่อไปนี้
| ชั้นเรียน | คำอธิบาย | หมายเหตุการติดตั้งใช้งาน |
|---|---|---|
Player | Player เป็นอินเทอร์เฟซที่กำหนดความสามารถระดับสูงแบบเดิม สำหรับมีเดียเพลเยอร์ เช่น ความสามารถในการเล่น หยุดชั่วคราว และกรอ | ใน Media3 Player อินเทอร์เฟซเป็น API ทั่วไปที่คอมโพเนนต์หลายรายการใช้หรือนำไปใช้ ซึ่งรวมถึง MediaSession และ MediaController เป็นต้น |
ExoPlayer | ExoPlayer เป็นการติดตั้งใช้งานเริ่มต้นของอินเทอร์เฟซ Player ใน Media3 |
ดูข้อมูลเพิ่มเติมเกี่ยวกับ Media3 ExoPlayer
เซสชันสื่อ
เซสชันสื่อเป็นวิธีสากลในการโต้ตอบกับมีเดียเพลเยอร์ ซึ่งจะช่วยให้แอปโฆษณาการเล่นสื่อไปยังแหล่งที่มาภายนอกและรับคำขอควบคุมการเล่นจากแหล่งที่มาภายนอกได้ ใน Media3 คุณจะเห็นข้อมูลต่อไปนี้
| ชั้นเรียน | คำอธิบาย | หมายเหตุการติดตั้งใช้งาน |
|---|---|---|
MediaSession | เซสชันสื่อช่วยให้แอปโต้ตอบกับเครื่องเล่นเสียงหรือวิดีโอได้ โดยจะโฆษณาการเล่นสื่อภายนอกและรับคำสั่งการเล่นจากแหล่งที่มาภายนอก | ใน Media3 MediaSession ต้องมี Player เพื่อ เรียกใช้คำสั่งและรับสถานะปัจจุบัน |
MediaSessionService | MediaSessionService จะมีเซสชันสื่อและเพลเยอร์ที่เชื่อมโยงในบริการที่แยกจาก Activity หลักของแอปเพื่ออำนวยความสะดวกในการเล่นในเบื้องหลัง | |
MediaController | โดยทั่วไปจะใช้คลาส MediaController เพื่อส่งคำสั่ง จากภายนอกแอป เช่น จากแอปอื่นหรือจากระบบเอง ระบบจะส่งคำสั่งไปยัง Player พื้นฐานของ MediaSession ที่เชื่อมโยง | คลาส MediaController จะใช้ Player อินเทอร์เฟซ แต่เมื่อเรียกใช้เมธอด MediaController จะส่ง คำสั่งที่ส่งไปยัง MediaSession ที่เชื่อมต่อ แอปไคลเอ็นต์ เช่น Google Assistant สามารถใช้ MediaController เพื่อควบคุมการเล่นในเซสชันที่เชื่อมต่อ ได้ |
MediaLibraryService | MediaLibraryService คล้ายกับ MediaSessionService แต่มี API เพิ่มเติม เพื่อให้คุณแสดงคลังเนื้อหาต่อแอปไคลเอ็นต์ได้ | |
MediaBrowser | คลาส MediaBrowser ช่วยให้ผู้ใช้ไปยังส่วนต่างๆ ในคลังเนื้อหาของแอปสื่อ และเลือกรายการที่จะเล่นได้ | คลาส MediaBrowser จะใช้ทั้งอินเทอร์เฟซ MediaController และ Player คล้ายกับ MediaController โดยทั่วไปแล้วแอปไคลเอ็นต์ เช่น Android Auto จะ ใช้ MediaBrowser |
ดูข้อมูลเพิ่มเติมเกี่ยวกับ MediaSession ของ Media3
คอมโพเนนต์ UI
Media3 มีคอมโพเนนต์ UI เริ่มต้นสำหรับการดูวิดีโอและควบคุม การเล่น
| ชั้นเรียน | คำอธิบาย | หมายเหตุการติดตั้งใช้งาน |
|---|---|---|
PlayerView | Viewเริ่มต้นเพื่อแสดงตัวควบคุมวิดีโอและการเล่น | เชื่อมต่อกับ ExoPlayer, MediaController หรือ Player อื่นๆ ที่กำหนดเอง |
PlayerSurface | Composable ที่แสดงถึงการวาดภาพเฉพาะ Surface เพื่อแสดงวิดีโอ | เชื่อมต่อกับ Player แต่ไม่มีตัวควบคุมการเล่น ใช้สำหรับการแสดงผลเฟรมเท่านั้น และปรับขนาดได้ตาม ContentScaleประเภทต่างๆ คุณดู Composable นี้และอื่นๆ อีกมากมายได้ในยูทิลิตี UI ของ Compose |
ดูข้อมูลเพิ่มเติมเกี่ยวกับ UI ของ Media3
การแก้ไขคอมโพเนนต์
Media3 มี Transformer API สำหรับกรณีการใช้งานการแก้ไขสื่อ ซึ่งรวมถึง
- การประมวลผลเสียงและวิดีโอ เช่น การเพิ่มฟิลเตอร์และเอฟเฟกต์
- การจัดการรูปแบบพิเศษ เช่น วิดีโอ HDR และวิดีโอสโลว์โมชัน
- การเรียบเรียง เช่น การรวมไฟล์อินพุตหลายไฟล์
- การส่งออกเอาต์พุตสุดท้ายไปยังไฟล์
| ชั้นเรียน | คำอธิบาย | หมายเหตุการติดตั้งใช้งาน |
|---|---|---|
Transformer | ใช้คลาส Transformer เพื่อเริ่มและหยุดการเปลี่ยนรูปแบบ และเพื่อตรวจสอบการอัปเดตความคืบหน้าในการเปลี่ยนรูปแบบที่กำลังทำงาน | |
Effects | ออบเจ็กต์ Effects คือคอลเล็กชันของเอฟเฟกต์เสียงและวิดีโอ ที่จะนำไปใช้กับรายการสื่อ | คุณใช้ ExoPlayer เพื่อดูตัวอย่างเอฟเฟกต์ที่เพิ่มลงในรายการสื่อ ก่อนเริ่มกระบวนการส่งออกได้ |
EditedMediaItem | EditedMediaItem แสดงถึงรายการสื่อที่จะประมวลผลและ การแก้ไขที่จะใช้กับรายการนั้น |
ดูข้อมูลเพิ่มเติมเกี่ยวกับ Media3 Transformer
วิดีโอแนะนำ
ดูวิดีโอด้านล่างเพื่อดูข้อมูลเบื้องต้นเกี่ยวกับ Media3 จากวิศวกรผู้สร้าง
ลิงก์ที่มีประโยชน์
- ศูนย์นักพัฒนาแอปสื่อ
ExoPlayerเอกสาร- คำแนะนำในการย้ายข้อมูล
- AndroidX Media3 ใน GitHub
- แอปตัวอย่างเซสชันสื่อ Media3
- ตัวอย่างแอป Universal Android Music Player