Автоматическое воспроизведение звука без действий пользователя на странице. React JS

Всем доброго времени суток!

Столкнулся со следующей задачей: при обновлении информации по сокетам необходимо воспроизводить звук - уведомление, при этом никакие действия от пользователя не ожидаются/невозможны. Как это возможно реализовать?

Буду бесконечно благодарен за помощь в решении этой головоломки :)


Ответы (3 шт):

Автор решения: Dovgal Dima
// Создайте аудиоэлемент
const audio = new Audio('путь_к_вашему_звуковому_файлу.mp3');

// Функция для воспроизведения звука уведомления
function playNotificationSound() {
   audio.play();
}

// Где-то в вашем коде, когда вы получаете обновление по сокетам:
socket.on('обновление',  function(data) {
   // Обработка обновления
   // Воспроизведите звук уведомления
   playNotificationSound();
});
→ Ссылка
Автор решения: eri

Без клика звук включить никак не получится.

Только баннер мешающий читать контент, по которому нужно кликнуть поможет.

Добавь на страницу кнопку "включить звук". При нажатии на кнопку создавай элемент аудио и ставь его на паузу.

→ Ссылка
Автор решения: Опан

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

  1. Любой клик. (можно по пустому месту на странице)
  2. Нажатие на любую клавишу.
  3. Прокрутка. (скролл)

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

document.onmouseover =_=> audio.play();
<audio id=audio src="https://mysynthesizer.github.io/index.hetemeel/track1.mp3" controls></audio>

→ Ссылка