RemotePlayback

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

RemotePlayback 接口是 远程播放 API 的一部分,允许网页检测远程播放设备的可用性,然后连接到这些设备并控制播放。

EventTarget RemotePlayback

实例属性

还继承了其父接口 EventTarget 的属性。

RemotePlayback.state 只读

表示 RemotePlayback 连接的状态。可能的值为:

"connecting"

用户代理正在尝试与选定的设备启动远程播放。

"connected"

已从本地播放切换到远程播放,所有命令现在都将在远程设备上执行。

"disconnected"

尚未启动远程播放、启动失败或已停止。

实例方法

还继承了其父接口 EventTarget 的方法。

RemotePlayback.watchAvailability()

监视可用远程播放设备列表,并返回一个 Promise,该 Promise 解析为可用远程播放设备的 callbackId

RemotePlayback.cancelWatchAvailability()

取消监视远程播放设备可用性的请求。

RemotePlayback.prompt()

提示用户选择远程播放设备并授权连接。

事件

还继承了其父接口 EventTarget 的事件。

connecting

当用户代理启动远程播放时触发。

connect

当用户代理成功连接到远程设备时触发。

disconnect

当用户代理断开与远程设备的连接时触发。

示例

以下示例演示了一个具有自定义控件的播放器,该播放器支持远程播放。最初,用于选择设备的按钮是隐藏的。

html
<video id="videoElement" src="https://example.org/media.ext">
  <button id="deviceBtn" class="hidden">Pick device</button>
</video>
css
.hidden {
  display: none;
}

使用 RemotePlayback.watchAvailability() 方法来监视可用的远程播放设备。如果设备可用,则使用回调函数显示按钮。

js
const deviceBtn = document.getElementById("deviceBtn");
const videoElem = document.getElementById("videoElement");

function availabilityCallback(available) {
  // Show or hide the device picker button depending on device availability.
  if (available) {
    deviceBtn.classList.remove("hidden");
  } else {
    deviceBtn.classList.add("hidden");
  }
}

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.classList.remove("hidden");
});

规范

规范
Remote Playback API
# remoteplayback-interface

浏览器兼容性