手机端Web Audio API自动播放兼
手机端的音乐自动播放,算是前端老生常谈的难题了。iOS、Android 一个比一个讲究用户交互,稍不注意就被拦播放了。还好有几个靠谱的方法,能比较稳地兼容主流浏览器。
用户触发播放是最保险的方式。你可以在页面加载完后,监听用户的第一次点击或触摸,比如加个透明按钮或者菜单点一下,audio.play()
就能顺利走起来。
Web Audio API的用法也蛮灵活。你可以用AudioContext
解锁音频上下文,配合用户交互,控制播放、暂停甚至音量,还能做点音效。
如果你是那种不怕折腾的,可以试试播放无声音频来解锁播放权限。先静音播一下,音频上下文就激活了,切目标音乐。不过注意,有些新版本浏览器已经封这个口子了。
对网络环境有要求的,也可以监听navigator.connection
状态,比如 Wi-Fi 才播歌。服务端推送像WebSocket
触发也有点意思,不过实战场景比较少见。
要是你项目是 App 壳子,那就爽了。用原生封装音频播放,绕开浏览器限制,一路顺滑。但纯 H5 就没这个待遇。
还有个细节,记得按浏览器策略做兼容。iOS 和安卓差异大,Safari 和 Chrome 也各玩各的规则。你最好加点条件判断,按需执行,不然直接翻车。
如果你要做微信里的音乐自动播,推荐去看看《微信浏览器中如何实现自动播放音频和视频》,微信的限制也挺多,但方法也有。
,自动播放这个事,技术方法是有的,关键看你场景和用户体验怎么平衡。如果你想一进页面就放歌,建议还是让用户先点一下,既稳又不烦人。
下载地址
用户评论