API удалённого воспроизведения
Ограниченная доступность
Эта функция не является базовой, так как она не работает во всех популярных браузерах.
API удалённого воспроизведения расширяет HTMLMediaElement, чтобы позволить управлять воспроизведением медиа на удалённом устройстве.
Концепции и использование
Устройства удалённого воспроизведения — это подключённые устройства, такие как телевизоры, проекторы или колонки. API учитывает проводные устройства, подключённые через HDMI или DVI, а также беспроводные устройства, например Chromecast или AirPlay.
API позволяет странице, на которой есть медиаэлемент, такой как видео или аудиофайл, инициировать и управлять воспроизведением этого медиа на подключённом удалённом устройстве. Например, воспроизведение видео на подключённом телевизоре.
Примечание: Safari для iOS имеет некоторые API, которые позволяют удалённое воспроизведение через AirPlay. Подробности можно найти в примечаниях к релизу Safari 9.0.
В версиях Firefox и Chrome для Android также есть некоторые функции удалённого воспроизведения. На этих устройствах будет отображаться кнопка Cast, если в локальной сети есть устройство Cast.
Интерфейсы
RemotePlayback-
Позволяет странице определять доступность устройств удалённого воспроизведения, а затем подключаться к ним и управлять воспроизведением на этих устройствах.
Расширения для других интерфейсов
HTMLMediaElement.disableRemotePlayback-
Булево значение, которое устанавливает или возвращает состояние удалённого воспроизведения, указывая, разрешено ли медиаэлементу иметь пользовательский интерфейс удалённого воспроизведения.
-
HTMLMediaElement.remoteТолько для чтения -
Возвращает экземпляр объекта
RemotePlayback, связанный с медиаэлементом.
Примеры
Следующий пример демонстрирует плеер с настраиваемыми элементами управления, поддерживающими удалённое воспроизведение. Изначально кнопка для выбора устройства скрыта.
<video id="videoElement" src="https://example.org/media.ext"> <button id="deviceBtn" style="display: none;">Pick device</button> </video>
Метод RemotePlayback.watchAvailability() следит за доступностью устройств удалённого воспроизведения. Если устройство доступно, используйте обратный вызов для отображения кнопки.
const deviceBtn = document.getElementById("deviceBtn");
const videoElem = document.getElementById("videoElement");
function availabilityCallback(available) {
// Show or hide the device picker button depending on device availability.
deviceBtn.style.display = available ? "inline" : "none";
}
videoElem.remote.watchAvailability(availabilityCallback).catch(() => {
/* If the device cannot continuously watch available,
show the button to allow the user to try to prompt for a connection.*/
deviceBtn.style.display = "inline";
});
Спецификации
| Спецификация |
|---|
| API удалённого воспроизведения |
Совместимость с браузерами
| Рабочий стол | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
Remote_Playback_API |
121 | 121 | Нет | 107 | 13.1 | 56 | Нет | 43 | 13.4 | 6.0 | Нет |
cancelWatchAvailability |
121 | 121 | Нет | 107 | 13.1 | 56 | Нет | 43 | 13.4 | 6.0 | Нет |
connect_event |
121 | 121 | Нет | 107 | 13.1 | 56 | Нет | 43 | 13.4 | 6.0 | Нет |
connecting_event |
121 | 121 | Нет | 107 | 13.1 | 56 | Нет | 43 | 13.4 | 6.0 | Нет |
disconnect_event |
121 | 121 | Нет | 107 | 13.1 | 56 | Нет | 43 | 13.4 | 6.0 | Нет |
prompt |
121 | 121 | Нет | 107 | 13.1 | 56 | Нет | 43 | 13.4 | 6.0 | Нет |
state |
121 | 121 | Нет | 107 | 13.1 | 56 | Нет | 43 | 13.4 | 6.0 | Нет |
watchAvailability |
121 | 121 | Нет | 107 | 13.1 | 56 | Нет | 43 | 13.4 | 6.0 | Нет |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Remote_Playback_API