测试


技术笔记:网易云iframe播放器差异化自动播放问题

现象

网站嵌入网易云音乐iframe播放器。以往在PC Chrome、Chrome移动端访问,不会触发自动播放。但在安卓系统自带浏览器,以及ToApp打包生成的WebView应用中,页面加载就直接自动播放音乐,切换页面会重复播放。

排查定位:网易云播放器iframe参数 auto=1 是问题根源。


原因

  1. PC Chrome、Chrome移动端
    浏览器自动播放安全策略生效,有声音频必须经过用户点击/触摸交互之后才允许播放。即使 auto=1 要求自动播放,浏览器内核直接拦截播放请求,因此不会出声。
  2. 安卓系统浏览器、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&amp;id=1894124903&amp;auto=1&amp;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&amp;id=1894124903&amp;auto=0&amp;height=66">
  </iframe>
</p>

验证

修改完成后,请执行以下操作:

· 清空站点缓存
· 清空CDN缓存
· 在多个环境(PC Chrome、移动端Chrome、安卓系统浏览器、WebView)中验证

验证结果:修改后所有环境下,音乐需要用户手动点击播放器才会播放,问题解决。

声明:三二一的一的二|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 测试


三二一的一的二