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ả.
Tạo ứ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 người dùng cho TV khác biệt đáng kể so với thiết bị điện thoại và máy tính bảng. Để giúp ứng dụng 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 (10 feet), đồng thời cung cấp thành phần điều hướng chỉ cần dùng bàn phím di chuyển và nút chọn.
Để biết thêm thông tin về các điểm 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 có thêm nhiều lợi ích như 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.
Bạn có thể tuỳ chỉnh và mở rộng ExoPlayer, đồng thời cập nhật ứng dụng này thông qua 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 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 Media3 khác biệt với các API nội dung nghe nhìn trước đây 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();
Tự động xử lý trạng thái
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 đa phương tiện là chìa khoá để điều khiển 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. Các ứng dụng bên ngoài có thể sử dụng trình điều khiển nội dung nghe nhìn để phát lệnh phát cho ứng dụng đa phương tiện của bạn. Phiên phát nội dung đa phương tiện sẽ nhận các lệnh này và sau 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 tình trạng gián đoạn không cần thiết, chẳng hạn như:
Phát liên tục và ngoài dự kiến khi tắt TV hoặc chuyển đổi đầu vào của 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 của bạn, người dùng có thể sử dụng lệnh thoại để tìm và bỏ qua bài hát hoặc các tập.
Các yếu tố khác cần cân nhắ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à giúp ích cho 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 ứng dụng TV đóng vai trò quan trọng.
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 tích hợp 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
để mang đến 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 phương thức này, hãy xem bài viết Sử dụng Media3 MediaSession.
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 để phát trực tuyến âm thanh và video sang Android TV cũng như các 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 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 nghe nhì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ợ 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 nhạc trong hướng dẫn lập 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 phát 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.