XRMediaBinding: createQuadLayer() 方法

实验性: 这是一种 实验性技术
在生产环境中使用之前,请仔细查看 浏览器兼容性表

XRMediaBinding 接口的 createQuadLayer() 方法返回一个 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 图层 API 级别 1
# dom-xrmediabinding-createquadlayer

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅