有没有一种方法可以在A-Frame中禁用nosleep.js?

时间:2019-03-31 06:37:55

标签: aframe

A-Frame利用nosleep.js来防止手机进入休眠状态(它会在后台播放一个小的视频文件)。对于我的用例,我需要A-Frame来激活nosleep.js。

我可以通过修改aframe.js文件本身(搜索“ USE_WAKELOCK”并将其硬编码设置为false)来禁用nosleep.js,但如果可能的话,我希望以编程方式进行设置。有什么办法吗?

1 个答案:

答案 0 :(得分:0)

唤醒锁对象被创建为<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记录了对象。仅当检测到移动设备时才创建它,您可以选择设备工具栏(chrome)/自适应设计模式(ff)