App remetente

Quando o conteúdo é transmitido para um receptor da Web, o usuário precisa sempre conseguir 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 de controle do Google Play (Media Playback Messages) definidas para o SDK controlar a reprodução de mídia no receptor da Web.

Os apps remetentes precisam fornecer controles de transmissão nestas áreas:

Os controles e o status de reprodução do Cast do app remetente nessas áreas precisam estar sincronizados com as mudanças de reprodução no receptor da Web, mesmo quando não originados do app remetente. Isso permitirá o processamento adequado de comandos de vários remetentes e do controle de reprodução originado dos controles remotos, botões etc. do dispositivo.

Android

Controles da caixa de diálogo de transmissão

Minicontrole

Controles de notificação

Contr. de tela de bloq.

iOS

Controles da caixa de diálogo de transmissão

Minicontrole

Chrome

Controles da caixa de diálogo de transmissão

Minicontrole

 

Controles de volume do remetente

O app remetente precisa permitir que os usuários controlem o volume do conteúdo exibido na TV ou nos alto-falantes, usando os botões de volume de hardware e/ou controle deslizante de volume de software no dispositivo remetente. Eles controlam uma destas opções:

  • O nível de áudio enviado à TV para dispositivos Google Cast, como o Chromecast.
  • O volume real de TV/alto-falante nativo para o Google Cast TV, 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 exibido na TV ou nos alto-falantes, usando os botões de volume de hardware e/ou controle deslizante de volume de software no dispositivo remetente.

  • Android: a compatibilidade com botões de hardware e controles deslizantes de volume de software é obrigatória.
  • iOS: o controle deslizante de volume de software é obrigatório.
  • Web/Chrome: a compatibilidade com o controle deslizante de volume de software é obrigatória.

B No dispositivo móvel, o controle deslizante de volume do software precisa estar disponível na caixa de diálogo do Google Cast, durante a transmissão.
C O controle deslizante de volume no app remetente precisa ser sincronizado com o volume atual do receptor da Web depois de se conectar ao receptor e permanecer em sincronia.
D O controle deslizante de volume no app remetente precisa refletir as mudanças de volume feitas por outros remetentes ou pelo controle remoto do app Chromecast.
E Os apps remetentes nunca devem definir o volume para um nível predefinido. Eles nunca devem passar por mudanças de volume iniciadas pelo usuário.
F Somente Android: ao usar os botões de hardware para alterar o nível de volume no Web Receiver, um controle deslizante de volume visual (com um ícone de transmissão à esquerda) precisa aparecer quando os botões de volume do hardware são pressionados. Observação: para Android Gingerbread (versão 2.3), o ícone Transmitir não é exibido.

Práticas recomendadas

  • Incrementos de volume:
    • Android: o framework incrementa o volume automaticamente.
    • iOS e Chrome: para botões de volume de hardware, use incrementos de menos de ou igual a 5% do intervalo de volume completo do dispositivo Web Receiver para dispositivos de áudio/vídeo e incrementos iguais a 2% do intervalo de volume completo do dispositivo receptor de Web para dispositivos somente de áudio.

Controlador expandido do remetente

O app remetente precisa fornecer um controlador expandido para o conteúdo que está sendo transmitido.

Obrigatório
A Identificar o conteúdo sendo transmitido exibindo o título ou a arte do conteúdo.
B Antes do início da exibição, exiba um indicador de carregamento e uma obra de arte ou um título de conteúdo.
C Quando o conteúdo é iniciado, identifica o estado do receptor da Web.
D Forneça controles relevantes.
E No canto esquerdo da barra de busca, exiba o tempo de reprodução atual.
No lado direito, exibe a duração total do stream se ele for conhecido e se não for um evento ao vivo.
F Oculte os controles que não são relevantes para a transmissão.
G Não desconecte nem interrompa a transmissão quando os usuários saírem do controle expandido.
H Oferece uma maneira fácil de voltar ao controlador expandido quando os usuários saem da página.

Práticas recomendadas

  • Forneça um controle deslizante de posição de reprodução para streams de mídia.
  • Exibir outras obras de arte e metadados significativos relacionados ao conteúdo.
  • Identifique o tempo decorrido e a duração do conteúdo para streams de mídia.

Android

Carregando o conteúdo do remetente

Carregando o conteúdo do destinatário

Conteúdo reproduzido pelo remetente

Receptor da Web reproduzindo conteúdo

iOS

Carregando o conteúdo do remetente

Carregamento de conteúdo do Web Receiver

Conteúdo reproduzido pelo remetente

Receptor da Web reproduzindo conteúdo

Chrome

Carregando o conteúdo do remetente

Carregamento de conteúdo do Web Receiver

Conteúdo reproduzido pelo remetente

Receptor da Web reproduzindo conteúdo

 

Minicontrolador remetente

Um controle pequeno e persistente, conhecido como minicontrole, deve aparecer durante a transmissão quando o usuário sair da página de conteúdo atual ou do controlador expandido para outra visualização no app de 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 exibe a transmissão: o que aparece na parte inferior 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 "Controlador expandida").
D Tocar na área de conteúdo abre o controle expandido.
E Ofereça outros controles relevantes para a ação imediata.

Práticas recomendadas
Para a melhor experiência do usuário, forneça controles na caixa de diálogo Cast além do minicontrole.

Android

Minicontrole do remetente

Conteúdo do receptor da Web pausado

iOS

Minicontrole do remetente

Conteúdo do receptor da Web pausado

Chrome

Minicontrole do remetente

Conteúdo do receptor da Web pausado

 

Notificação do remetente

Obrigatório (apenas Android)
A Use o ícone do app (não o ícone do Google Cast) para a notificação na barra de status.
B Identificar qual conteúdo é transmitido. Por exemplo, exiba o título ou a arte do conteúdo.
C Identificar qual receptor da Web está transmitindo
D Fornecer controles de conteúdo básicos.
E Forneça um "quot;X"" para interromper a transmissão e desconectar do receptor da Web, na linha de ações.
F Tocar no logotipo do app, no título do conteúdo ou na obra de arte deve abrir o controlador expandido do app remetente.

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, não reproduzir/pausar nem parar.
  • Para saber mais, consulte Como adicionar controles de mídia a notificações.

Android

Ícone de notificação do remetente

Receptor da Web reproduzindo conteúdo

Controles de notificação do remetente

Receptor da Web reproduzindo conteúdo

 

Tela de bloqueio do remetente

Obrigatório (somente Android)
A Identificar o conteúdo de transmissão usando o título ou a arte do conteúdo.
B Identificar qual receptor da Web está transmitindo Isso não é necessário para apps de música.
C Fornecer controles de mídia.
D Forneça acesso ao controle de volume usando os botões de hardware.

Obrigatório para Android 4.4 KitKat e versões mais recentes:

  • Ícone do app
  • Pôster (por exemplo, capa do álbum)
  • Identifique em texto qual conteúdo está transmitindo (por exemplo, "Tears of Steel")
  • Identifique qual receptor da Web está transmitindo (por exemplo, "Sala de estar")

Obrigatório para o Android 4.3 Jelly Bean:

  • Pôster (por exemplo, capa do álbum)
  • Identifique em texto qual conteúdo está transmitindo (por exemplo, "Tears of Steel")
  • Identifique 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 obrigató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, as imagens e a iconografia descrevem de forma mais imediata o conteúdo do que o texto.
  • Os botões de hardware de controle de volume precisam ajustar o volume no app remetente quando o smartphone está bloqueado.
  • O controle precisa usar o componente do framework: MediaSession ou MediaSessionCompat (para as versões 4.4 e 4.3) ou Notification (para 5.0 e posteriores).

Android

Controles da tela de bloqueio do remetente

Receptor da Web reproduzindo conteúdo

 

O remetente retoma a transmissão

Um app de remetente conectado precisa restaurar o estado conectado após uma desconexão implícita (como uma queda de rede, um dispositivo entra no modo de suspensão ou a bateria descarrega).

Obrigatório
A Se o app remetente se desconectar implicitamente (o usuário não parou explicitamente a transmissão ou desconexão), o conteúdo de transmissão continuará sendo reproduzido no receptor da Web. Quando o app ou a conexão for reiniciado, o app do remetente precisará restaurar a conexão com o receptor da Web, desde que a sessão do receptor da Web ainda esteja atual.
B O botão Transmitir precisa ser restaurado para o 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 que está sendo transmitido, um mini controle ou expandido precisa aparecer no app remetente.

Observações
O app Web Receiver também pode se desconectar e parar de funcionar devido a uma falta de energia ou a outra interrupção fora de contexto. Isso é considerado um fim de sessão comum, conforme descrito em O remetente para a transmissão.

Android

Como selecionar o app

Receptor da Web reproduzindo conteúdo

Conexão do Google Cast restaurada

Receptor da Web reproduzindo conteúdo

iOS

Como selecionar o app

Receptor da Web reproduzindo conteúdo

Conexão do Google Cast restaurada

Receptor da Web reproduzindo conteúdo

 

O remetente para de transmitir

O conteúdo transmitido para uma TV continua em exibição até que o usuário opte por Parar transmissão ou que um 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 de transmissão.

Obrigatório
A Quando vários remetentes estão conectados a um receptor da Web, pressionar "Parar transmissão" a partir de um app remetente não faz nada para o receptor da Web e remove os controles e notificações de transmissão desse dispositivo. Os dispositivos de remetente conectados restantes permanecem conectados com os controles de transmissão disponíveis.
B Quando um app remetente se desconecta implicitamente (por exemplo, a bateria do dispositivo do remetente é descartada ou a conexão de rede do dispositivo do remetente com o receptor da Web é descartada), ele não faz nada ao receptor da Web e remove os controles e notificações do Google Cast do dispositivo do remetente. O app remetente precisa monitorar as 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 de transmissão, botão "Desconectar"

Receptor da Web reproduzindo conteúdo

iOS

Caixa de diálogo de transmissão, botão "Desconectar"

Receptor da Web reproduzindo conteúdo

Chrome

Caixa de diálogo de transmissão, botão "Desconectar"

Receptor da Web reproduzindo conteúdo

 

 

As imagens usadas neste guia de design são cortesia da Blender Foundation, compartilhada sob a licença de direitos autorais ou Creative Commons.

  • Dream da Elephant: (c) direitos autorais 2006, Blender Foundation / Países Baixos 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