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

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

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

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

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

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

ใช้ ExoPlayer ของ Media3

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

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

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

ใช้ 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 ซึ่งใช้ อินเทอร์เฟซ Player การเชื่อมต่อเซสชันสื่อกับเพลเยอร์จะช่วยให้แอป โฆษณาการเล่นสื่อภายนอกและรับคำสั่งการเล่นจาก แหล่งที่มาภายนอกได้ เซสชันสื่อจะมอบสิทธิ์คำสั่งเหล่านี้ให้กับเพลเยอร์ของแอปสื่อ

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

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

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

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

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

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

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

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

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

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

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

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

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

แนวทางปฏิบัติแนะนำในการกระตุ้นการมีส่วนร่วมบน Google TV

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

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

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

นอกจากนี้ คุณยังช่วยผู้ใช้ได้ดังนี้

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

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

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

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

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

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