Os apps de TV que reproduzem áudio podem continuar fazendo isso depois que o usuário retornar à tela inicial ou alternar para outro app. Para isso, o app precisa fornecer um card Tocando agora na tela inicial. Esse card permite que os usuários entendam de onde o áudio está vindo e retornem ao app para controlar a reprodução de mídia.
Sempre que uma
MediaSession estiver
presente, o framework do Android vai mostrar um card Tocando agora na tela inicial. 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.
Card Tocando agora
Depois de implementar uma sessão de mídia, defina a sessão como ativa e solicite o foco de áudio. O card Tocando agora vai aparecer.
Observação:o card Tocando agora é mostrado apenas para uma sessão de mídia com a flag FLAG_HANDLES_TRANSPORT_CONTROLS definida. Essa flag foi descontinuada no nível 26 da API. No entanto, ela ainda pode ser necessária em dispositivos mais antigos para compatibilidade com versões anteriores.
O card é removido da tela de início quando uma
setActive(false)
chamada desativa a sessão de mídia ou quando outro app inicia a reprodução de mídia. 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 for pausada, desative a sessão de mídia após um atraso,
geralmente de 5 a 30 minutos.
Atualizar o card
Sempre que o app atualizar o estado da reprodução na MediaSession, o
card Tocando agora será atualizado para mostrar o estado da mídia atual. Para saber como fazer isso, consulte
Atualizar o estado da reprodução.
Da mesma forma, o 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 dono 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,
o intent padrão do sistema será aberto. 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 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);
Casos de uso aceitos
O card Tocando agora só deve ser usado em casos em que o usuário espera que o áudio continue sendo reproduzido em segundo plano ao sair do app. A reprodução de vídeo ou o som de um jogo sempre devem ser pausados, a menos que o app esteja integrado e em conformidade com o picture-in-picture.