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

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

เอกสารนี้จะแนะนำ API หลักๆ สำหรับการใช้ Use Case การเล่นและการแก้ไขด้วย Media3

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

Media3 มีคอมโพเนนต์หลักหลายรายการสําหรับ Use Case การเล่น คุณคงคุ้นเคยกับคลาสที่ประกอบขึ้นเป็นคอมโพเนนต์เหล่านี้หากเคยใช้ไลบรารีสื่อ 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 โดยทั่วไปแล้ว แอปไคลเอ็นต์ เช่น Android Auto จะใช้ MediaBrowser เช่นเดียวกับ MediaController

ดูข้อมูลเพิ่มเติมเกี่ยวกับ Media3 MediaSession

คอมโพเนนต์ UI

Media3 มีคอมโพเนนต์ UI เริ่มต้นสําหรับดูวิดีโอและควบคุมการเล่น

ชั้นเรียน คำอธิบาย หมายเหตุการใช้งาน
PlayerView View เริ่มต้นเพื่อแสดงวิดีโอและตัวควบคุมการเล่น เชื่อมต่อกับ ExoPlayer, MediaController หรือ Player ที่กำหนดเองอื่นๆ

ดูข้อมูลเพิ่มเติมเกี่ยวกับ Media3 UI

การแก้ไขคอมโพเนนต์

Media3 มี Transformer API สำหรับ Use Case การแก้ไขสื่อ ซึ่งรวมถึง

  • การประมวลผลเสียงและวิดีโอ เช่น การเพิ่มฟิลเตอร์และเอฟเฟกต์
  • การจัดการรูปแบบพิเศษ เช่น วิดีโอ HDR และวิดีโอสโลว์โมชัน
  • การคอมโพสิชัน เช่น การรวมไฟล์อินพุตหลายไฟล์
  • การส่งออกเอาต์พุตสุดท้ายไปยังไฟล์
ชั้นเรียน คำอธิบาย หมายเหตุการใช้งาน
Transformer ใช้คลาส Transformer เพื่อเริ่มและหยุดการเปลี่ยนรูปแบบ และเพื่อตรวจสอบการอัปเดตความคืบหน้าของการเปลี่ยนรูปแบบที่ทำงานอยู่
Effects ออบเจ็กต์ Effects คือคอลเล็กชันเอฟเฟกต์เสียงและวิดีโอที่จะใช้กับรายการสื่อ
EditedMediaItem EditedMediaItem แสดงถึงรายการสื่อที่จะประมวลผลและการแก้ไขที่จะใช้กับรายการนั้น คุณสามารถใช้ ExoPlayer เพื่อดูตัวอย่างเอฟเฟกต์ที่เพิ่มลงในรายการสื่อก่อนเริ่มกระบวนการส่งออก

ดูข้อมูลเพิ่มเติมเกี่ยวกับ Media3 Transformer

วิดีโอแนะนำ

ดูวิดีโอด้านล่างเพื่อดูข้อมูลเบื้องต้นเกี่ยวกับ Media3 จากวิศวกรที่เป็นผู้สร้าง