ขยายแอปสื่อไปยัง Android TV

Android มอบประสบการณ์การใช้งานที่สมบูรณ์แบบซึ่งเพิ่มประสิทธิภาพให้เหมาะกับแอปที่ทำงานบนอุปกรณ์หน้าจอขนาดใหญ่ เช่น ทีวีความละเอียดสูง คุณสามารถขยายกลุ่มเป้าหมายของแอปได้โดยการพัฒนาแอปสำหรับ Android TV เอกสารนี้จะให้คําแนะนําเกี่ยวกับวิธีทําอย่างมีประสิทธิภาพ

สร้างแอปสำหรับทีวี

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

อย่างไรก็ตาม รูปแบบการโต้ตอบของผู้ใช้สำหรับทีวีจะแตกต่างจากอุปกรณ์โทรศัพท์และแท็บเล็ตอย่างมาก หากต้องการให้แอปประสบความสำเร็จในอุปกรณ์ทีวี คุณต้องออกแบบเลย์เอาต์ใหม่ที่เข้าใจได้อย่างชัดเจนในระยะ 10 ฟุต และให้การไปยังส่วนต่างๆ ที่ทำงานได้โดยใช้เพียงปุ่มบังคับทิศทางและปุ่มเลือก

ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อควรพิจารณาต่างๆ เช่น วิธีจัดการตัวควบคุมฮาร์ดแวร์ทีวี การสร้างเลย์เอาต์ทีวี และการสร้างการไปยังส่วนต่างๆ ของทีวีได้ที่หัวข้อสร้างแอปทีวี

ใช้ Media3 ExoPlayer

Jetpack Media3 มีอินเทอร์เฟซของโปรแกรมเล่นที่กําหนดฟีเจอร์พื้นฐาน เช่น ความสามารถในการเล่น หยุดชั่วคราว กรอ และแสดงข้อมูลแทร็ก ExoPlayer เป็นการใช้งานอินเทอร์เฟซนี้เริ่มต้นใน Media3

เมื่อเทียบกับ MediaPlayer API ของ Android ฟีเจอร์นี้มีความสะดวกมากขึ้น เช่น การรองรับโปรโตคอลสตรีมมิงหลายรายการ โปรแกรมแสดงผลเสียงและวิดีโอเริ่มต้น และคอมโพเนนต์ที่จัดการบัฟเฟอร์สื่อ

คุณสามารถปรับแต่งและขยายความสามารถของ ExoPlayer รวมถึงอัปเดตผ่าน Play Store ได้ การอัปเดตแอปพลิเคชัน ดูข้อมูลเพิ่มเติมได้ที่ Media3 ExoPlayer

ใช้ Media3 MediaSession

เซสชันสื่อเป็นวิธีสากลที่ระบบใช้ในการโต้ตอบกับโปรแกรมเล่นเสียงหรือวิดีโอของแอป ลักษณะเด่นอย่างหนึ่งที่แยก Media3 ออกจาก Media API เวอร์ชันเก่าๆ คือไม่จำเป็นต้องใช้ตัวเชื่อมต่อระหว่างคอมโพเนนต์อีกต่อไป

คลาส MediaSession ใหม่จะใช้คลาสใดก็ได้ที่ใช้อินเทอร์เฟซ Player ทั้ง ExoPlayer และ MediaController เป็นคลาสที่ใช้อินเทอร์เฟซดังกล่าว ซึ่งช่วยให้คอมโพเนนต์ต่างๆ ทำงานร่วมกันได้ง่ายขึ้น ดูข้อมูลเพิ่มเติมได้ที่อินเทอร์เฟซของโปรแกรมเล่น

ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างแอปการเล่นสื่อได้ที่หัวข้อสร้างโปรแกรมเล่นสื่อพื้นฐานโดยใช้ ExoPlayer

คุณต้องติดตั้งใช้งาน MediaSession เพื่อให้ผู้ใช้ปลายทางของแอปสื่อได้รับประสบการณ์การใช้งานที่ดีที่สุด โดยให้เริ่มต้น Player และส่งให้กับ MediaSession.Builder ดังนี้

Kotlin

val player = ExoPlayer.Builder(context).build()
val mediaSession = MediaSession.Builder(context, player).build()

Java

ExoPlayer player = new ExoPlayer.Builder(context).build();
MediaSession mediaSession = new MediaSession.Builder(context, player).build();

การจัดการสถานะอัตโนมัติ

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

ควบคุมและโฆษณาการเล่น

ใน Media3 โปรแกรมเล่นเริ่มต้นคือคลาส ExoPlayer ซึ่งใช้อินเทอร์เฟซ MediaPlayer การเชื่อมต่อเซสชันสื่อกับโปรแกรมเล่นช่วยให้แอปสามารถโฆษณาการเล่นสื่อภายนอกและรับคำสั่งการเล่นจากแหล่งที่มาภายนอกได้ เซสชันสื่อจะมอบสิทธิ์คำสั่งเหล่านี้ให้กับเพลเยอร์ของแอปสื่อ

เซสชันสื่อเป็นกุญแจสำคัญในการควบคุมการเล่น ซึ่งช่วยให้คุณกำหนดเส้นทางคำสั่งจากแหล่งที่มาภายนอกไปยังโปรแกรมเล่นที่ทำหน้าที่เล่นสื่อได้ ไคลเอ็นต์ภายนอกสามารถใช้ตัวควบคุมสื่อเพื่อส่งคำสั่งการเล่นไปยังแอปสื่อได้ โดยเซสชันสื่อจะรับคำสั่งเหล่านี้และส่งต่อไปยังโปรแกรมเล่นสื่อ

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเล่น เช่น วิธีปรับแต่งลักษณะการทํางานของคําสั่งการเล่นได้ที่ควบคุมและโฆษณาการเล่นโดยใช้ MediaSession

หลีกเลี่ยงการหยุดชะงักในแอป

การใช้ MediaSession ช่วยให้คุณหลีกเลี่ยงการหยุดชะงักที่ไม่จำเป็น เช่น

  • การเล่นอย่างต่อเนื่องโดยไม่คาดคิดเมื่อปิดทีวีหรือเปลี่ยนอินพุตทีวี ซึ่งยังทำให้ฮาร์ดแวร์ทีวีใช้พลังงานสูงด้วย เมื่อใช้ MediaSession แอปจะแจ้งให้แพลตฟอร์มทราบว่ากำลังเล่นสื่ออยู่ และแพลตฟอร์มจะแจ้งให้แอปทราบว่าสามารถหยุดการเล่นได้

  • การเล่นเพลงหยุดโดยไม่คาดคิดเมื่อออกจากแอปหรือปิดจอแสดงผลของทีวี การใช้ API ของ MediaSession จะช่วยให้เล่นต่อได้ในบริการที่ทำงานอยู่เบื้องหลัง

  • การโต้ตอบกับเนื้อหาที่ถูกจํากัดซึ่งขัดขวางไม่ให้ผู้ใช้ควบคุมการเล่น เช่น กลับไปยังแอปหากแอปเล่นเพลงอยู่เบื้องหลัง หรือรองรับคำสั่งเสียง เมื่อใช้ MediaSession ในแอป ผู้ใช้จะใช้คำสั่งเสียงเพื่อกรอและข้ามเพลงหรือตอนต่างๆ ได้

ข้อควรพิจารณาเพิ่มเติม

เมื่อขยายแอปสื่อไปยัง Android สำหรับทีวี คุณต้องพิจารณาปัญหาการช่วยเหลือพิเศษ วิธีกระตุ้นการมีส่วนร่วม วิธีช่วยให้ผู้ใช้ค้นหาเนื้อหา รวมถึงวิธีสร้างบริการอินพุตเกมและทีวี

การช่วยเหลือพิเศษสำหรับทีวี

แม้ว่าเทคโนโลยีความช่วยเหลือพิเศษจะช่วยผู้ใช้ที่มีสายตาเลือนรางได้ แต่ก็จำเป็นต้องรองรับการช่วยเหลือพิเศษในเส้นทางการค้นพบเนื้อหาสำหรับแอปทีวี

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

ขั้นแรกในการปรับปรุงการช่วยเหลือพิเศษคือการรับรู้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการปรับขนาดข้อความ เลย์เอาต์แป้นพิมพ์ และคำบรรยายแทนเสียงได้ที่แหล่งข้อมูลการช่วยเหลือพิเศษ

แนวทางปฏิบัติแนะนำเพื่อเพิ่มการมีส่วนร่วมใน Google TV

แอปทั้งหมดที่สร้างสำหรับ Android TV จะใช้งานได้ในอุปกรณ์ที่ใช้ Google TV เราขอแนะนำให้คุณใช้แนวทางปฏิบัติแนะนำต่อไปนี้เพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ดีที่สุดบน Google TV

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

ขั้นพื้นฐานคือแอปของคุณต้องรองรับ Google Cast ซึ่งจะช่วยให้คุณขยายแอป Android, iOS และ Chrome เพื่อเปิดใช้การสตรีมเสียงและวิดีโอไปยัง Android TV รวมถึงอุปกรณ์ Chromecast และอุปกรณ์ Assistant ได้ ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของ Google Cast

นอกจากนี้ คุณยังช่วยผู้ใช้ดำเนินการต่อไปนี้ได้ด้วย

  • ค้นพบเนื้อหาในแพลตฟอร์มต่างๆ โดยเสนอฟีดการดําเนินการกับสื่อ หรือผสานรวมฟีดวิดีโอถัดไป

  • ใช้ประโยชน์จากเสียงและการมีส่วนร่วมด้วยการรองรับการลิงก์บัญชีและการซิงค์สิทธิ์ นำเสนอการแคสต์ด้วยเสียง และเปิดใช้ Cast Connect

  • ชำระเงินได้ง่ายขึ้นด้วยการผสานรวมการเรียกเก็บเงินของ Google Play และการสมัครใช้บริการที่ราบรื่น

สร้างเฟรมเวิร์กอินพุตทีวี

การดูรายการทีวีสดและเนื้อหาอื่นๆ แบบสดอย่างต่อเนื่องตามช่องเป็นส่วนสำคัญของประสบการณ์การรับชมทีวี ผู้ใช้คุ้นเคยกับการเลือกและดูรายการทีวีด้วยการเรียกดูช่อง TV Input Framework จะสร้างช่องสำหรับเผยแพร่เนื้อหาวิดีโอหรือเพลงในคู่มือการจัดโปรแกรมทีวี

เฟรมเวิร์กอินพุตทีวีมีวิธีการแบบรวมสำหรับการรับและเล่นเนื้อหาวิดีโอสดจากแหล่งที่มาของฮาร์ดแวร์ เช่น พอร์ต HDMI และตัวรับสัญญาณในตัว และแหล่งที่มาของซอฟต์แวร์ เช่น วิดีโอที่สตรีมผ่านอินเทอร์เน็ต ดูข้อมูลเพิ่มเติมได้ที่สร้างบริการอินพุตทีวี