Почему аудио-скрипт не работает в Google Chrome?

202
21 января 2020, 09:00

Нашёл вот такой скрипт, который проигрывает звук на странице.

var sound = new Audio(); 
sound.src = 'https://noisefx.ru/noise_base/05/02112.mp3'; 
sound.play(); 

В Google Chrome этот скрипт работает только в консоли, а на странице - нет. Ошибка:

Uncaught (in promise) DOMException

Как исправить?

Answer 1

В хроме с недавнего времени запускать аудио можно только после того, как пользователь произведет взаимодействие со страницей.

Например, кликнет на кнопку.

var sound = new Audio(); 
sound.src = 'https://noisefx.ru/noise_base/05/02112.mp3'; 
 
function play() { 
  sound.play(); 
}
<button onclick='play()'>play</button>

Установлен таймер, который попробует запустить музыку.

var sound = new Audio(); 
sound.src = 'https://noisefx.ru/noise_base/05/02112.mp3'; 
 
setTimeout(() => { 
  console.log('play'); 
  sound.play(); 
}, 5000);
Успейте нажать на меня в течении 5 секунд и услышите музыку!

READ ALSO
Какой метод более (правильный/читаемый)?

Какой метод более (правильный/читаемый)?

Написал несколько строк роутера, потом пришла идея переписать его на async/await, собственно вопрос несколько:

121
Отправлятся пустые формы [закрыт]

Отправлятся пустые формы [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос, чтобы он соответствовал тематике «Stack Overflow на русском»

142
Чем заменить iframe?

Чем заменить iframe?

Ситуация проста: есть некий html-код, который должен выводиться юзеруНо код этот может генерировать кто угодно, поэтому я использую iframe в режиме...

159
Vue.js вывод сообщения при не найденных данных

Vue.js вывод сообщения при не найденных данных

Вопрос такой, есть цикл при котором мы выводим все что нашли в массиве

112