Задать вопрос
@pavelzabavin

Как правильно изменить код JS, чтобы Гугл Хром не выдавал ошибку?

Есть код, который предполагает автоматическое проигрывание интернет-потока (аудио) при открытии веб-страницы, однако, возникает ошибка Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.

Фрагмент кода:

audioObjectExemplar.prototype = Object.create(audioObject.prototype);

audioObjectExemplar.prototype.setAudioPlay = function()
{
	if (this.audioClass != ''){
		document.getElementById(this.audioClass).className = this.audioClassName + ' active';	
	}
	document.getElementById(this.audioValue).load();
	document.getElementById(this.audioValue).play();
	this.audioState = 1;
}


Ошибка кроется в этой строке: document.getElementById(this.audioValue).play();

Как исправить?
  • Вопрос задан
  • 88 просмотров
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Это политика автоплея в хроме (в других браузерах она тоже есть, но со своими особенностями). Хром запрещает воспроизводить аудио автоматически, если воспроизведение было вызвано не пользовательским действием. Нужно, чтобы этот код вызывался по клику. Подробнее тут https://developers.google.com/web/updates/2017/09/...

Считаю, очень плохой идеей включать звук при заходе на страницу, это крайне бесит пользователей, поэтому и была введена эта политика браузерами.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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