Quando o conteúdo é transmitido para um receptor da Web, o usuário precisa sempre poder controlá-lo pelo app remetente.
Observação: de acordo com os Termos de Serviço adicionais para desenvolvedores do SDK do Google Cast, um app de mídia do Google Cast precisa usar as APIs Play Control (Mensagens de reprodução de mídia) definidas para o SDK a fim de controlar a reprodução de mídia no receptor da Web.
Os apps de envio precisam oferecer controles de transmissão nestas áreas:
- Transmitir caixa de diálogo durante a transmissão
- Controles de volume do remetente
- Controlador expandido do remetente
- Minicontrolador do remetente
- Notificação do remetente
- Tela de bloqueio do remetente
O status de reprodução do Cast do app remetente e os controles nessas áreas precisam estar sincronizados com as mudanças de reprodução que ocorrem no receptor da Web, mesmo quando não são originados pelo app remetente. Isso permite o processamento adequado dos comandos de vários remetentes e do controle de reprodução proveniente de controles remotos, botões etc. do dispositivo.
Android
Controles da caixa de diálogo de transmissão
![](https://developers.google.cn/static/cast/images/a/sender-cast-menu-active1.png?authuser=19&hl=pt-br)
Minicontrole
![](https://developers.google.cn/static/cast/images/a/sender-persistent-control1.png?authuser=19&hl=pt-br)
Controles de notificações
![](https://developers.google.cn/static/cast/images/a/sender-control-notification1.png?authuser=19&hl=pt-br)
Contr. de tela de bloq.
![](https://developers.google.cn/static/cast/images/a/sender-control-lockscreen1.png?authuser=19&hl=pt-br)
iOS
Controles da caixa de diálogo de transmissão
![](https://developers.google.cn/static/cast/images/i/sender-cast-menu-active1.png?authuser=19&hl=pt-br)
Minicontrole
![](https://developers.google.cn/static/cast/images/i/sender-persistent-control1.png?authuser=19&hl=pt-br)
Chrome
Controles da caixa de diálogo de transmissão
![](https://developers.google.cn/static/cast/images/w/sender-cast-menu-active1.jpg?authuser=19&hl=pt-br)
Minicontrole
![](https://developers.google.cn/static/cast/images/w/sender-persistent-control1.jpg?authuser=19&hl=pt-br)
Controles de volume do remetente
O app remetente precisa permitir que os usuários controlem o volume do conteúdo reproduzido na TV ou nos alto-falantes usando os botões de volume do hardware e/ou o controle deslizante de volume do software no dispositivo de envio. Elas controlam um dos seguintes itens:
- O nível de áudio enviado à TV para dispositivos com Google Cast, como o Chromecast.
- O volume real da TV/alto-falante nativo para Google Cast TVs, TVs com Android TV integrado e alto-falantes inteligentes.
Obrigatório
A O app remetente precisa permitir que os usuários controlem o volume do
conteúdo reproduzido na TV ou nos alto-falantes usando os botões de volume do hardware e/ou o controle deslizante
de volume do software no dispositivo de envio.
- Android: o suporte para os botões de hardware e o controle deslizante de volume de software é obrigatório.
- iOS: o controle deslizante de volume do software é obrigatório.
- Web/Chrome: o suporte para o controle deslizante de volume de software é obrigatório.
B No dispositivo móvel, o controle deslizante do volume do software precisa estar disponível na caixa de diálogo "Transmitir" durante a transmissão.
C O controle deslizante do app remetente precisa ser sincronizado com o volume atual do receptor da Web após a conexão com o receptor.
D O controle deslizante de volume no app remetente precisa refletir as alterações de volume feitas por outros remetentes ou pelo controle remoto do app Chromecast.
E Os apps do remetente nunca devem definir o volume para um nível predefinido. Eles só devem transmitir alterações de volume iniciadas pelo usuário.
F Somente Android: ao usar os botões físicos para mudar o nível de volume no Web Receiver, um controle deslizante de volume visual (com um ícone do Google Cast à esquerda) precisa aparecer quando os botões de volume do hardware são pressionados. Observação: no Android Gingerbread (versão 2.3), o ícone do Google Cast não aparecerá.
Práticas recomendadas
- Incrementos de volume:
- Android: o framework incrementa o volume automaticamente.
- iOS e Chrome: para botões de volume do hardware, use incrementos de 5% ou menos na faixa de volume total do dispositivo receptor da Web para dispositivos de áudio/vídeo e incrementos de 2% da faixa de volume total do dispositivo receptor da Web para dispositivos somente de áudio.
Controlador expandido do remetente
O app remetente precisa fornecer um controle expandido para o conteúdo que está sendo transmitido.
Obrigatório
A Identifique o conteúdo transmitido exibindo o título ou o material gráfico do conteúdo.
B Antes da reprodução começar, mostre um indicador de carregamento
e o título ou arte do conteúdo.
C Quando o conteúdo começar, identifique o estado do
receptor da Web.
D Fornecer controles relevantes.
E Na extremidade esquerda da barra de busca, mostre o tempo de reprodução
atual.
No lado direito, mostre a duração total da transmissão, se ela for conhecida e se não for uma transmissão ao vivo.
F Ocultar controles não relevantes para a transmissão.
G Não desconecte nem interrompa a transmissão quando os usuários navegarem para fora do controle expandido.
H Ofereça um caminho fácil para o controle expandido
quando os usuários saírem.
Práticas recomendadas
- Fornecer um controle deslizante de posição de reprodução para streams de mídia.
- Mostre outras artes e metadados significativos relacionados ao conteúdo.
- Identifique o tempo decorrido e a duração do conteúdo de streams de mídia.
Android
Carregando conteúdo do remetente
![Carregando conteúdo do remetente](https://developers.google.cn/static/cast/images/a/sender-control-elements1_a.png?authuser=19&hl=pt-br)
Carregando conteúdo do receptor
![](https://developers.google.cn/static/cast/images/r/receiver-content-loading1.gif?authuser=19&hl=pt-br)
Conteúdo do remetente em reprodução
![](https://developers.google.cn/static/cast/images/a/sender-control-elements2_a.png?authuser=19&hl=pt-br)
Receptor da Web reproduzindo conteúdo
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
iOS
Carregando conteúdo do remetente
![](https://developers.google.cn/static/cast/images/i/sender-control-elements1_a.gif?authuser=19&hl=pt-br)
Carregando conteúdo do receptor da Web
![](https://developers.google.cn/static/cast/images/r/receiver-content-loading1.gif?authuser=19&hl=pt-br)
Conteúdo do remetente em reprodução
![](https://developers.google.cn/static/cast/images/i/sender-control-elements2_a.png?authuser=19&hl=pt-br)
Receptor da Web reproduzindo conteúdo
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
Chrome
Carregando conteúdo do remetente
![](https://developers.google.cn/static/cast/images/w/sender-control-elements1_a.gif?authuser=19&hl=pt-br)
Carregando conteúdo do receptor da Web
![](https://developers.google.cn/static/cast/images/r/receiver-content-loading1.gif?authuser=19&hl=pt-br)
Conteúdo do remetente em reprodução
![](https://developers.google.cn/static/cast/images/w/sender-control-elements2_a.jpg?authuser=19&hl=pt-br)
Receptor da Web reproduzindo conteúdo
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
Minicontrolador do remetente
Um controle pequeno e persistente conhecido como minicontrole aparece durante a transmissão quando o usuário sai da página de conteúdo atual ou do controlador expandido para outra visualização no app remetente. O minicontrole é um lembrete visível da transmissão atual e fornece acesso instantâneo a ela.
Obrigatório
A Uma barra ou caixa que mostra o que está sendo transmitido aparece perto
da parte de baixo do app remetente. Esses controles persistem enquanto o usuário navega por outros conteúdos ou
seções do app.
B Os controles funcionam melhor quando são simples e
comunicam o que está sendo transmitido.
C Disponível em todas as telas do app (exceto na página expandida
do controlador).
D Toque na área de conteúdo para abrir o controle expandido.
E Fornecer outros controles relevantes para ação imediata.
Práticas recomendadas
Para a melhor experiência do usuário, forneça controles na
caixa de diálogo
Transmitir, além do minicontrole.
Android
Minicontrolador do remetente
![](https://developers.google.cn/static/cast/images/a/sender-persistent-control1_a.png?authuser=19&hl=pt-br)
Conteúdo do receptor da Web pausado
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
iOS
Minicontrolador do remetente
![](https://developers.google.cn/static/cast/images/i/sender-persistent-control1_a.png?authuser=19&hl=pt-br)
Conteúdo do receptor da Web pausado
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
Chrome
Minicontrolador do remetente
![](https://developers.google.cn/static/cast/images/w/sender-persistent-control1_a.jpg?authuser=19&hl=pt-br)
Conteúdo do receptor da Web pausado
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
Notificação do remetente
Obrigatório (somente Android)
Um Use o ícone do app (não o ícone do Google Cast) na notificação na
barra de status.
B Identifique o conteúdo que está sendo transmitido. Por exemplo, mostre
o título do conteúdo ou a arte.
C Identifique qual receptor da Web está transmitindo.
D Fornecer controles básicos de conteúdo.
E Na linha de ações, insira um "X" para interromper a transmissão e se desconectar do Web Receiver.
F Ao tocar no logotipo, título do conteúdo ou arte do app, o controle expandido do app remetente será aberto.
Observações
- Somente Android: não é possível implementar notificações no iOS ou no Chrome.
- No Android Gingerbread (versão 2.3), as notificações exibirão apenas o ícone e o texto do app, e não para reproduzir/pausar ou parar.
- Para saber mais, consulte como adicionar controles de mídia a notificações.
Android
Ícone de notificação do remetente
![](https://developers.google.cn/static/cast/images/a/sender-control-notification1_a.png?authuser=19&hl=pt-br)
Receptor da Web reproduzindo conteúdo
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
Controles de notificação do remetente
![](https://developers.google.cn/static/cast/images/a/sender-control-notification2_a.png?authuser=19&hl=pt-br)
Receptor da Web reproduzindo conteúdo
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
Tela de bloqueio do remetente
Obrigatório (somente Android)
A Identifique a transmissão usando o título ou o material gráfico.
B Identifique qual receptor da Web está transmitindo. Observação: isso
não é necessário para apps de música.
C Forneça controles de mídia.
D Oferece acesso ao controle de volume por botões físicos.
Obrigatório para o Android 4.4 KitKat e versões mais recentes:
- Ícone do app
- Arte (por exemplo, capa do álbum)
- Identifique no texto qual conteúdo está sendo transmitido (por exemplo, "Lágrimas de Aço").
- Identificar qual receptor da Web está transmitindo (por exemplo, "Sala de estar")
Obrigatório para o Android 4.3 Jelly Bean:
- Arte (por exemplo, capa do álbum)
- Identifique no texto qual conteúdo está sendo transmitido (por exemplo, "Lágrimas de Aço").
- Identificar qual receptor da Web está transmitindo (por exemplo, "Sala de estar")
Observações
- Somente Android: não é possível implementar notificações no iOS ou no Chrome.
- Os controles da tela de bloqueio são necessários para o Android 4.1 e versões mais recentes.
- Diferentes controles estão disponíveis para diferentes versões do sistema operacional Android, e a tela de bloqueio pode acomodar apenas campos de texto. Em geral, gráficos e iconografia descrevem o conteúdo de forma mais imediata do que o texto.
- Os botões físicos de controle de volume precisam ajustar o volume no app remetente quando o smartphone estiver bloqueado.
- O controle precisa usar o componente de framework:
MediaSession
ouMediaSessionCompat
(para as versões 4.4 e 4.3) ouNotification
(para 5.0 e mais recentes).
Android
Controles da tela de bloqueio do remetente
![](https://developers.google.cn/static/cast/images/a/sender-control-lockscreen1_a.png?authuser=19&hl=pt-br)
Receptor da Web reproduzindo conteúdo
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
O remetente retoma a transmissão
Um app remetente conectado precisa restaurar o estado conectado após uma desconexão implícita, como uma queda de rede, um dispositivo em suspensão ou descarga da bateria.
Obrigatório
A Se o app remetente for desconectado implicitamente (o usuário
não interrompeu a transmissão nem se desconecta explicitamente), o conteúdo da transmissão continuará sendo reproduzido
no receptor da Web. Quando o app ou a conexão forem reiniciados, o app remetente precisará restaurar a
conexão com o receptor da Web, desde que a sessão dele ainda esteja atual.
B O botão Transmitir será restaurado ao estado conectado.
C Se o usuário tocar no botão Transmitir antes de o remetente
se reconectar, a lista de dispositivos receptores da Web será exibida. Quando o usuário seleciona o receptor da Web
transmitindo, um controle mini ou expandido aparece no app remetente.
Observações
O app Web Receiver também pode se desconectar e parar de funcionar devido a uma falha de energia ou alguma outra
interrupção fora de contexto. Isso é tratado como um fim de sessão comum, conforme descrito em
O remetente interrompe a transmissão.
Android
Como selecionar o app
![](https://developers.google.cn/static/cast/images/a/sender-control-resume1_a.png?authuser=19&hl=pt-br)
Receptor da Web reproduzindo conteúdo
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
Conexão de transmissão restaurada
![](https://developers.google.cn/static/cast/images/a/sender-control-resume2_a.png?authuser=19&hl=pt-br)
Receptor da Web reproduzindo conteúdo
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
iOS
Como selecionar o app
![](https://developers.google.cn/static/cast/images/i/sender-control-resume1_a.png?authuser=19&hl=pt-br)
Receptor da Web reproduzindo conteúdo
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
Conexão de transmissão restaurada
![](https://developers.google.cn/static/cast/images/i/sender-control-resume2_a.png?authuser=19&hl=pt-br)
Receptor da Web reproduzindo conteúdo
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
O remetente interrompe a transmissão
O conteúdo transmitido para a TV continua sendo reproduzido até que o usuário escolha "Parar transmissão" ou o remetente transmita algo novo. Quando vários remetentes estão conectados ao mesmo receptor da Web, cada app de remetente precisa ter um botão "Desconectar" (em vez de um botão "Parar transmissão") na caixa de diálogo do Google Cast.
Obrigatório
A Quando vários remetentes estiverem conectados a um receptor da Web,
pressionar "Parar transmissão de um app remetente" não fará nada para o receptor da Web e removerá
os controles e as notificações do Google Cast desse dispositivo remetente. Os demais dispositivos remetentes conectados permanecem
conectados com os controles de transmissão disponíveis.
B Quando um app remetente é desconectado implicitamente (por exemplo,
a bateria do dispositivo remetente acaba ou a conexão de rede do dispositivo remetente com o receptor da Web
cai), ele não faz nada com o receptor da Web e remove os controles e as notificações do Google Cast
do dispositivo remetente. O app remetente precisa rastrear desconexões implícitas e tentar se
reconectar a um receptor da Web quando o app remetente for aberto novamente.
Android
Caixa de diálogo Transmitir, botão "Desconectar"
![](https://developers.google.cn/static/cast/images/a/sender-control-end1.png?authuser=19&hl=pt-br)
Receptor da Web reproduzindo conteúdo
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
iOS
Caixa de diálogo Transmitir, botão "Desconectar"
![](https://developers.google.cn/static/cast/images/i/sender-control-end1.png?authuser=19&hl=pt-br)
Receptor da Web reproduzindo conteúdo
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
Chrome
Caixa de diálogo Transmitir, botão "Desconectar"
![](https://developers.google.cn/static/cast/images/w/sender-control-end1.jpg?authuser=19&hl=pt-br)
Receptor da Web reproduzindo conteúdo
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=19&hl=pt-br)
As imagens usadas neste guia de design são cortesia da Blender Foundation, compartilhadas sob direitos autorais ou licença Creative Commons.
- Elephant's Dream: (c) copyright 2006, Blender Foundation / English Media Art Institute / www.elephantsdream.org
- Sintel: (c) copyright Blender Foundation | www.sintel.org
- Tears of Steel: (CC) Blender Foundation | mango.blender.org
- Big Buck Bunny: (c) direitos autorais 2008, Blender Foundation / www.bigbuckbunny.org