XRSession: visibilityState 属性
只读 visibilityState
是 XRSession
接口的属性,是一个字符串,指示 WebXR 内容当前是否对用户可见,如果可见,则指示它是否为主要焦点。
每次可见性状态发生变化时,都会在 XRSession
对象上触发 visibilitychange
事件。
值
一个字符串,指示 XR 内容是否对用户可见,以及如果可见,它当前是否为主要焦点。
visibilityState
的可能值为
-
由
XRSession
生成的虚拟场景当前对用户不可见,因此它的requestAnimationFrame()
回调不会执行,直到visibilityState
发生变化。输入控制器不会针对会话进行处理。 visible
-
由
XRSession
渲染的虚拟场景当前对用户可见,并且是用户注意力的主要焦点。为此,会话的requestAnimationFrame()
回调正在以 XR 设备的原生刷新率处理,并且输入控制器正在正常处理。 visible-blurred
-
尽管由
XRSession
渲染的虚拟场景目前可能对用户可见,但它并非用户当前的主要关注点;也有可能该会话目前完全不可见。为了优化资源利用,用户代理 可能会以节流的方式处理会话的requestAnimationFrame()
回调。输入控制器 *不会* 为该会话处理。
使用说明
需要牢记的是,由于沉浸式 WebXR 会话可能使用与运行它的 HTML 文档不同的显示器显示(例如,在头戴式设备上显示),因此会话的 visibilityState
的值不一定与拥有该会话的 document
的 visibilityState
相同。例如,如果观看者使用连接到计算机的头戴式设备,并且沉浸式场景被配置 UI 遮挡,则用户可以从头戴式设备后面探出头来,仍然能够看到他们计算机显示器上的文档本身。
规范
规范 |
---|
WebXR 设备 API # dom-xrsession-visibilitystate |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。