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 และตัวรับสัญญาณในตัว และแหล่งที่มาของซอฟต์แวร์ เช่น วิดีโอที่สตรีมผ่านอินเทอร์เน็ต ดูข้อมูลเพิ่มเติมได้ที่สร้างบริการอินพุตทีวี