@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();

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

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

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

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