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

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

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

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

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

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

ใช้ Media3 ExoPlayer

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

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

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

ใช้ MediaSession ของ Media3

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

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างแอปเล่นสื่อได้ที่หัวข้อ สร้างมีเดียเพลเยอร์พื้นฐานโดยใช้ 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 ช่วยให้เล่นต่อในบริการที่ทำงานอยู่เบื้องหลังได้

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

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

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

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

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

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

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

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

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

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

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

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

  • ค้นพบเนื้อหาในแพลตฟอร์มต่างๆ โดยนำเสนอฟีดการทำงานของสื่อหรือผสานรวม "ดูต่อ"

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

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

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

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

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