Как исправить баг с play pause HTML5 в google chrome?

374
11 февраля 2017, 09:10

При разработке радиоприёмника столкнулся с проблемой в google chrome. Именно в chrome, что самое поразительное, в остальных браузерах всё работает прекрасно. В chrome происходят 2 неведомых бага. Один явный, другой непонятно откуда взявшийся и даже нагуглить его не выходит. Сначала про приёмник:

В нём есть переключалки станций - всего их около 20. Работает он на плагине buzz.js (сначала хотел сделать нативно через audio src, но потом начал копаться на stackoverflow и нашёл его, когда обнаружил в хроме первый баг с кэшированием звука).

  • Баг №1: Он явный и загуглить его можно было. В консоль выпадала ошибка, а проигрывание прекращалось.

    Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause().

    Я нашёл багрепорт. Что странно - он закрыт, но судя по всему в официальном обновлении фикс не выкатили, ибо хром я обновлял пару недель назад, а ветка закрыта уже как с 8 месяцев. На форумах предлагают костыли, типа setTimeout. Не знаю как остальные ставили на это галки - лично мне не помогло. Скорее всего потому что в src у меня потоковые ссылки и с ними всё не так просто. Сталкивался ли кто-то с этим багом на практике? Как боролись?

  • Баг №2: Выше уже упоминал. Chrome кэширует проигранный звук. Как результат, после перемотки на ту же станцию он начинает проигрывать то, что уже закэшировал при первом воспроизведении. Как отключить это я так и не понял. Когда пробовал делать нативными методами (до установки buzz.js) я удалял в алгоритме переключения src, потом возвращал обратно, на audio повесил preload none, пробовал current time на ноль скидывать и не скидывать. Ничего не помогает.

READ ALSO
Как передавать параметр css при скроле?

Как передавать параметр css при скроле?

Добрый день, подскажите как предать параметры css во время скрола страницыНапример если я начинаю скролить страницу transform: scale(0

302
Нет доступа к API новой почты

Нет доступа к API новой почты

Ключ верный, в личном кабинете новой почты есть возможность протестить запрос, запрос сформирован верноКогда пытаюсь стучать с хостинга...

327
Соединиться с сайтом средствами JS?

Соединиться с сайтом средствами JS?

Всем хорошего настроения

265