O SDK do receptor da Web fornece uma interface de jogador integrada. Para implementar essa interface
seu app receptor da Web personalizado, é necessário adicionar o elemento cast-media-player ao
o corpo do seu arquivo HTML.
<body>
  <cast-media-player></cast-media-player>
</body>
As variáveis CSS permitem que você personalize várias propriedades cast-media-player,
incluindo o plano de fundo do player, a imagem de apresentação, a família de fontes e muito mais. Você pode
adicione essas variáveis com estilos CSS em linha, uma folha de estilo CSS ou a
style.setProperty em JavaScript.
Nas próximas seções, saiba como personalizar cada área do player de mídia . Você pode usar os modelos a seguir para começar.
index.html
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="css/receiver.css" media="screen" /> <script type="text/javascript" src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"> </script> </head> <body> <cast-media-player></cast-media-player> </body> <footer> <script src="js/receiver.js"></script> </footer> </html>
js/receiver.js
const context = cast.framework.CastReceiverContext.getInstance(); ... // Update style using javascript let playerElement = document.getElementsByTagName("cast-media-player")[0]; playerElement.style.setProperty('--splash-image', 'url("http://some/other/image.png")'); ... context.start();
css/receiver.css
body { --playback-logo-image: url('http://some/image.png'); } cast-media-player { --theme-hue: 100; --progress-color: rgb(0, 255, 0); --splash-image: url('http://some/image.png'); --splash-size: cover; }
<!DOCTYPE html>
<html>
<head>
  <script type="text/javascript" src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js">
  </script>
</head>
<body>
  <cast-media-player></cast-media-player>
  <style>
    body {
      --playback-logo-image: url('http://some/image.png');
    }
    cast-media-player {
      --theme-hue: 100;
      --progress-color: rgb(0, 255, 0);
      --splash-image: url('http://some/image.png');
    }
  </style>
  <script>
    const context = cast.framework.CastReceiverContext.getInstance();
    ...
    // Update style using javascript
    let playerElement = document.getElementsByTagName("cast-media-player")[0];
    playerElement.style.setProperty('--splash-image', 'url("http://some/other/image.png")');
    ...
    context.start();
  </script>
</body>
</html>Logotipo de reprodução
O logotipo de reprodução é exibido no canto superior esquerdo do receptor enquanto
reproduções de mídia. Essa propriedade é separada da classe .logo. Você pode
personalize o --playback-logo-image no seletor body.
body {
  --playback-logo-image: url('image.png'); /* set from the body selector */
}
Propriedades do segundo plano do player
As variáveis --background definem as propriedades de segundo plano de todo o player,
visível durante a inicialização e a reprodução. Por exemplo, é possível definir todo o
plano de fundo para um gradiente linear branco e prateado:
cast-media-player {
  --background-image: linear-gradient(white, silver);
}
Tela do receptor da Web:

É possível usar as seguintes variáveis para personalizar as propriedades .background:
Variáveis e padrões
| Nome | Valor padrão | Descrição | 
|---|---|---|
| --background | preto | Propriedade de segundo plano do CSS | 
| --background-color | Propriedade de cor de fundo do CSS | |
| --background-image | Propriedade da imagem de plano de fundo do CSS | |
| --background-repeat | sem repetição | Propriedade de background-repeat do CSS | 
| --background-size | capa | Propriedade de tamanho de segundo plano do CSS | 
Modelo de CSS
cast-media-player {
  --background:
  --background-color:
  --background-image:
  --background-repeat:
  --background-size:
}
Propriedades do logotipo
A classe .logo é posicionada à frente da classe .background e abrange
todo o player. Essa classe é exibida quando o receptor é iniciado. Se você
não fornecer nenhuma variável .splash, a classe .logo também será exibida quando
o receptor está em um estado inativo.
O exemplo a seguir define --logo-image como um ícone de equalizador chamado
welcome.png. Por padrão, uma imagem é centralizada no centro do receptor:
cast-media-player {
  --logo-image: url('welcome.png');
}
Tela do receptor da Web:

É possível usar as seguintes variáveis para personalizar as propriedades .logo:
Variáveis e padrões
| Nome | Valor padrão | Descrição | 
|---|---|---|
| --logo-background | Propriedade de segundo plano do CSS | |
| --logo-color | Propriedade de cor de fundo do CSS | |
| --logo-image | Propriedade da imagem de plano de fundo do CSS | |
| --logo-repeat | sem repetição | Propriedade de background-repeat do CSS | 
| --logo-size | Propriedade de tamanho de segundo plano do CSS | 
Modelo de CSS
cast-media-player {
  --logo-background:
  --logo-color:
  --logo-image:
  --logo-repeat:
  --logo-size:
}
Propriedades da apresentação
Assim como a classe .logo, a classe .splash abrange todo o player. Se
você definir essas propriedades, suas variáveis .splash vão substituir .logo
variáveis quando o receptor estiver inativo. Isso significa que você pode usar um conjunto de
.logo na inicialização e mostram planos de fundo ou imagens separados quando
se o receptor está inativo.
Por exemplo, você pode substituir o plano de fundo do gradiente branco e prateado por
dimgray e adicione um ícone animado waiting...:
cast-media-player {
  --splash-color: dimgray;
  --splash-image: url('waiting.png');
}
Tela do receptor da Web:

Se você não definir essas propriedades, o receptor vai usar o .logo por padrão
ou o nome do app quando ele estiver inativo.
É possível usar as seguintes variáveis para personalizar as propriedades .splash:
Variáveis e padrões
| Nome | Valor padrão | Descrição | 
|---|---|---|
| --splash-background | Propriedade de segundo plano do CSS | |
| --splash-color | Propriedade de cor de fundo do CSS | |
| --splash-image | Propriedade da imagem de plano de fundo do CSS | |
| --splash-repeat | Propriedade de background-repeat do CSS | |
| --splash-size | Propriedade de tamanho de segundo plano do CSS | 
Modelo de CSS
cast-media-player {
  --splash-background:
  --splash-color:
  --splash-image:
  --splash-repeat:
  --splash-size:
}
Apresentação de slides
Para alternar até 10 imagens durante o estado inativo (no lugar da imagem de apresentação), use a seguinte apresentação de slides parâmetros.
Variáveis e padrões
| Nome | Valor padrão | Descrição | 
|---|---|---|
| --slideshow-interval-duration | 10 s | Tempo entre imagens. | 
| --slideshow-animation-duration | 2 s | Duração da transição. | 
| --slideshow-image-1 | Primeira imagem na apresentação de slides. | |
| --slideshow-image-2 | Segunda imagem na apresentação de slides. | |
| --slideshow-image-3 | Terceira imagem na apresentação de slides. | |
| --slideshow-image-4 | Quarta imagem na apresentação de slides. | |
| --slideshow-image-5 | Quinta imagem na apresentação de slides. | |
| --slideshow-image-6 | Quinta imagem na apresentação de slides. | |
| --slideshow-image-7 | Sétima imagem na apresentação de slides. | |
| --slideshow-image-8 | Oitava imagem na apresentação de slides. | |
| --slideshow-image-9 | Nona imagem na apresentação de slides. | |
| --slideshow-image-10 | Décima imagem na apresentação de slides. | 
Modelo de CSS
cast-media-player {
  --slideshow-interval-duration:
  --slideshow-animation-duration:
  --slideshow-image-1:
  --slideshow-image-2:
  --slideshow-image-3:
  --slideshow-image-4:
  --slideshow-image-5:
  --slideshow-image-6:
  --slideshow-image-7:
  --slideshow-image-8:
  --slideshow-image-9:
  --slideshow-image-10:
}
Propriedades da marca-d'água
Um .watermark aparece enquanto a mídia está tocando. Normalmente, é uma pequena
imagem transparente padrão no canto inferior direito do receptor.
É possível usar as seguintes variáveis para personalizar as propriedades .watermark:
Variáveis e padrões
| Nome | Valor padrão | Descrição | 
|---|---|---|
| --watermark-background | Propriedade de segundo plano do CSS | |
| --watermark-color | Propriedade de cor de fundo do CSS | |
| --watermark-image | Propriedade da imagem de plano de fundo do CSS | |
| --watermark-position | canto inferior direito | Propriedade de posição em segundo plano do CSS | 
| --watermark-repeat | sem repetição | Propriedade de background-repeat do CSS | 
| --watermark-size | Propriedade de tamanho de segundo plano do CSS | 
Modelo de CSS
cast-media-player {
  --watermark-background:
  --watermark-color:
  --watermark-image:
  --watermark-position:
  --watermark-repeat:
  --watermark-size:
}
Reprodução, anúncios e outras propriedades CSS
Você também pode personalizar anúncios, fontes, imagens de players e outras propriedades no
Seletor de cast-media-player.
Variáveis e padrões
| Nome | Valor padrão | Descrição | 
|---|---|---|
| --ad-title | Anúncio | Título do anúncio. | 
| --skip-ad-title | Pular anúncio | Texto da caixa de texto Skip Ad (Pular anúncio). | 
| --break-color | hsl(hue, 100%, 50%) | Cor da marca de intervalo de anúncio. | 
| --font-family | Open Sans | Família de fontes para metadados e a barra de progresso. | 
| --spinner-image | Imagem padrão | A imagem que será exibida durante a inicialização. | 
| --buffering-image | Imagem padrão | A imagem a ser exibida durante o armazenamento em buffer. | 
| --pause-image | Imagem padrão | A imagem que será exibida enquanto estiver pausada. | 
| --play-image | A imagem a ser exibida nos metadados durante a reprodução. | |
| --theme-hue | 42 | A matiz a ser usada para o player. | 
| --progress-color | hsl(hue, 95%, 60%) | Cor da barra de progresso. | 
Modelo de CSS
cast-media-player {
  --ad-title:
  --skip-ad-title:
  --break-color:
  --font-family:
  --spinner-image:
  --buffering-image:
  --pause-image:
  --play-image:
  --theme-hue:
  --progress-color:
}
Para mais informações e ilustrações, consulte Receptor de mídia estilizado:
Overscan
Layouts para TV têm alguns requisitos exclusivos devido à evolução dessa tecnologia e o desejo de sempre apresentar uma imagem em tela cheia para os espectadores. TV os dispositivos podem cortar a borda externa de um layout de aplicativo para garantir que os todo o visor é preenchido. Geralmente, esse comportamento é chamado de overscan. Evite que os elementos da tela sejam cortados devido ao overscan incorporando um sinal de 10% em todos os lados do layout.
Interface de áudio padrão
MetadataType.MUSIC_TRACK

R: --logo-image
B) MusicTrackMediaMetadata.albumName
C) MusicTrackMediaMetadata.title.
D) MusicTrackMediaMetadata.albumArtist, MusicTrackMediaMetadata.artist ou MusicTrackMediaMetadata.composer
E) MusicTrackMediaMetadata.images[0].

H. Reproduzir/Pausar
Vinculação de dados de interface personalizada
O SDK do receptor da Web do Google Cast é compatível com o uso do seu próprio elemento de interface personalizado em vez de
o cast-media-player.
A vinculação de dados de interface personalizada permite que você use seu próprio elemento de interface personalizado e use as
PlayerDataBinder
para vincular a interface ao estado do player em vez de adicionar a
cast-media-player ao seu receptor. O binder também oferece suporte ao envio
eventos para mudanças de dados, se o app não oferecer suporte à vinculação de dados.
const context = cast.framework.CastReceiverContext.getInstance();
const player = context.getPlayerManager();
const playerData = {};
const playerDataBinder = new cast.framework.ui.PlayerDataBinder(playerData);
// Update ui according to player state
playerDataBinder.addEventListener(
    cast.framework.ui.PlayerDataEventType.STATE_CHANGED,
    e => {
      switch (e.value) {
        case cast.framework.ui.State.LAUNCHING:
        case cast.framework.ui.State.IDLE:
          // Write your own event handling code
          break;
        case cast.framework.ui.State.LOADING:
          // Write your own event handling code
          break;
        case cast.framework.ui.State.BUFFERING:
          // Write your own event handling code
          break;
        case cast.framework.ui.State.PAUSED:
          // Write your own event handling code
          break;
        case cast.framework.ui.State.PLAYING:
          // Write your own event handling code
          break;
      }
    });
context.start();
Adicione pelo menos um
MediaElement
ao HTML para que o receptor da Web possa usá-lo. Se vários MediaElement
objetos estiverem disponíveis, marque os MediaElement que você quer que a Web
Receptor a ser usado. Para fazer isso, adicione castMediaElement à classe do vídeo.
da lista, conforme mostrado abaixo; caso contrário, o receptor da Web escolherá a primeira
MediaElement.
<video class="castMediaElement"></video>