VRDisplayCapabilities - 描述了 VRDisplay 的功能

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

VRDisplayCapabilitiesWebVR API 的接口,描述了 VRDisplay 的功能 — 可以使用其功能 进行 VR 设备功能测试,例如可以返回位置信息。

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

属性

VRDisplayCapabilities.canPresent 只读

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

VRDisplayCapabilities.hasExternalDisplay 只读

返回一个 Boolean,表示 VR 显示器是否与设备的主显示器分开。

VRDisplayCapabilities.hasOrientation 只读

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

VRDisplayCapabilities.hasPosition 只读

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

VRDisplayCapabilities.maxLayers 只读

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

实例

function reportDisplays() {
  navigator.getVRDisplays().then(function(displays) {
    for(var i = 0; i < displays.length; i++) {
      var cap = displays[i].capabilities;
      // cap 是一个 VRDisplayCapabilities 对象
      var listItem = document.createElement('li');
      listItem.innerHTML = '<strong>显示器 ' + (i+1) + '</strong>'
                   + '<br>VR 显示器 ID:' + displays[i].displayId
                   + '<br>VR 显示器名称:' + displays[i].displayName
                   + '<br>显示器可以呈现内容:' + cap.canPresent
                   + '<br>显示器与计算机的主显示器分开:' + cap.hasExternalDisplay
                   + '<br>显示器可以返回位置信息:' + cap.hasPosition
                   + '<br>显示器可以返回方向信息:' + cap.hasOrientation
                   + '<br>显示最大层数:' + cap.maxLayers;
      list.appendChild(listItem);
    }
  });
}

规范

规范 状态 备注
WebVR 1.1
VRDisplayCapabilities 的定义
草稿 Initial definition

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持 不支持≤18 — 79

554

645

不支持 未知 未知
canPresent 不支持15 — 79

554

645

不支持 未知 未知
hasExternalDisplay 不支持15 — 79

554

645

不支持 未知 未知
hasOrientation 不支持15 — 79

554

645

不支持 未知 未知
hasPosition 不支持15 — 79

554

645

不支持 未知 未知
maxLayers 不支持15 — 79

554

645

不支持 未知 未知

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 不支持56 — 80123 未知55 未知 未知 未知
canPresent 不支持56 — 80123 未知55 未知 未知 未知
hasExternalDisplay 不支持56 — 80123 未知55 未知 未知 未知
hasOrientation 不支持56 — 80123 未知55 未知 未知 未知
hasPosition 不支持56 — 80123 未知55 未知 未知 未知
maxLayers 不支持56 — 80123 未知55 未知 未知 未知

1. 只能在 Chrome 的实验版本中使用。(其他构建在调用 Navigator.getVRDisplays() 时不会返回任何设备。)

2. Chrome 56 支持 Daydream View。

3. Chrome 57 支持 Google Cardboard。

4. 在 Firefox 55 中启用了 Windows 支持。

5. 在 Firefox 64 中启用了 macOS 支持。

6. Samsung Internet 7.0 支持 Google Cardboard。

相关链接

  • MozVr.com — Mozilla VR 团队提供的演示,下载和其他资源。