技术笔记:网易云iframe播放器差异化自动播放问题
现象
网站嵌入网易云音乐iframe播放器。以往在PC Chrome、Chrome移动端访问,不会触发自动播放。但在安卓系统自带浏览器,以及ToApp打包生成的WebView应用中,页面加载就直接自动播放音乐,切换页面会重复播放。
排查定位:网易云播放器iframe参数
auto=1是问题根源。
原因
- PC Chrome、Chrome移动端
浏览器自动播放安全策略生效,有声音频必须经过用户点击/触摸交互之后才允许播放。即使auto=1要求自动播放,浏览器内核直接拦截播放请求,因此不会出声。 - 安卓系统浏览器、ToApp打包APK(WebView容器)
WebView关闭了“媒体需要用户手势才能播放”的限制,auto=1的自动播放指令可以直接执行,页面加载就播放音频。
补充:自行追加的
autostart=false属于无效参数,该播放器接口不识别。
解决方案
将URL参数 auto=1 修改为 auto=0,关闭播放器自动播放。
原始错误代码
<p>
<iframe
frameborder="no"
border="0"
marginwidth="0"
marginheight="0"
width="190"
height="150"
src="//music.163.com/outchain/player?type=2&id=1894124903&auto=1&height=66;autostart=false">
</iframe>
</p>修复后代码
<p>
<iframe
frameborder="no"
border="0"
marginwidth="0"
marginheight="0"
width="190"
height="150"
src="//music.163.com/outchain/player?type=2&id=1894124903&auto=0&height=66">
</iframe>
</p>验证
修改完成后,请执行以下操作:
· 清空站点缓存
· 清空CDN缓存
· 在多个环境(PC Chrome、移动端Chrome、安卓系统浏览器、WebView)中验证
验证结果:修改后所有环境下,音乐需要用户手动点击播放器才会播放,问题解决。


Comments | NOTHING
该文章已经关闭评论