Mở rộng ứng dụng đa phương tiện của bạn sang Android TV

Android cung cấp trải nghiệm người dùng phong phú được tối ưu hoá cho các ứng dụng chạy trên thiết bị màn hình lớn, chẳng hạn như TV có độ phân giải cao. Bạn có thể mở rộng đối tượng của ứng dụng bằng cách phát triển ứng dụng cho Android TV. Tài liệu này cung cấp hướng dẫn về cách thực hiện hiệu quả.

Tạo ứng dụng dành cho TV

Ứng dụng truyền hình sử dụng cấu trúc giống như ứng dụng cho điện thoại và máy tính bảng. Phương pháp này có nghĩa là bạn có thể tạo ứng dụng dành cho TV mới dựa trên những gì bạn đã biết về cách tạo ứng dụng cho Android hoặc mở rộng ứng dụng hiện có để chạy được trên cả thiết bị TV.

Tuy nhiên, mô hình tương tác của người dùng cho TV khác biệt đáng kể so với các thiết bị trên điện thoại và máy tính bảng. Để giúp ứng dụng của bạn thành công trên các thiết bị TV, bạn phải thiết kế bố cục mới có thể hiểu rõ từ khoảng cách 3 mét và cung cấp tính năng điều hướng hoạt động chỉ bằng bàn phím di chuyển và nút chọn.

Để biết thêm thông tin về những điểm cần cân nhắc, chẳng hạn như cách xử lý bộ điều khiển phần cứng TV, tạo bố cục TV và tạo hoạt động điều hướng trên TV, hãy xem nội dung Tạo ứng dụng dành cho TV.

Sử dụng Media3 ExoPlayer

Jetpack Media3 cung cấp giao diện Trình phát xác định các tính năng cơ bản như phát, tạm dừng, tua và hiển thị thông tin về bản nhạc. ExoPlayer là phương thức triển khai mặc định của giao diện này trong Media3.

So với API MediaPlayer của Android, API này có thêm nhiều tiện ích như khả năng hỗ trợ nhiều giao thức phát trực tuyến, trình kết xuất âm thanh và video mặc định cũng như các thành phần xử lý việc lưu nội dung nghe nhìn vào bộ đệm.

Bạn có thể tuỳ chỉnh và mở rộng ExoPlayer và có thể cập nhật ExoPlayer thông qua các bản cập nhật ứng dụng trên Cửa hàng Play. Để biết thêm thông tin, hãy xem bài viết Media3 ExoPlayer.

Sử dụng Media3 MediaSession

Phiên phát nội dung đa phương tiện là một cách thức phổ biến để hệ thống tương tác với trình phát âm thanh hoặc video của ứng dụng. Một trong những đặc điểm chính giúp phân biệt Media3 với các API nội dung nghe nhìn trước đây là không còn cần đến trình kết nối giữa các thành phần.

Lớp MediaSession mới nhận mọi lớp triển khai giao diện Trình phát. Cả ExoPlayer và MediaController đều là các lớp triển khai giao diện đó. Điều này giúp quá trình tương tác giữa các thành phần trở nên đơn giản hơn nhiều. Để biết thêm thông tin, hãy xem Giao diện Trình phát.

Để biết thêm thông tin về cách tạo ứng dụng phát nội dung đa phương tiện, hãy xem nội dung Tạo trình phát nội dung đa phương tiện cơ bản bằng ExoPlayer.

Để tạo trải nghiệm tốt nhất cho người dùng cuối của ứng dụng đa phương tiện, bạn cần triển khai MediaSession. Để thực hiện việc này, hãy khởi động Player và cung cấp mã đó cho MediaSession.Builder như sau:

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();

Xử lý trạng thái tự động

Thư viện Media3 sẽ tự động cập nhật phiên phát nội dung đa phương tiện bằng cách sử dụng trạng thái của trình phát. Do đó, bạn không cần phải xử lý việc ánh xạ từ người chơi đến phiên theo cách thủ công. Điều này giúp đảm bảo rằng người dùng luôn nhìn thấy thông tin mới nhất trên nội dung nghe nhìn đang phát, bao gồm cả trong thẻ Phát hiện nhạc.

Kiểm soát và quảng cáo tính năng phát

Trong Media3, trình phát mặc định là lớp ExoPlayer, nơi triển khai giao diện Trình phát. Khi bạn kết nối phiên phát nội dung đa phương tiện với trình phát, một ứng dụng có thể quảng cáo hoạt động phát nội dung nghe nhìn ra bên ngoài và nhận lệnh phát từ các nguồn bên ngoài. Phiên phát nội dung đa phương tiện sẽ uỷ quyền các lệnh này cho trình phát của ứng dụng đa phương tiện.

Phiên phát nội dung đa phương tiện là chìa khoá để điều khiển quá trình phát. Trường này cho phép bạn định tuyến các lệnh từ nguồn bên ngoài đến trình phát thực hiện công việc phát nội dung đa phương tiện của bạn. Các ứng dụng bên ngoài có thể sử dụng trình điều khiển nội dung đa phương tiện để đưa ra lệnh phát cho ứng dụng đa phương tiện. Các lệnh này sẽ được nhận qua phiên phát nội dung đa phương tiện của bạn. Phiên hoạt động này cuối cùng sẽ uỷ quyền các lệnh cho trình phát nội dung đa phương tiện.

Để biết thêm thông tin về tính năng phát, chẳng hạn như cách tuỳ chỉnh hành vi của lệnh phát, hãy xem phần Kiểm soát và quảng cáo tính năng phát bằng MediaSession.

Tránh gián đoạn trong ứng dụng

Việc sử dụng MediaSession giúp bạn tránh được các tình trạng gián đoạn không cần thiết như:

  • Phát liên tục và ngoài dự kiến khi tắt TV hoặc chuyển đầu vào của TV. Việc này cũng gây ra mức tiêu thụ năng lượng cao cho phần cứng TV. Với MediaSession, ứng dụng của bạn có thể thông báo cho nền tảng rằng ứng dụng đang phát nội dung đa phương tiện và nền tảng có thể thông báo cho ứng dụng rằng hoạt động phát có thể dừng.

  • Quá trình phát nhạc dừng đột ngột khi chuyển ra khỏi ứng dụng hoặc tắt màn hình TV. Việc sử dụng các API MediaSession cho phép phát liên tục trong dịch vụ nền.

  • Hoạt động tương tác bị hạn chế với nội dung khiến người dùng không thể điều khiển chế độ phát. Ví dụ: quay lại ứng dụng của bạn nếu ứng dụng đang phát nhạc trong nền hoặc hỗ trợ lệnh thoại. Với MediaSession trong ứng dụng, người dùng có thể sử dụng lệnh thoại để tìm và bỏ qua bài hát hoặc tập.

Các yếu tố cần cân nhắc khác

Khi mở rộng ứng dụng đa phương tiện của mình sang Android cho TV, bạn cần xem xét các vấn đề về hỗ trợ tiếp cận, cách tăng mức độ tương tác, cách cho phép người dùng tìm thấy nội dung cũng như cách xây dựng trò chơi và dịch vụ đầu vào TV.

Hỗ trợ tiếp cận trên TV

Mặc dù các công nghệ hỗ trợ có thể và hỗ trợ người dùng có thị lực kém, nhưng việc hỗ trợ khả năng tiếp cận trong hành trình khám phá nội dung của các ứng dụng dành cho TV đóng vai trò quan trọng.

Ví dụ: chú ý hơn đến việc cung cấp hướng dẫn di chuyển và gắn nhãn đúng cách cho các phần tử, đồng thời đảm bảo các ứng dụng trên TV hoạt động tốt với các tính năng hỗ trợ tiếp cận như TalkBack. Các bước này có thể cải thiện đáng kể trải nghiệm của người dùng bị suy giảm thị lực.

Bước đầu tiên để cải thiện khả năng tiếp cận là mức độ nhận biết. Để biết thêm thông tin về việc chuyển tỷ lệ văn bản, bố cục bàn phím và nội dung mô tả âm thanh, hãy xem bài viết tài nguyên hỗ trợ tiếp cận.

Các phương pháp hay nhất để thúc đẩy mức độ tương tác trên Google TV

Tất cả các ứng dụng dành riêng cho Android TV đều hoạt động trên các thiết bị chạy Google TV. Để mang lại trải nghiệm tốt nhất cho người dùng trên Google TV, bạn nên áp dụng các phương pháp hay nhất sau đây.

Bạn cần sử dụng MediaSession để cung cấp một cách tương tác phổ biến với trình phát âm thanh hoặc video. Để biết thêm thông tin về cách triển khai việc này, hãy xem bài viết Sử dụng Media3 MediaSession.

Là cơ sở, ứng dụng của bạn cần hỗ trợ Google Cast. Phiên bản này cho phép bạn mở rộng ứng dụng Android, iOS và Chrome để cho phép phát trực tuyến âm thanh và video tới Android TV cũng như thiết bị Chromecast và thiết bị có Trợ lý. Để biết thêm thông tin, hãy xem tài liệu về Google Cast.

Bạn cũng có thể giúp người dùng:

  • Khám phá nội dung trên các nền tảng bằng cách cung cấp nguồn cấp dữ liệu hành động đối với nội dung đa phương tiện hoặc tích hợp tính năng Watch Next.

  • Tận dụng tính năng thoại và tương tác bằng cách hỗ trợ liên kết tài khoản và đồng bộ hoá quyền, cung cấp tính năng truyền giọng nói và bật Cast Connect.

  • Thanh toán dễ dàng hơn bằng cách tích hợp Google Play Billing và cung cấp các gói thuê bao tiện dụng.

Xây dựng khung đầu vào TV

Việc xem chương trình truyền hình trực tiếp và nội dung liên tục theo kênh là một phần quan trọng của trải nghiệm xem truyền hình. Người dùng đã quen với việc chọn và xem các chương trình trên TV bằng cách duyệt qua kênh. Khung đầu vào của TV tạo các kênh để xuất bản nội dung âm thanh hoặc nhạc trong hướng dẫn lập trình TV.

Khung đầu vào của TV cung cấp một phương thức hợp nhất để nhận và phát nội dung video trực tiếp từ các nguồn phần cứng, chẳng hạn như cổng HDMI và bộ chỉnh âm tích hợp cũng như các nguồn phần mềm, chẳng hạn như video phát trực tuyến qua Internet. Để biết thêm thông tin, hãy xem nội dung Tạo dịch vụ đầu vào TV.