XRMediaBinding: createQuadLayer() 方法
createQuadLayer() 方法是 XRMediaBinding 接口的一部分,它返回一个 XRQuadLayer 对象。该对象代表一个在虚拟环境中占据平坦矩形空间的图层。
语法
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 设备。
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 |
浏览器兼容性
加载中…