Окно оповещения приводит к тому, что звуковое событие «закончили» дважды вызывается в Chrome - PullRequest
0 голосов
/ 05 апреля 2019

Я использую событие ended в JavaScript, чтобы узнать, когда закончится воспроизведение звука.В Chrome, если окно предупреждения открыто во время окончания звука, код события будет выполнен после , когда окно закрыто.Но в этом случае код события часто называется дважды , за которым следует исключение DOM.

Например, в следующем коде:

var sound = new Audio();
sound.src = "sound.mp3";
sound.onended = function(event){ console.log('Playing ended.'); }

function play() {
    sound.play();
    alert("Sound is playing...");
}

, еслиВы вызываете функцию play(), все выглядит нормально, для первого вызова.Но любой последующий вызов будет выводить «Воспроизведение закончено» на консоль дважды и выбрасывать Uncaught (in promise) DOMException , если вы держите окно оповещения открытым до тех пор, пока не закончится воспроизведение звука.Также удивляет то, что Chrome сообщает об исключении в строке 1 html-документа!

Почему это происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...