XRMediaBinding: createQuadLayer() 方法

可用性有限

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

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

createQuadLayer() 方法是 XRMediaBinding 介面的一部分,它返回一個 XRQuadLayer 物件。該物件代表一個在虛擬環境中佔據平坦矩形空間的圖層。

語法

js
createQuadLayer(video, options)

引數

video

要顯示的 HTMLVideoElement

options

一個用於配置 XRQuadLayer 的物件。該物件可以包含以下屬性,其中 space 是必需的。

height 可選

一個指定圖層高度的數字。

invertStereo 可選

一個布林值,指定影片中每個檢視的自然位置是否應被反轉。預設為 false

layout 可選

一個字串,指示影片的佈局。可能的值:

default

該圖層支援會話的所有檢視。

mono

分配一個 XRSubImage 物件,並將其呈現給雙眼。

stereo

使用者代理決定如何分配 XRSubImage(一個或兩個)和佈局(頂部/底部或左/右)。建議為 stereo 佈局使用 texture-array 紋理型別。

stereo-left-right

分配單個 XRSubImage。左眼獲取紋理的左側區域,右眼獲取右側區域。此佈局旨在最大限度地減少對已為立體聲(例如立體聲影片或影像)的內容的繪圖呼叫。

stereo-top-bottom

分配單個 XRSubImage。左眼獲取紋理的頂部區域,右眼獲取底部區域。此佈局旨在最大限度地減少對已為立體聲(例如立體聲影片或影像)的內容的繪圖呼叫。預設值為 mono

space 必需

一個 XRSpace 物件,定義了圖層與使用者物理環境的空間關係。

transform 可選

一個 XRRigidTransform 物件,定義了相對於 space 的偏移和方向。

width 可選

一個指定圖層寬度的數字。

返回值

一個 XRQuadLayer 物件。

示例

建立 XRQuadLayer 以顯示影片

建立一個 XRMediaBinding,並使用傳遞給 createQuadLayer()HTMLVideoElement。使用上面列出的選項配置四邊形圖層,然後透過將其新增到 XRSession.updateRenderState()layers 渲染狀態中,將其呈現給 XR 裝置。

js
function onXRSessionStarted(xrSession) {
  const xrMediaBinding = new XRMediaBinding(xrSession);
  const video = document.createElement("video");
  video.src = "just-fascination.mp4";

  const videoLayer = xrMediaBinding.createQuadLayer(video, {
    space: xrReferenceSpace,
  });

  xrSession.updateRenderState({
    layers: [videoLayer],
  });
}

規範

規範
WebXR Layers API Level 1
# dom-xrmediabinding-createquadlayer

瀏覽器相容性

另見