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

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

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

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

คอมโพเนนต์ UI

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

ชั้นเรียน คำอธิบาย หมายเหตุเกี่ยวกับการติดตั้งใช้งาน
PlayerView Viewเริ่มต้นเพื่อแสดงวิดีโอและตัวควบคุมการเล่น เชื่อมต่อกับ ExoPlayer, MediaController หรือ Player อื่นๆ ที่กำหนดเอง
PlayerSurface Composable ที่แสดงถึงภาพวาดเฉพาะ Surface เพื่อแสดงวิดีโอ เชื่อมต่อกับ Player ใดก็ได้ แต่ไม่มีตัวควบคุมการเล่น ใช้สำหรับการแสดงผลเฟรมเท่านั้น และสามารถปรับขนาดตามประเภท ContentScale ต่างๆ ได้ คุณดู Composable นี้และอื่นๆ อีกมากมายได้ในยูทิลิตี Compose UI

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

กำลังแก้ไขคอมโพเนนต์

Media3 มี Transformer API สำหรับกรณีการใช้งานการตัดต่อสื่อ ซึ่งรวมถึงกรณีต่อไปนี้

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

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

วิดีโอแนะนำ

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