audio.play()播放报错DOMException: play() failed because the user didn‘t interact with the document first
时间: 2023-12-30 17:23:51 浏览: 149
DOMException: play() failed because the user didn‘t interact wit
这个错误是由于浏览器的自动播放策略导致的。为了避免滥用自动播放功能,现代浏览器要求用户首先与页面进行交互,然后才能播放音频或视频。如果没有用户交互,调用`audio.play()`方法会导致`DOMException: play() failed because the user didn't interact with the document first`错误。
解决这个问题的方法是在用户与页面进行交互后再调用`audio.play()`方法。例如,可以在用户点击页面的某个元素后再播放音频。
以下是一个示例代码,当用户点击页面上的按钮时,音频开始播放:
```html
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
background: tomato;
margin: 100px auto;
}
</style>
</head>
<body>
<div id="test"></div>
<audio></audio>
<button onclick="playAudio()">播放音频</button>
<script>
var audio = document.getElementsByTagName("audio")[0];
function playAudio() {
audio.src = "./source/Travel.mp3";
audio.play();
}
</script>
</body>
</html>
```
在这个示例中,当用户点击"播放音频"按钮时,音频开始播放,避免了自动播放错误。
阅读全文