Android mang đến cho người dùng trải nghiệm phong phú và được tối ưu hoá cho ứng dụng chạy trên 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 hướng dẫn cách thực hiện việc này một cách hiệu quả.
Xây dựng ứng dụng dành cho TV
Ứng dụng cho TV 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. Điều này có nghĩa là bạn có thể tạo ứng dụng TV mới dựa trên những kiến thức sẵn có về lập trình ứng dụng cho Android, hoặc mở rộng ứng dụng sẵn có để chạy trên các thiết bị TV.
Tuy nhiên, mô hình tương tác của người dùng với TV rất khác với mô hình tương tác trên điện thoại và máy tính bảng. Để ứ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ể được hiểu rõ từ khoảng cách 3 mét và cung cấp tính năng điều hướng chỉ bằng bàn phím định hướng và nút chọn.
Để biết thêm thông tin về các vấn đề cần cân nhắc như cách xử lý tay điều khiển phần cứng TV, tạo bố cục TV và tạo thao tác điều hướng trên TV, hãy xem phần Tạo ứng dụng 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ư khả năng 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 bổ sung thêm các tiện ích như hỗ trợ nhiều giao thức truyền 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ý tính năng lưu vào bộ đệm nội dung nghe nhìn.
Bạn có thể tuỳ chỉnh và mở rộng ExoPlayer, đồng thời có thể cập nhật thông qua các bản cập nhật ứng dụng Cửa hàng Play. Để biết thêm thông tin, hãy xem bài viết Media3 ExoPlayer.
Sử dụng MediaSession
Media3
Phiên phát nội dung nghe nhìn là cách thức phổ biến để hệ thống tương tác với trình phát âm thanh hoặc trình phát 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 đó là không cần đến trình kết nối giữa các thành phần nữa.
Lớp MediaSession
mới sẽ lấy bất kỳ lớp nào triển khai giao diện Player. 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 phần Giao diện Player.
Để 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 phần 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 tạo Player
và cung cấp 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 tự động cập nhật phiên phát nội dung đa phương tiện bằng trạng thái của trình phát. Do đó, bạn không cần phải xử lý việc liên kết 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 thấy thông tin mới nhất về 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, lớp này triển khai giao diện Player. Việc kết nối phiên phát nội dung nghe nhìn với trình phát cho phép ứng dụng quảng cáo việc phát nội dung nghe nhìn 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 nghe nhìn 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 nghe nhìn là yếu tố chính để kiểm soát quá trình phát. Lớp này cho phép bạn định tuyến các lệnh từ các nguồn bên ngoài đến trình phát thực hiện việc phát nội dung nghe nhìn. Ứng dụng bên ngoài có thể sử dụng trình điều khiển nội dung nghe nhìn để đưa ra các lệnh phát cho ứng dụng đa phương tiện. Các lệnh này được phiên phát nội dung nghe nhìn nhận và cuối cùng sẽ uỷ quyền các lệnh cho trình phát nội dung nghe nhìn.
Để biết thêm thông tin về chế độ 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 sự cố không cần thiết như:
Tiếp tục phát và phát ngoài dự kiến khi tắt TV hoặc chuyển đổi đầu vào TV. Điều này cũng khiến phần cứng TV tiêu thụ nhiều năng lượng. 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 nghe nhìn và nền tảng có thể thông báo cho ứng dụng rằng quá trình phát có thể dừng.Quá trình phát nhạc dừng đột ngột khi bạn thoát khỏi ứng dụng hoặc tắt màn hình TV. Việc sử dụng API
MediaSession
cho phép tiếp tục phát trong dịch vụ nền.Hạn chế tương tác với nội dung khiến người dùng không thể kiểm soát việc phát. Ví dụ: quay lại ứng dụng nếu ứng dụng đang phát nhạc ở chế độ nền hoặc hỗ trợ lệnh thoại. Với
MediaSession
trong ứng dụng, người dùng có thể dùng lệnh thoại để tua và bỏ qua bài hát hoặc tập.
Các điểm cần cân nhắc khác
Khi mở rộng ứng dụng đa phương tiện sang Android cho TV, bạn cần cân nhắc các vấn đề về hỗ trợ tiếp cận, cách tăng mức độ tương tác, cách giú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 cho TV.
Hỗ trợ tiếp cận trên TV
Mặc dù các công nghệ hỗ trợ có thể và đang giúp người dùng có thị lực kém, nhưng điều quan trọng là phải hỗ trợ chức năng hỗ trợ tiếp cận trong hành trình khám phá nội dung của ứng dụng TV.
Ví dụ: hãy chú ý hơn đến việc cung cấp hướng dẫn điều hướng và gắn nhãn các phần tử đúng cách, đồng thời giúp đảm bảo rằng các ứng dụng 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 khiếm thị.
Bước đầu tiên để cải thiện khả năng hỗ trợ tiếp cận là nhận thức. Để biết thêm thông tin về việc điều chỉnh tỷ lệ văn bản, bố cục bàn phím và nội dung mô tả bằng âm thanh, hãy xem 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ả ứng dụng được tạo 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 chung với trình phát âm thanh hoặc video. Để biết thêm thông tin về cách triển khai tính năng này, hãy xem phần Sử dụng MediaSession Media3.
Về cơ bản, ứng dụng của bạn cần hỗ trợ Google Cast. API này cho phép bạn mở rộng các ứng dụng Android, iOS và Chrome để bật tính năng phát trực tuyến âm thanh và video đến Android TV cũng như các thiết bị Chromecast và 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 nhiều nền tảng bằng cách cung cấp nguồn cấp dữ liệu thao tác trên nội dung đa phương tiện hoặc tích hợp Watch Next.
Tận dụng tính năng thoại và tương tác bằng cách hỗ trợ tính năng liên kết tài khoản và đồng bộ hoá quyền, cung cấp tính năng truyền bằng 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 gói thuê bao không gây phiền hà.
Xây dựng khung đầu vào TV
Việc xem các chương trình truyền hình trực tiếp và nội dung liên tục khác dựa trên kênh là một phần quan trọng trong trải nghiệm xem TV. Người dùng đã quen với việc chọn và xem chương trình trên TV bằng cách duyệt qua các kênh. TV Input Framework tạo các kênh để phát hành nội dung video hoặc âm nhạc trong chương trình truyền hình.
Khung đầu vào 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ộ thu sóng tích hợp, cũng như các nguồn phần mềm, chẳng hạn như video được truyền trực tuyến qua Internet. Để biết thêm thông tin, hãy xem bài viết Tạo dịch vụ đầu vào TV.