ข้อมูลเบื้องต้นเกี่ยวกับ Jetpack Media3

Jetpack Media3 เป็นที่เก็บไลบรารีสื่อแห่งใหม่ที่ช่วยให้แอป Android แสดงประสบการณ์การใช้งานเสียงและภาพที่สมบูรณ์ได้ Media3 มีสถาปัตยกรรมที่เรียบง่าย พร้อมการปรับแต่งที่มีประสิทธิภาพ ความน่าเชื่อถือ และการเพิ่มประสิทธิภาพตามความสามารถของอุปกรณ์ เพื่อลดความซับซ้อนที่มาพร้อมกับการแยกส่วน

เอกสารนี้เป็นการแนะนำ API หลักๆ สำหรับการใช้งานกรณีการใช้งานการเล่นและการตัดต่อด้วย Media3

คอมโพเนนต์การเล่น

Media3 มีคอมโพเนนต์หลักหลายอย่างสำหรับกรณีการใช้งานการเล่น คุณจะคุ้นเคยกับคลาสที่ประกอบเป็นคอมโพเนนต์เหล่านี้หากเคยใช้ไลบรารีสื่อ Android เวอร์ชันก่อนหน้า

แผนภาพต่อไปนี้แสดงให้เห็นว่าคอมโพเนนต์เหล่านี้ทำงานร่วมกันในแอปทั่วไปอย่างไร

คอมโพเนนต์ต่างๆ ของแอปสื่อที่ใช้ Media3 จะเชื่อมต่อกันด้วยวิธีง่ายๆ หลายวิธีเนื่องจากมีการแชร์อินเทอร์เฟซและคลาส
รูปที่ 1: คอมโพเนนต์ของแอปสื่อ

มีเดียเพลเยอร์

มีเดียเพลเยอร์คือคอมโพเนนต์ของแอปที่อนุญาตให้เล่นไฟล์สื่อ ใน 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 จากวิศวกรผู้สร้าง