思路:在页面中内嵌微信开发的代码块,可让ios手机自动播放背景音乐
注意:代码引入了微信js接口,实际开发需配置jsjdk
html代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1, user-scalable=no" />
<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="js/music.js"></script>
<!-- 引入微信JS接口 -->
<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<style>
.music-control{
position: absolute;
top: .2rem;
right: .2rem;
z-index: 1001;
}
.music-control>img{
width: 30px;
height: 30px;
}
.Mrotate{
animation: Mrotate 3s linear infinite;
}
@keyframes Mrotate {
0%{
transform: rotate(0deg);
}
100%{
transform: rotate(360deg);
}
}
</style>
</head>
<body style="background: #3b3b3b;">
<!-- 音乐控制开关 -->
<div class="music-control">
<img name="music_play.png" class="music-play Mrotate" onclick="Mplay()">
<img name="music_pause.png" class="music-pause" style="display: none;" onclick="Mpause()">
</div>
<audio src="music/bgMusic.MP3" id="myaudio" controls="controls" autoplay preload hidden loop></audio>
</body>
</html>
music.js
$(function(){
//给所有页面的img图片加上path路径
var imgPath = "images/";
$("img").each(function(){
imgName = this.name;
this.src = imgPath+imgName;
})
// 解决ios音乐不自动播放的问题
autoPlayAudio();
})
// 背景音乐播放
function Mplay(){
$(".music-play").hide()
$(".music-pause").show()
var globalAudio=document.getElementById("myaudio");
globalAudio.pause();
}
// 背景音乐暂停
function Mpause(){
$(".music-play").show()
$(".music-pause").hide()
var globalAudio=document.getElementById("myaudio");
globalAudio.play();
}
// 微信接口初始化背景音乐
function autoPlayAudio() {
wx.config({
debug: false,
appId: '',
timestamp: 1,
nonceStr: '',
signature: '',
jsApiList: []
});
wx.ready(function() {
var globalAudio=document.getElementById("myaudio");
globalAudio.play();
});
};
附上使用的图片
测试结果:
①在本地vscode中使用Live Server运行并在手机微信浏览器打开,背景音乐可自动播放【达到需求目的】
②在本地pc端直接点击html打开,没有自动播放音乐
总结:
该方法适用于微信h5小游戏制作背景音使用