VRDisplayCapabilities

已弃用:此功能不再推荐。虽然一些浏览器可能仍然支持它,但它可能已从相关的 Web 标准中删除,可能正在被删除,或者可能只为了兼容性而保留。避免使用它,并尽可能更新现有代码;请参阅本页面底部的兼容性表,以指导您的决定。请注意,此功能可能随时停止工作。

非标准:此功能是非标准的,并且不在标准化轨道上。请勿在面向 Web 的生产网站上使用它:它不会对所有用户都起作用。实现之间也可能存在很大的不兼容性,并且行为在将来可能会发生改变。

WebVR APIVRDisplayCapabilities 接口描述了 VRDisplay 的功能 - 它的功能可用于执行 VR 设备功能测试,例如,它是否可以返回位置信息。

注意:此接口是旧 WebVR API 的一部分。它已被 WebXR 设备 API 取代。

此接口可以通过 VRDisplay.capabilities 属性访问。

实例属性

VRDisplayCapabilities.canPresent 已弃用 只读 非标准

返回一个布尔值,表示 VR 显示器是否能够呈现内容(例如,通过 HMD)。

VRDisplayCapabilities.hasExternalDisplay 已弃用 只读 非标准

返回一个布尔值,表示 VR 显示器是否与设备的主显示器分离。

VRDisplayCapabilities.hasOrientation 已弃用 只读 非标准

返回一个布尔值,表示 VR 显示器是否可以跟踪和返回方向信息。

VRDisplayCapabilities.hasPosition 已弃用 只读 非标准

返回一个布尔值,表示 VR 显示器是否可以跟踪和返回位置信息。

VRDisplayCapabilities.maxLayers 已弃用 只读 非标准

返回一个数字,表示 VR 显示器一次可以呈现的 VRLayerInit 的最大数量(例如,VRDisplay.requestPresent() 可以接受的数组的最大长度)。

示例

js
function reportDisplays() {
  navigator.getVRDisplays().then((displays) => {
    displays.forEach((display, i) => {
      const cap = display.capabilities;
      // cap is a VRDisplayCapabilities object
      const listItem = document.createElement("li");
      listItem.innerText = `
VR Display ID: ${display.displayId}
VR Display Name: ${display.displayName}
Display can present content: ${cap.canPresent}
Display is separate from the computer's main display: ${cap.hasExternalDisplay}
Display can return position info: ${cap.hasPosition}
Display can return orientation info: ${cap.hasOrientation}
Display max layers: ${cap.maxLayers}`;
      listItem.insertBefore(
        document.createElement("strong"),
        listItem.firstChild,
      ).textContent = `Display ${i + 1}`;
      list.appendChild(listItem);
    });
  });
}

规范

此接口是旧 WebVR API 的一部分,已被 WebXR 设备 API 取代。它不再是成为标准的轨道。

在所有浏览器都实现新的 WebXR API 之前,建议依赖框架,例如 A-FrameBabylon.jsThree.js,或 polyfill,来开发可在所有浏览器中运行的 WebXR 应用程序 [1]

浏览器兼容性

BCD 表仅在浏览器中加载

另请参阅