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>