H5自动播放背景音乐(IOS和安卓)

本文探讨了在安卓和iOS上实现H5背景音乐自动播放的方法。对于安卓设备,可以直接使用audio标签播放,而iOS则需利用微信事件。在有Loading页的场景下,iOS因自动播放依赖特定事件,可能导致无法自动播放,解决方案是在加载结束时先播放空音频,再启动背景音乐。提供了一种音频播放的封装实现供参考。

安卓与IOS播放

安卓可以直接使用audio标签进行播放

<audio
	ref="sound"
	:src="bgm.mp3"
	loop />
const audio = document.querySelector('audio')
audio.play()

IOS端需要借助微信自带的事件进行播放

const audio = document.querySelector('audio')
document.addEventListener('WeixinJSBridgeReady', () => {
   
   
	audio.play()
}, false)

其他app客户端直接同安卓端一样直接播放
浏览器app部分可能不支持自动播放

安卓与IOS兼容

有Loading页,需要在Loading页之后播放背景音乐时,IOS端依旧无法自动播放,因为自动播放音频依托于微信的WeixinJSBridgeReady的事件,WeixinJSBridgeReady通常发生很快,在Loading页结束之前已经发生,此时可以在WeixinJSBridgeReady时播放一段空音频,等待Loading结束,再播放bgm。

var _audio
var _isWeixinJSBridgeReady = false
document.addEventListener('WeixinJSBridgeReady', () => {
   
   
  _isWeixinJSBridgeReady = true
  _audio = new Audio()
  _audio.style.display = 'none'
  // 播放空音频
  _audio.src = 'empty.mp3'
  _audio.play()
}, false)

const initMusic = () => {
   
   
	var setInitMuisc = () => {
   
   
		// 播放背景音乐
		_audio.src = 'bgm.mp3'
		_audio.play()

		document.removeEventListener('click', setInitMuisc)
		document.removeEventListener('touchstart', setInitMuisc)
    }
	document.addEventListener('click', setInitMuisc)
    document.addEventListener('touchstart', setInitMuisc)
    document.body.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值