2016-10-27 5 views
2

Ниже приведен мой код на странице aspx, чтобы разрешить воспроизведение аудио в формате wav в браузере, но с моим текущим кодом i я не в состоянии играть WAV аудио в браузере Chrome, но он работает в Mozilla firefox.How может я обработать это исключениеКак справиться с Uncaught (в обещании) DOMException: запрос play() был прерван вызовом pause()

<script> 

      window.onload = function() { document.getElementById("audio").play(); } 
      window.addEventListener("load", function() { document.getElementById("audio").play(); }); 
     </script> 
<body> 
     <audio id='audio' controls autoplay> 
    <source src="Sounds/DPM317.wav" type="audio/wav" /> 
    Your browser does not support the audio element. 
    </audio> 
</body> 
+0

почему вы пытаетесь запустить 'играть () 'дважды на загрузке страницы? удалите одну из этих строк для лучшей жизни –

ответ

0

Попробуйте с помощью обратного вызова, как это с блоком улова.

document.getElementById("audio").play().catch(function() { 
    // do something 
}); 
+0

, которая сломается, если игра не вернет обещание (в настоящее время play() возвращает только обещание в Chrome, я считаю) –

+0

снова я получаю это Uncaught TypeError: не могу прочитать свойство 'play 'из null –

+0

Вы уверены, что ваш DOM загрузился, когда его призвали играть? – zapping

2

Я не знаю, если это все еще актуально для вас, но я все равно оставляю свой комментарий, так что, возможно, это поможет кому-то еще. У меня была такая же проблема, и решение, предложенное @dighan на bountysource.com/issues/ , решило это для меня.

Так вот код, который решить мою проблему:

var media = document.getElementById("YourVideo"); 
const playPromise = media.play(); 
if (playPromise !== null){ 
    playPromise.catch(() => { media.play(); }) 
} 

Он по-прежнему бросает ошибку в консоли, но, по крайней мере, видео играет :)