HTMLVideoElement: requestPictureInPicture() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

HTMLVideoElement 方法 requestPictureInPicture() 發出非同步請求,將影片顯示在畫中畫模式下。

影片不一定能進入畫中畫模式。如果授予了進入該模式的許可權,則返回的 Promise 將會解決,並且影片會收到一個 enterpictureinpicture 事件,告知它現在已處於畫中畫模式。

語法

js
requestPictureInPicture()

引數

無。

返回值

一個 Promise,它會解析為一個 PictureInPictureWindow 物件,該物件可用於在使用者調整此浮動視窗大小時進行監聽。

異常

NotSupportedError DOMException

如果該功能不受支援(例如,由於使用者偏好設定或平臺限制而被停用)則丟擲。

SecurityError DOMException

如果該功能被 許可權策略 (Permissions Policy) 阻止,則丟擲。

InvalidStateError DOMException

如果影片元素的 readStateHAVE_NOTHING,或者影片元素沒有影片軌道,或者影片元素的 disablePictureInPicture 屬性為 true,則丟擲。

NotAllowedError DOMException

如果 document.pictureInPictureElementnull 且文件沒有 瞬時啟用 (transient activation),則丟擲。

安全

需要 瞬時使用者啟用 (Transient user activation)。使用者必須與頁面或 UI 元素進行互動,此功能才能工作。

示例

此示例請求影片進入畫中畫模式,並設定一個事件監聽器來處理浮動視窗的調整大小。

js
function enterPictureInPicture() {
  videoElement.requestPictureInPicture().then((pictureInPictureWindow) => {
    pictureInPictureWindow.addEventListener("resize", () =>
      onPipWindowResize(),
    );
  });
}

規範

規範
畫中畫
# request-pip

瀏覽器相容性

另見