A-Frame利用nosleep.js防止手机入睡(它在后台播放一个小视频文件)。对于我的用例,我需要A-Frame来激活nosleep.js。
我可以通过修改aframe.js文件本身来禁用nosleep.js(搜索“USE_WAKELOCK”并将硬编码设置为false),但我更愿意在设置中以编程方式执行此操作。有没有办法做到这一点?
唤醒锁对象被创建为<a-scene>
属性(source code)。 Here你可以查看实施情况。
当进入VR模式时,它正在执行wakelock.request()
,并在退出时 - wakelock.release()
。有了对场景的引用,你可以调用这些方法:
var scene = document.querySelector("a-scene")
// scene.wakelock.release() / scene.wakelock.request()
我会通过听enter-vr
事件禁用它,并在几秒ms后延迟释放唤醒锁。
scene.addEventListener('enter-vr', function () {
setTimeout(e => {wakelock.release();}, 100)
});