Apps de TV que reproduzem áudio podem continuar a fazer isso depois que o usuário retornar à tela inicial ou mudar 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 seu app para controlar a reprodução de mídia.
Sempre que um MediaSession
ativo estiver presente, o framework do Android exibirá um card Tocando agora na tela inicial. O card
inclui metadados de mídia, como a capa do álbum, o título e o ícone do app. Quando o usuário seleciona o cartão,
o sistema abre o app.
Card "Tocando agora"
Depois de implementar uma sessão de mídia, defini-la como ativa e solicitar a seleção de áudio, o card Tocando agora será exibido.
Observação:o card Tocando agora é exibido 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, essa flag 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 o app atualizar o estado de 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 diversos í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 abaixo. 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);
Casos de uso aceitos
O card Tocando agora só deve ser usado nos 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 precisa sempre pausar, a menos que seu app esteja integrado e compatível com o picture-in-picture.