Я добавляю аудио элемент на сайт, и он должен автоматически воспроизводиться при загрузке страницы.В Chrome 71 было несколько обновлений , которые в некоторых случаях должны отключать автозапуск аудио и видео (если пользователь не взаимодействовал со страницей или страница не является частой и часто воспроизводит видео).и т. д.). chrome: // media-engagement / показывает оценку активности пользователей Chrome для различных веб-сайтов (в зависимости от того, сколько раз они посещали и смотрели видео).
Как правило, пользователь должен войти в систему, прежде чем увидит страницу, на которую я добавил элемент, поэтому в таких случаях он должен воспроизводиться автоматически.Я пытаюсь выяснить, как создать ситуацию, в которой Chrome предотвратит автозапуск, поэтому я могу проверить свой метод перезапуска аудио после его предотвращения.
Проблема в том, что я не могу показатьсячтобы получить Chrome, чтобы предотвратить автоигру.До сих пор я пробовал (все на Mac, если не указано иное):
- После входа в систему перейдите непосредственно к URL (в том же окне после жесткого обновления / очистки кэша и в новом окне)
- Посещение его как другого пользователя Chrome и как гостя (оба из которых не имеют оценки активности веб-сайтов)
- настройка chrome: // flags # autoplay-политика до Требуется активация пользователя документа. и проверка вышеперечисленного (это кажется несуществующим)
- Проверка всего вышеперечисленного на компьютере другого человека, который никогда не посещал сайтдо
- Тестирование всего вышеперечисленного на BrowserStack Chrome 71 в Windows
Я не уверен, что еще можно сделать на этом этапе, кто-нибудь знает, как лучше заставить Chrome предотвратитьэтот звук из автоигры, или создать ситуацию, в которой это произойдет?
Вот HTML-код аудиоэлемента:
<div id="intro_player_wrapper">
<audio id="intro_player" controls="controls">
<source id="audio_intro_mp3_src" type="audio/mpeg" src="audio_source.mp3" /></source>
<source id="audio_intro_wav_src" type="audio/wav" src="audio_source.wav" /></source>
</audio>
</div>
Вот javascript, который запускает автоигру:
var autoplay_interval = window.setInterval(function() {
var promise = $("#intro_player").get(0).play();
if (promise !== undefined) {
promise.then(_ => {
intro_audio_played = true;
clearInterval(autoplay_interval);
}).catch(error => {
console.log("Autoplay was prevented.");
});
}
}, 1000);