- 场景:微信、浏览器、App
- 普通解决方案:采用audio标签的autoplay属性
API建立在微信壳浏览器的内置JS对象WeixinJSBridge上WeixinJSBridge并不是WebView一打开就有了,客户端需要初始化这个对象当这个对象准备好的时候,客户端会抛出事件”WeixinJSBridgeReady”发现部分机型,监听DOMContentLoaded和load事件在回调中也可以播放音乐;所以,为了保险起见可以同时监听两个事件,以增強其适用性
2、部分Android浏览器和所有IOS下Safari浏览器不支持自动播放
解决方案:通过手势事件播放音乐
(1) 监听body的touchstart事件,回调中播放音乐;
缺点:部分元素的touch事件可能会阻止冒泡需要在对应的地方调起播放音乐函数
(2) 可以增加透明层,点击到透明层播放音乐,关闭透明層;
缺点:第一次点击按钮元素可能不响应造成用户体验上的伤害。
部分App不支持webview音乐自动播放
解决方案:1.壳浏览器支持;2.通过掱势事件播放音乐
解决问题时五一搜到的记录下来帮助理解解决问题。
原网址
另:亲测有效