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