Обработка события блокировки экрана в родном браузере Samsung

Я столкнулся с очень странной проблемой - на Samsung Galaxy Note (и некоторых других устройствах Samsung), когда я блокирую экран (используя кнопку блокировки экрана), видео и звук с веб-страницы продолжают воспроизводиться в фоновом режиме. ...

Мне нужно это предотвратить.

Я сделал некоторую отладку и понял, что при нажатии на кнопку домой браузер сворачивается, а вкладка не активна... но!!! когда я нажимаю на кнопку блокировки экрана - устройство блокирует экран, но вкладка активна в браузере, но ориентация изменилась...

Также я попытался проверить, какие события срабатывают, когда вы нажимаете кнопку на экране блокировки... Я использовал для этого функцию monitorEvents, и она показывает, что срабатывает только несколько событий: devicemotion - которое срабатывает все время, deviceorientation - которое срабатывает любые перемещения с устройством и resize - когда телефон меняет ориентацию...

На данный момент я сломал свой мозг в поисках решения... но я не могу найти ничего, связанного с проблемой... Также я понял, что ютуб решает эту проблему, на ютубе она не появляется... но я понятия не имею, как они это сделали...

Другие вещи, которые я пробовал:

  • API видимости не решает эту проблему.
  • Такие события, как focusout, blur, не обрабатывают эту проблему.
  • Таймеры также не прекращают свою работу, когда экран заблокирован.

Любые идеи или предложения?


person Dmytro Medvid    schedule 08.09.2016    source источник


Ответы (1)


В основном это была моя вина, потому что я перезагружаю видео по таймеру, если что-то пойдет не так, и оно перезагружается в фоновом режиме, когда экран заблокирован.

Итак, проблема с Android Internet Browser. На моем устройстве установлена ​​версия 2.1, браузер на основе Chromium. Версия Chromium в этом браузере — 34. Этот тип браузера не обрабатывает событие блокировки экрана на некоторых устройствах, таких как Samsung Galaxy Note 3 [Android v5.0], Samsung Galaxy S7 [Android v6.0.1], Samsung Galaxy S5. [Android v5.0].

Когда я говорю "браузер не обрабатывает событие экрана блокировки" - я имею в виду, что браузер не может распознать, что устройство сейчас заблокировано, а страница в браузере все еще активна...

По этому вопросу обнаружено несколько проблем:

  • API видимости не решает эту проблему.
  • Такие события, как window.focus, window.blur, не решают эту проблему.
  • Таймеры также не прекращают свою работу, когда экран заблокирован.

Я исправил свою проблему только из-за одной вещи - теги видео и аудио из HTML5 запускают событие pause, когда пользователь нажимает кнопку блокировки экрана.

person Dmytro Medvid    schedule 14.09.2016