Các ứng dụng truyền hình phát âm thanh có thể tiếp tục phát sau khi người dùng quay lại màn hình chính hoặc chuyển sang một ứng dụng khác. Để làm như vậy, ứng dụng phải cung cấp thẻ Phát hiện nhạc (Now Playing) trên màn hình chính. Thẻ này giúp người dùng biết nguồn phát âm thanh và quay lại ứng dụng của bạn để điều khiển chế độ phát nội dung nghe nhìn.
Bất cứ khi nào có một MediaSession đang hoạt động, khung Android sẽ hiển thị thẻ Phát hiện nhạc trên màn hình chính. Thẻ này bao gồm siêu dữ liệu về nội dung nghe nhìn, chẳng hạn như ảnh bìa đĩa nhạc, tiêu đề và biểu tượng ứng dụng. Khi người dùng chọn thẻ, hệ thống sẽ mở ứng dụng.
Thẻ Phát hiện nhạc
Sau khi bạn triển khai một phiên nội dung nghe nhìn, hãy đặt phiên đó thành phiên đang hoạt động và yêu cầu lấy quyền phát âm thanh, thẻ Phát hiện nhạc sẽ xuất hiện.
Lưu ý: Thẻ Phát hiện nhạc chỉ xuất hiện cho phiên nội dung nghe nhìn có cờ FLAG_HANDLES_TRANSPORT_CONTROLS được đặt. Cờ này không được dùng nữa trên cấp độ API 26. Tuy nhiên, bạn vẫn có thể cần cờ này trên các thiết bị cũ để đảm bảo khả năng tương thích ngược.
Thẻ này sẽ bị xoá khỏi màn hình trình chạy khi một lệnh gọi setActive(false) huỷ kích hoạt phiên nội dung nghe nhìn hoặc khi một ứng dụng khác bắt đầu phát nội dung nghe nhìn. Nếu quá trình phát hoàn toàn dừng và không có nội dung nghe nhìn nào đang phát, hãy huỷ kích hoạt phiên nội dung nghe nhìn ngay lập tức. Nếu quá trình phát bị tạm dừng, hãy huỷ kích hoạt phiên phát nội dung đa phương tiện sau một khoảng thời gian trễ, thường là từ 5 đến 30 phút.
Cập nhật thẻ
Bất cứ khi nào ứng dụng của bạn cập nhật trạng thái phát trong MediaSession, thẻ Phát hiện nhạc sẽ cập nhật để cho biết trạng thái của nội dung nghe nhìn hiện tại. Để tìm hiểu cách thực hiện việc này, hãy xem phần Cập nhật trạng thái phát.
Tương tự, ứng dụng của bạn có thể cập nhật MediaMetadata để cung cấp thông tin cho thẻ Phát hiện nhạc về nội dung nghe nhìn hiện tại, chẳng hạn như tiêu đề, phụ đề và nhiều biểu tượng. Để tìm hiểu cách thực hiện việc này, hãy xem phần Cập nhật siêu dữ liệu nội dung nghe nhìn.
Phản hồi hành động của người dùng
Khi người dùng chọn thẻ Phát hiện nhạc, hệ thống sẽ mở ứng dụng sở hữu phiên phát đó. Nếu ứng dụng của bạn cung cấp một PendingIntent cho setSessionActivity(), hệ thống sẽ khởi chạy hoạt động mà bạn chỉ định, như minh hoạ trong đoạn mã sau. Nếu không, ý định mặc định của hệ thống sẽ mở ra. Hoạt động mà bạn chỉ định phải cung cấp các chế độ phát cho phép người dùng tạm dừng hoặc dừng phát.
Kotlin
val pi: PendingIntent = Intent(context, MyActivity::class.java).let { intent -> PendingIntent.getActivity( context, 99 /*request code*/, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE ) } session.setSessionActivity(pi)
Java
Intent intent = new Intent(context, MyActivity.class); PendingIntent pi = PendingIntent.getActivity(context, 99 /*request code*/, intent, PendingIntent.FLAG_UPDATE_CURRENT); session.setSessionActivity(pi);
Các trường hợp sử dụng được chấp nhận
Thẻ Phát hiện nhạc chỉ nên được dùng trong trường hợp người dùng muốn âm thanh tiếp tục phát ở chế độ nền khi rời khỏi ứng dụng của bạn. Quá trình phát video hoặc âm thanh từ một trò chơi phải luôn tạm dừng, trừ phi ứng dụng của bạn đang tích hợp và tuân thủ chế độ hình trong hình.