VRDisplayCapabilities - 描述了 VRDisplay 的功能
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
VRDisplayCapabilities
是 WebVR 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 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 不支持 | ≤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 | 不支持 | 未知 | 未知 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS 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 团队提供的演示,下载和其他资源。