HTML 无法自动播放背景音乐

问题描述:

解决 移动端 访问HTML5 无法自动播放背景音乐


原因分析:

苹果为了用户着想,禁止了Autoplay和JS “onload” 加载播放,也就是说即使你在html文件里使用了preload和autoplay属性,在移动版 Safari 上,此属性会被忽视,并且不会加载视频流,甚至不会下载该视频流。除非用户物理点击一次屏幕,其实现在不止苹果手机,其他的安卓手机和部分App有时也存在背景音不能自动播放的问题。


解决方案:

在 head标签中使用的 audio 标签播放音乐


<!DOCTYPE html>
<html lang="en">
	<head>
		<!-- Music -->
		<audio style="display:none; height: 0" id="bg-music" preload="auto" src="youxing.mp3" loop="loop"></audio>
		<!-- Metas -->
		<meta charset="utf-8">
		

在页面中添加下面的js代码即可解决


<script>
			//音乐自动播放
			$(document).ready(function() {
				autoPlayMusic();
				audioAutoPlay();
			});

			function audioAutoPlay() {
				var audio = document.getElementById('bg-music');
				audio.play();
				document.addEventListener("WeixinJSBridgeReady", function() {
					audio.play();
				}, false);
			}
			// 音乐播放
			function autoPlayMusic() {
				// 自动播放音乐效果,解决浏览器或者APP自动播放问题
				function musicInBrowserHandler() {
					musicPlay(true);
					document.body.removeEventListener('touchstart', musicInBrowserHandler);
				}
				document.body.addEventListener('touchstart', musicInBrowserHandler);
				// 自动播放音乐效果,解决微信自动播放问题
				function musicInWeixinHandler() {
					musicPlay(true);
					document.addEventListener("WeixinJSBridgeReady", function() {
						musicPlay(true);
					}, false);
					document.removeEventListener('DOMContentLoaded', musicInWeixinHandler);
				}
				document.addEventListener('DOMContentLoaded', musicInWeixinHandler);
			}

			function musicPlay(isPlay) {
				var media = document.querySelector('#bg-music');
				if (isPlay && media.paused) {
					media.play();
				}
				if (!isPlay && !media.paused) {
					media.pause();
				}
			}
		</script>
		
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值