此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

MediaSession:playbackState 属性

有限可用

此特性不属于基线,因为它尚未在主流浏览器中得到支持。

Want more support for this feature? Tell us why.

MediaSession 接口的 playbackState 属性用于表示当前媒体会话是播放还是暂停状态。

一个表示当前媒体会话的播放状态的字符串。值可以是以下之一:

none

浏览上下文当前无法得知播放状态,或者该状态暂不可用。

paused

浏览器的媒体会话当前已暂停。可以恢复播放。

playing

浏览器的媒体会话当前正在播放媒体,可以暂停。

示例

以下示例设置了播放和暂停两个函数,然后将它们作为相应的操作处理器配合使用。每个函数都利用 playbackState 属性来指示音频是否正在播放或已暂停。

js
const actionHandlers = [
  // 播放
  [
    "play",
    async () => {
      // 播放音频
      await audioEl.play();
      // 设置播放状态
      navigator.mediaSession.playbackState = "playing";
      // 更新状态元素
      updateStatus(allMeta[index], "操作:播放 | 播放中...");
    },
  ],
  [
    "pause",
    () => {
      // 暂停音频
      audioEl.pause();
      // 设置播放状态
      navigator.mediaSession.playbackState = "paused";
      // 更新状态元素
      updateStatus(allMeta[index], "操作:暂停 | 已暂停...");
    },
  ],
];

for (const [action, handler] of actionHandlers) {
  try {
    navigator.mediaSession.setActionHandler(action, handler);
  } catch (error) {
    console.log(`目前仍未支持媒体会话操作“${action}”`);
  }
}

规范

规范
Media Session
# dom-mediasession-playbackstate

浏览器兼容性