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

浏览器兼容性

另见