XRSession: visibilityState 属性

实验性: 这是一个 实验性技术
在生产环境中使用之前,请仔细查看 浏览器兼容性表

安全上下文: 此功能仅在 安全上下文(HTTPS)中可用,在一些或所有 支持的浏览器中可用。

只读 visibilityStateXRSession 接口的属性,是一个字符串,指示 WebXR 内容当前是否对用户可见,如果可见,则指示它是否为主要焦点。

每次可见性状态发生变化时,都会在 XRSession 对象上触发 visibilitychange 事件。

一个字符串,指示 XR 内容是否对用户可见,以及如果可见,它当前是否为主要焦点。

visibilityState 的可能值为

hidden

XRSession 生成的虚拟场景当前对用户不可见,因此它的 requestAnimationFrame() 回调不会执行,直到 visibilityState 发生变化。输入控制器不会针对会话进行处理。

visible

XRSession 渲染的虚拟场景当前对用户可见,并且是用户注意力的主要焦点。为此,会话的 requestAnimationFrame() 回调正在以 XR 设备的原生刷新率处理,并且输入控制器正在正常处理。

visible-blurred

尽管由 XRSession 渲染的虚拟场景目前可能对用户可见,但它并非用户当前的主要关注点;也有可能该会话目前完全不可见。为了优化资源利用,用户代理 可能会以节流的方式处理会话的 requestAnimationFrame() 回调。输入控制器 *不会* 为该会话处理。

使用说明

需要牢记的是,由于沉浸式 WebXR 会话可能使用与运行它的 HTML 文档不同的显示器显示(例如,在头戴式设备上显示),因此会话的 visibilityState 的值不一定与拥有该会话的 documentvisibilityState 相同。例如,如果观看者使用连接到计算机的头戴式设备,并且沉浸式场景被配置 UI 遮挡,则用户可以从头戴式设备后面探出头来,仍然能够看到他们计算机显示器上的文档本身。

规范

规范
WebXR 设备 API
# dom-xrsession-visibilitystate

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅