有没有办法在 A-Frame 的设置中禁用 nosleep.js?
Is there a way of disabling nosleep.js at setup in A-Frame?
A-Frame 利用 nosleep.js 来防止手机休眠(它在后台播放一个小视频文件)。对于我的用例,我需要 A-Frame 来 not 激活 nosleep.js.
我可以通过修改 aframe.js 文件本身来禁用 nosleep.js(搜索 "USE_WAKELOCK" 并将其硬编码为 false),但如果可能的话,我更愿意在设置中以编程方式执行此操作.有什么办法吗?
wakelock 对象创建为 <a-scene>
属性(source code). Here 您可以查看实现。
进入 VR 模式时,它正在执行 wakelock.request()
,而在退出时 - wakelock.release()
。
有了对场景的引用,你可以调用这些方法:
var scene = document.querySelector("a-scene")
// scene.wakelock.release() / scene.wakelock.request()
我会通过侦听 enter-vr
事件并在几毫秒延迟后释放唤醒锁来禁用它。
scene.addEventListener('enter-vr', function () {
setTimeout(e => {wakelock.release();}, 100)
});
Fiddle 记录了对象。它只会在检测到移动设备时创建,您可以 select 设备工具栏 (chrome) / 响应式设计模式 (ff)
A-Frame 利用 nosleep.js 来防止手机休眠(它在后台播放一个小视频文件)。对于我的用例,我需要 A-Frame 来 not 激活 nosleep.js.
我可以通过修改 aframe.js 文件本身来禁用 nosleep.js(搜索 "USE_WAKELOCK" 并将其硬编码为 false),但如果可能的话,我更愿意在设置中以编程方式执行此操作.有什么办法吗?
wakelock 对象创建为 <a-scene>
属性(source code). Here 您可以查看实现。
进入 VR 模式时,它正在执行 wakelock.request()
,而在退出时 - wakelock.release()
。
有了对场景的引用,你可以调用这些方法:
var scene = document.querySelector("a-scene")
// scene.wakelock.release() / scene.wakelock.request()
我会通过侦听 enter-vr
事件并在几毫秒延迟后释放唤醒锁来禁用它。
scene.addEventListener('enter-vr', function () {
setTimeout(e => {wakelock.release();}, 100)
});
Fiddle 记录了对象。它只会在检测到移动设备时创建,您可以 select 设备工具栏 (chrome) / 响应式设计模式 (ff)