доменное исключение при воспроизведении звука в Chrome - PullRequest
1 голос
/ 26 апреля 2019

Здравствуйте, я получаю исключение при воспроизведении звука в Chrome.

Вот моя функция для воспроизведения звука

$(document).ready(function ()
{
    generateAlarm();
});

function generateAlarm()
{
    alarm_1 = new Audio();
    alarm_1.src = '/Content/assets/sounds/alarm_1.mp3';
    const playPromise = alarm_1.play();

    if (playPromise !== null)
    {
        playPromise.catch(() => {
           const btn = $('#playAlarm');
           btn.click();
         });
    }
}

document.getElementById('playAlarm').addEventListener("click", handlePlayButton, false);

function handlePlayButton()
{
    if (alarm_1.paused) {
        generateAlarm();
    }
    else {
        alarm_1.pause();
    }
}

Может кто-нибудь сказать мне, что не так с приведенным выше кодом?Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 26 апреля 2019

Автозапуск звука больше не разрешен, потому что он неприятный и часто злоупотребляет.Вы должны подождать, пока пользователь будет взаимодействовать со страницей в первую очередь.Вы можете проверить это руководство в Google о том, как использовать новый AudioContext api: https://developers.google.com/web/updates/2018/11/web-audio-autoplay

1 голос
/ 29 апреля 2019

Единственное решение, которое я смог найти, - это изменить политики автозапуска Chrome следующим образом:

chrome: // flags / # autoplay-policy

иустановите его на

Жест пользователя не требуется

Не знаю, если это правильный способ решения проблемы, но я больше не получаю исключения.Буду признателен, если у кого-то есть идея получше.

...