Aplicativo do remetente

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:

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

Minicontrole

Controles de notificações

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 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

Carregando conteúdo do receptor

Conteúdo do remetente em reprodução

Receptor da Web reproduzindo conteúdo

iOS

Carregando conteúdo do remetente

Carregando conteúdo do receptor da Web

Conteúdo do remetente em reprodução

Receptor da Web reproduzindo conteúdo

Chrome

Carregando conteúdo do remetente

Carregando conteúdo do receptor da Web

Conteúdo do remetente em reprodução

Receptor da Web reproduzindo conteúdo

 

  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

Conteúdo do receptor da Web pausado

iOS

Minicontrolador do remetente

Conteúdo do receptor da Web pausado

Chrome

Minicontrolador do remetente

Conteúdo do receptor da Web pausado

 

  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

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   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 ou MediaSessionCompat (para as versões 4.4 e 4.3) ou Notification (para 5.0 e mais recentes).

Android

Controles da tela de bloqueio do remetente

Receptor da Web reproduzindo conteúdo

 

  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

Receptor da Web reproduzindo conteúdo

Conexão de transmissão restaurada

Receptor da Web reproduzindo conteúdo

iOS

Como selecionar o app

Receptor da Web reproduzindo conteúdo

Conexão de transmissão restaurada

Receptor da Web reproduzindo conteúdo

 

  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"

Receptor da Web reproduzindo conteúdo

iOS

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

Receptor da Web reproduzindo conteúdo

Chrome

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

Receptor da Web reproduzindo conteúdo

 

 

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