Есть ли способ воспроизвести звук сразу при открытии ссылки сайта?

162
07 мая 2018, 23:46
  1. При входе на сайт создаётся элемент greetings = document.createElement("audio"); greetings.src = "sounds/greetings.mp3";
  2. Потом в звук включается в window.onload. window.onload() { greeting.play(); }
  3. Выскакивает ошибка: Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.

Как бороться?

  • Пробовал задавать onfocus на window - не помогло.
  • Пробовал greetings.pause(); greetings.currentTime = 0; greetings.play(); - не помогло.
  • Пробовал совмещать первый и второй способ - не помогло.
  • От безысходности пробовал:

`

var greetingsStatus = setInterval(function() {
        try {
            greeting.play();
            clearInterval(greetingsStatus);
            greetingsStatus = null;
        } catch(e) {
            console.log(e);
        }
    }, 200);

`

Ошибка также: Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.

Люди добрые, помогите: что сделать, что бы звук играл сразу после открытия страницы? Даже если она открыта через ctrl или колёсико мыши. (Пользователь еще не зашёл на страницу, но звук уже играет).

P.S Google Chrome Версия 66.0.3359.139 (Официальная сборка), (64 бит)

P.S.3 Пока выбирал метки для вопроса: всплыла подсказка: web-audio. Это о audio API. Я его пока не знаю. Может знает кто: будет ли с ним мою задачу проще решить?

Ошибка возникает только при запуске сайта на локальном сервере. При переходе с сайта stack overflow на мой сайт всё работает отлично. Объясните тогда, как так устроен chrome, что сайтам, запущенным с локального сервера chrome не доверяет, а сайтам в интернете - очень даже.

Если у вас другой браузер, или chrome другой версии, и у вас не включается звук или появляется ошибка в консоли - отпишитесь.

READ ALSO
Повторный запрос на сервер в Angular2

Повторный запрос на сервер в Angular2

Как в Angular2 отправить повторный запрос на сервер при наличии определенных значений в свойстве возвращенного json?

124
Фильтрация arr по arguments

Фильтрация arr по arguments

Не могу понять, почему функция destroyer возвращает arr без первого элементаВедь arguments[1] = 2

163
Как обойти запрет браузера на чтение/изменение css из JavaScript?

Как обойти запрет браузера на чтение/изменение css из JavaScript?

Всем привет! У меня есть куча 'div'_ов, у которых внешний вид настраивается из классов CSSРаньше менял с помощью вот такой фунции:

178