Web Receiver SDK предоставляет встроенный пользовательский интерфейс проигрывателя. Чтобы реализовать этот пользовательский интерфейс в своем пользовательском приложении веб-приемника, вам необходимо добавить элемент cast-media-player в тело вашего HTML-файла.
<body>
<cast-media-player></cast-media-player>
</body>
Переменные CSS позволяют настраивать различные свойства cast-media-player , включая фон проигрывателя, изображение-заставку, семейство шрифтов и многое другое. Вы можете добавить эти переменные с помощью встроенных стилей CSS, таблицы стилей CSS или style.setProperty в Javascript.
В следующих разделах вы узнаете, как настроить каждую область элемента медиаплеера. Чтобы начать работу, вы можете использовать следующие шаблоны.
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>Логотип воспроизведения
Во время воспроизведения мультимедиа в левом верхнем углу ресивера отображается логотип воспроизведения. Это свойство отделено от класса .logo . Вы можете настроить --playback-logo-image в селекторе body .
body {
--playback-logo-image: url('image.png'); /* set from the body selector */
}
Свойства фона игрока
Переменные --background задают свойства фона всего плеера, видимые во время запуска и воспроизведения. Например, вы можете установить для всего фона бело-серебристый линейный градиент:
cast-media-player {
--background-image: linear-gradient(white, silver);
}
Дисплей веб-приемника:

Вы можете использовать следующие переменные для настройки свойств .background :
Переменные и значения по умолчанию
| Имя | Значение по умолчанию | Описание |
|---|---|---|
| --фон | черный | Свойство фона CSS |
| --background-color | Свойство CSS-цвета фона | |
| --background-image | Свойство CSS-фонового изображения | |
| --background-repeat | не повторяющийся | Свойство CSS-повторения фона |
| --размер фона | крышка | Свойство CSS-размера фона |
CSS-шаблон
cast-media-player {
--background:
--background-color:
--background-image:
--background-repeat:
--background-size:
}
Свойства логотипа
Класс .logo располагается перед классом .background и охватывает весь проигрыватель. Этот класс отображается при запуске вашего приемника. Если вы не предоставляете никаких переменных .splash , класс .logo также отображается, когда ваш приемник находится в состоянии ожидания.
В следующем примере --logo-image задается для значка эквалайзера с именем welcome.png . По умолчанию изображение располагается в центре вашего приемника:
cast-media-player {
--logo-image: url('welcome.png');
}
Дисплей веб-приемника:

Вы можете использовать следующие переменные для настройки свойств .logo :
Переменные и значения по умолчанию
| Имя | Значение по умолчанию | Описание |
|---|---|---|
| --logo-background | Свойство фона CSS | |
| --logo-color | Свойство CSS-цвета фона | |
| --logo-image | Свойство CSS-фонового изображения | |
| --logo-repeat | не повторяющийся | Свойство CSS-повторения фона |
| --размер логотипа | Свойство CSS-размера фона |
CSS-шаблон
cast-media-player {
--logo-background:
--logo-color:
--logo-image:
--logo-repeat:
--logo-size:
}
Свойства вставки
Подобно классу .logo , класс .splash охватывает весь проигрыватель. Если вы установите эти свойства, ваши переменные .splash будут переопределять переменные .logo , когда ваш приемник бездействует. Это означает, что вы можете использовать один набор свойств .logo при запуске и отображать отдельные фоны или изображения, когда ваш приемник бездействует.
Например, вы можете переопределить бело-серебряный градиентный фон с помощью dimgray и добавить анимированный значок ожидания... :
cast-media-player {
--splash-color: dimgray;
--splash-image: url('waiting.png');
}
Дисплей веб-приемника:

Если вы не установите эти свойства, ваш приемник по умолчанию будет использовать настройки .logo или имя приложения, когда он находится в режиме ожидания.
Вы можете использовать следующие переменные для настройки свойств .splash :
Переменные и значения по умолчанию
| Имя | Значение по умолчанию | Описание |
|---|---|---|
| --splash-фон | Свойство фона CSS | |
| --splash-color | Свойство CSS-цвета фона | |
| --splash-изображение | Свойство CSS-фонового изображения | |
| --splash-repeat | Свойство CSS-повторения фона | |
| --splash-размер | Свойство CSS-размера фона |
CSS-шаблон
cast-media-player {
--splash-background:
--splash-color:
--splash-image:
--splash-repeat:
--splash-size:
}
Слайд-шоу
Чтобы в режиме ожидания циклически отображалось до 10 изображений (вместо изображения-заставки), используйте следующие параметры слайд-шоу.
Переменные и значения по умолчанию
| Имя | Значение по умолчанию | Описание |
|---|---|---|
| --slideshow-интервал-длительность | 10 с | Время между изображениями. |
| --slideshow-animation-duration | 2 с | Продолжительность перехода. |
| --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 | Десятое изображение в слайд-шоу. |
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:
}
Свойства водяного знака
Во время воспроизведения мультимедиа отображается водяной .watermark . Обычно это небольшое прозрачное изображение, которое по умолчанию располагается в правом нижнем углу приемника.
Вы можете использовать следующие переменные для настройки свойств .watermark :
Переменные и значения по умолчанию
| Имя | Значение по умолчанию | Описание |
|---|---|---|
| --watermark-фон | Свойство фона CSS | |
| --watermark-color | Свойство CSS-цвета фона | |
| --watermark-image | Свойство CSS-фонового изображения | |
| --watermark-position | внизу справа | Свойство CSS-положения фона |
| --watermark-repeat | не повторяющийся | Свойство CSS-повторения фона |
| --watermark-size | Свойство CSS-размера фона |
CSS-шаблон
cast-media-player {
--watermark-background:
--watermark-color:
--watermark-image:
--watermark-position:
--watermark-repeat:
--watermark-size:
}
Воспроизведение, реклама и другие свойства CSS
Вы также можете настроить рекламу, шрифты, изображения проигрывателя и другие свойства с помощью селектора cast-media-player .
Переменные и значения по умолчанию
| Имя | Значение по умолчанию | Описание |
|---|---|---|
| --ad-title | Объявление | Название объявления. |
| --skip-ad-title | Пропустить рекламу | Текст текстового поля «Пропустить рекламу» . |
| --break-color | hsl(оттенок, 100%, 50%) | Цвет знака рекламной паузы. |
| --font-family | Открыть Санс | Семейство шрифтов для метаданных и индикатора выполнения. |
| --spinner-image | Изображение по умолчанию | Изображение, отображаемое при запуске. |
| --buffering-image | Изображение по умолчанию | Изображение, отображаемое во время буферизации. |
| --pause-image | Изображение по умолчанию | Изображение, отображаемое во время паузы. |
| --play-image | Изображение, которое будет отображаться в метаданных во время игры. | |
| --theme-hue | 42 | Оттенок , используемый для игрока. |
| --progress-color | hsl(оттенок, 95%, 60%) | Цвет индикатора выполнения. |
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:
}
Дополнительную информацию и дополнительные иллюстрации см. в разделе «Стилизованный медиа-ресивер» .
Оверскан
К макетам для телевидения предъявляются некоторые уникальные требования, обусловленные развитием телевизионных стандартов и желанием всегда предоставлять зрителям полноэкранное изображение. Телевизионные устройства могут обрезать внешний край макета приложения, чтобы обеспечить заполнение всего экрана. Такое поведение обычно называется пересканированием. Избегайте обрезания элементов экрана из-за чрезмерного сканирования, установив отступы в 10 % со всех сторон макета.
Звуковой интерфейс по умолчанию
MetadataType.MUSIC_TRACK

А. --logo-image
B. MusicTrackMediaMetadata.albumName
C. MusicTrackMediaMetadata.title
D. MusicTrackMediaMetadata.albumArtist , MusicTrackMediaMetadata.artist или MusicTrackMediaMetadata.composer
E. MusicTrackMediaMetadata.images[0]

H. Воспроизведение/пауза
Привязка данных пользовательского пользовательского интерфейса
SDK Cast Web Receiver поддерживает использование собственного пользовательского элемента пользовательского интерфейса вместо cast-media-player .
Пользовательская привязка данных пользовательского интерфейса позволяет вам использовать собственный элемент пользовательского интерфейса и использовать класс PlayerDataBinder для привязки пользовательского интерфейса к состоянию проигрывателя вместо добавления элемента cast-media-player к вашему приемнику. Средство привязки также поддерживает отправку событий для изменения данных, если приложение не поддерживает привязку данных.
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();
Вам следует добавить хотя бы один MediaElement в HTML, чтобы веб-приемник мог его использовать. Если доступно несколько объектов MediaElement , вам следует пометить MediaElement , который вы хотите использовать веб-приемником. Это можно сделать, добавив castMediaElement в список классов видео, как показано ниже; в противном случае веб-приемник выберет первый MediaElement .
<video class="castMediaElement"></video>