如何处理 Uncaught (in promise) DOMException: play() 请求被 pause() 调用中断

新手上路,请多包涵

下面是我在 aspx 页面中的代码,允许在浏览器中播放 wav 格式的音频,但使用我当前的代码,我无法在 Chrome 浏览器中播放 wav 音频,但它在 Firefox 中有效。我该如何处理这个异常?

 <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>

原文由 user7076604 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 653
1 个回答

对于 Chrome,他们更改了自动播放策略,因此您可以在 此处 阅读:

 var promise = document.querySelector('audio').play();

if (promise !== undefined) {
    promise.then(_ => {
        // Autoplay started!
    }).catch(error => {
        // Autoplay was prevented.
        // Show a "Play" button so that user can start playback.
    });
}

原文由 Vladislav Nosenko 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题