Os apps para TV precisam exibir um card Tocando agora ao reproduzir mídia por trás da tela de início ou em segundo plano. Esse card permite que os usuários retornem ao app que está exibindo mídia.
O framework do Android mostra um card Tocando agora na tela
inicial quando há um MediaSession
ativo.
O card inclui metadados de mídia, como a capa do álbum, o título e um ícone do app.
Quando o usuário seleciona esse card, o sistema abre o app.
Você pode usar a classe MediaSession
para implementar
o card Tocando agora.
Card Tocando agora
Depois de implementar uma sessão de mídia, definir a sessão como ativa e solicitar a seleção de áudio, o card Tocando agora será exibido.
Observação:o card Tocando agora é exibido somente para uma sessão
de mídia com a flag
FLAG_HANDLES_TRANSPORT_CONTROLS
definida. Essa sinalização foi descontinuada no nível 26 da API. No entanto, essa sinalização ainda pode ser necessária em dispositivos mais antigos para garantir a compatibilidade com versões anteriores.
O card é removido da tela de início quando uma chamada
setActive(false)
desativa a sessão de mídia ou quando outro app inicia a reprodução. Se a reprodução for completamente interrompida e não houver mídia ativa, desative a sessão de mídia imediatamente. Se a reprodução estiver pausada, desative a sessão de mídia após um atraso,
geralmente de 5 a 30 minutos.
Atualize o cartão
Sempre que seu app atualiza o estado da reprodução no MediaSession
, o card
Tocando agora é atualizado para mostrar o estado da mídia atual. Para saber como fazer isso, consulte
Atualizar o estado da reprodução.
Da mesma forma, seu app pode atualizar o
MediaMetadata
para fornecer
informações ao card Tocando agora sobre a mídia atual, como título, subtítulo
e vários ícones. Para saber como fazer isso, consulte
Atualizar os metadados de mídia.
Responder à ação do usuário
Quando o usuário seleciona o card Tocando agora, o sistema abre o app proprietário da
sessão. Se o app fornecer um
PendingIntent
para
setSessionActivity()
,
o sistema vai iniciar a atividade especificada, conforme mostrado no snippet de código a seguir. Caso contrário, a intent padrão do sistema será aberta. A atividade especificada precisa oferecer controles de reprodução que permitam aos usuários pausar ou interromper a reprodução.
Kotlin
val pi: PendingIntent = Intent(context, MyActivity::class.java).let { intent -> PendingIntent.getActivity( context, 99 /*request code*/, intent, PendingIntent.FLAG_UPDATE_CURRENT ) } 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);