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

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

สร้างแอป TV

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

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

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

ใช้ ExoPlayer ของ Media3

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

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

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

ใช้ Media3 MediaSession

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

คลาส MediaSession ใหม่จะใช้คลาสใดก็ได้ที่ใช้ Player interface ทั้ง 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 ช่วยให้แอปแจ้งแพลตฟอร์มได้ว่ากำลังเล่นสื่อ และแพลตฟอร์มจะแจ้งแอปได้ว่าสามารถหยุดเล่นได้

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

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

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

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

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

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

ตัวอย่างเช่น ให้ความสำคัญเป็นพิเศษกับการให้คำแนะนำในการไปยังส่วนต่างๆ และการติดป้ายกำกับองค์ประกอบอย่างเหมาะสม และช่วยตรวจสอบว่าแอป TV ทำงานร่วมกับฟีเจอร์การช่วยเหลือพิเศษ เช่น 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 Billing และให้บริการสมัครใช้บริการที่ราบรื่น

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

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

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