近日有一个项目出现audio无法自动播放,查看原因才发现是微信版本更新为7.0.8版本,需要有交互行为,第一次播放需要用户手动点击一下,无法使用DOM中的play()进行直接播放操作,那怎么办呢?
通过微信社区看到了它们说的可以通过web audio api解决,但是看了一下太麻烦了,所以就没用,然后还想到了一种解决办法,就是打开前给当前操作页面加一个引导页,主要是为了第一次触发audio,将其激活,然后用户再操作audio的时候再使用audio.play()就可以了;
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.box1{
position: absolute;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, .5);
}
</style>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
</head>
<body>
<div class="box1" onclick="buttom()">
点击
</div>
<audio id="audio" src="" controls></audio>
</body>
<script>
function buttom(){
var audio=document.getElementById("audio");
audio.play();
audio.setAttribute("src","../music/1.mp3");
$("#box1").hide();
} </script> </html>
用户进行第一次交互之后,后面就可以自行播放了。