VRDisplayCapabilities

已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。

非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。

VRDisplayCapabilities 接口是 WebVR API 的一部分,用于描述 VRDisplay 的能力。其属性可用于执行 VR 设备能力测试,例如,是否能够返回位置信息。

注意: 此接口是旧版 WebVR API 的一部分。它已被 WebXR Device 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 的一部分,该 API 已被 WebXR Device API 取代。它已不再是标准的制定方向。

在所有浏览器都实现新的 WebXR API 之前,建议依靠 A-FrameBabylon.jsThree.js 等框架,或 polyfill 来开发可在所有浏览器上运行的 WebXR 应用程序。有关更多信息,请阅读 Meta 的从 WebVR 移植到 WebXR 指南。

浏览器兼容性

另见