Есть ли способ отключить nosleep.js при настройке в A-Frame? - PullRequest
0 голосов
/ 31 марта 2019

A-Frame использует nosleep.js, чтобы не спать телефоны (в фоновом режиме воспроизводится небольшой видеофайл). Для моего случая использования мне нужна A-Frame, чтобы не активировал nosleep.js.

Я могу отключить nosleep.js, изменив сам файл aframe.js (поищите «USE_WAKELOCK» и hardcode на false), но я бы предпочел сделать это программно в настройках, если это возможно. Есть ли способ сделать это?

1 Ответ

0 голосов
/ 01 апреля 2019

Объект wakelock создается как свойство <a-scene> ( исходный код ). Здесь вы можете проверить реализацию.

При входе в режим 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 с зарегистрированным объектом. Он будет создан только при обнаружении мобильного телефона, вы можете выбрать панель инструментов устройства (хром) / Responsive Design Mode (ff)
...