@LoveCodeandCoffe

Как избавиться от блокировки гугл фоновой музыки для игры на сайте?

Пишу SPA и при входе на сайт должна играть фоновая музыка она блокируется и выдает такую ошибку
5dc454dbe9501131509568.png
ссылка https://developers.google.com/web/updates/2017/09/...
Я так понял я должен как-то модифицировать код автозапуска и эта проблема пропадет

вот функция которая запускает воспроизведения аудио
const PlayAudio = (src) => {
  const audio = new Audio(src)
   audio.play()
   audio.currentTime = 1.0

  Function.prototype.AudioStop = function(stopAudio){
    stopAudio = audio
    HTMLAudioElement.prototype.stop = function()
    {
    this.pause();
    this.currentTime = 0.0;
    }
     stopAudio.stop()
  
  }

}



export default PlayAudio


и вызывается в app
window.onload = function(){

 



//? Add Events
 

 PlayAudio(Audio)

  
}
вызывается
Функция хорошо работает на других экранах. Тесть после совершения события( клик). А гугл блокирует запуск функции при загрузке страницы. И вроде как есть способ это решить
  • Вопрос задан
  • 366 просмотров
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
Ну так всёж описано что надо делать по вашей же ссылке.
Нельзя просто так включать звук на сайте.

К этому должно привести действие пользователя т.е. в самом простом случае клик.

Если пользователь ходит по страницам например и фокус на сайте, то звук проигрывается без проблем.
А если зайти с открытой панелью разработчика и фокус в консоли где-то будет - звук не проиграется, потому что вы на сайте не совершили никаких действий.

Плюс можно понять сработал звук или нет
To detect whether browser will require user interaction to play audio, you can check the state of the AudioContext after you've created it. If you are allowed to play, it should immediately switch to running. Otherwise it will be suspended. If you listen to the statechange event, you can detect changes asynchronously.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы