阿里云 Aliplayer高级功能介绍(九):自动播放体验

简介: 经常会碰到客户询问,为什么我设置了autoplay为true,但是没有自动播放,每次都要向客户解释这个是浏览器从用户体验角度考虑做的限制,客户会继续询问那我要怎么做? 针对这个问题Aliplayer也专们做过优化,提供一些方式让客户能更好的处理这种情况。

基本介绍

经常会碰到客户询问,为什么我设置了autoplay为true,但是没有自动播放,每次都要向客户解释这个是浏览器从用户体验角度考虑做的限制,客户会继续询问那我要怎么做? 针对这个问题Aliplayer也专们做过优化,提供一些方式让客户能更好的处理这种情况。

现象描述

有声音视频无法自动播放这个在移动端上一直都是这个限制,桌面版的Safari在2017年的11版本也宣布禁掉带有声音的多媒体自动播放功能,Chrome也在2018年4月份发布的66版本也正式关掉了声音自动播放,也就是说通过H5方式播放音视频在桌面版浏览器自动播放会失效。

<audio autopaly></audio> 
<video autoplay></video>

浏览器厂家为什么要禁止自动播放的呢? 移动端主要考虑的是手机的带宽以及对电池的消耗,Chrome主要基于下面的考虑:

  • improve the user experience
  • minimize incentives to install ad blockers
  • reduce data consumption on expensive and/or constrained networks 总之一句话,从用户角度考虑。

破解之法

只要视频没有声音或者有用户交互了就可以播放, 现在来看一下Safari和Chrome的具体政策:

Safari允许自动播放政策,具体请查看Safari Video Policy

  • 视频没有音轨
  • Video设置为muted,<video muted>
  • 当Video元素不可见,比如CSS设置为display:none或者滚动到非可见区域,视频将会被暂停

Chrome允许自动播放政策: 具体请查看Chrome Autoplay

  • 静音的视频
  • 有用户行为交互
  • 符合Media Engagement Index,只要用户在当前网页主动播放过超过7s的音视频(视频窗口不能小于200 x 140)
  • 移动端用户添加网站到首页屏幕(主要是PWA应用)
  • 嵌套到IFrame,允许自动播放,比如:

<!-- Autoplay is allowed. -->
<iframe src="https://cross-origin.com/myvideo.html" allow="autoplay">

<!-- Autoplay and Fullscreen are allowed. -->
<iframe src="https://cross-origin.com/myvideo.html" allow="autoplay; fullscreen">

总结一下共同点: 静音视频或者有用户交互,对于不能自动播放的浏览器可以使用的方法如下:
1. 先把音视频加一个muted的属性让视频可以自动播放,页面再显示一个关闭声音的按钮,提示用户打开声音
2. 如果检测到浏览器自动播放失败,提示用户点击播放

Aliplayer的使用

对于上面两种方式Aliplayer提供了对应功能,帮助用户去实现更好的用户体验。

检测浏览器是否能够自动播放

Aliplayer提供了'autoplay'事件,用于通知当前视频是否满足浏览器自动播放的政策,如果不满足返回false,否则为true。

  player.on('autoplay', function(data) {
     if(data.paramData) //可以自动播放
     {
        //隐藏提示
     }else //不可以自动播放
     {
       //显示提示用户点击播放
     }

  });

效果如下:

3752ca77bfcd167029fec504028da610054e6dc5

静音播放

对于一些无需播放声音的场景比如视频监控,可以让视频静音然后自动播放,后期用户可以通过音量控制UI开启声音。 代码如下:

 let player = new Aliplayer({
            id: 'J_prismPlayer',
            width: '100%',
            height:'100%',
            autoplay: true,
            source : 'https://sdk.fantasy.tv/hc.mp4'
            },function(player){
               //先静音然后播放
               player.mute();
               player.play();
           });
        });

效果如下:
8838039a126a380dbdf006fa6a6b9ac708c5c121

iOS微信自动播放

iOS 的微信可以在WeixinJSBridgeReady事件里调用play方法,让视频自动播放, 这个hack方式在Android手机不起作用, 具体代码如下:

<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
  let player = new Aliplayer({
      id: 'J_prismPlayer',
      width: '100%',
      height:'100%',
      autoplay: true,
      source : 'https://sdk.fantasy.tv/hc.mp4'
   });
  $(document).on('WeixinJSBridgeReady',()=>{ 
       if(player.tag)
       {
          player.tag.play();
       }
  });
</script>
目录
相关文章
|
8月前
|
人工智能 自然语言处理 物联网
豆蔻妇科大模型宣布在妇产科正高考试中成绩超越GPT-5,同时正式开放试用
在钉钉10周年发布会上,壹生检康CEO王强宇宣布其自主研发的豆蔻妇科大模型(doukou.ai)在国家妇产科卫生高级职称笔试考试中以64.94分超越GPT-5的52.59分,并开放网页版试用。这一成绩展现了国产医疗AI在专业化赛道的快速进步和垂直行业大模型的高应用价值,为AI赋能医疗临床提供了新样本。
408 155
|
监控 开发者
确保动态导入模块按正确顺序加载
【10月更文挑战第12天】 在复杂应用开发中,确保动态导入模块按正确顺序加载至关重要,直接影响应用性能、功能和稳定性。本文深入探讨了动态模块加载顺序的影响因素、解决方案及实践案例,提供了详细的策略和方法,帮助开发者有效管理模块加载顺序,提升应用质量。
518 156
|
存储 JavaScript
Vuex 状态管理
【10月更文挑战第15天】总的来说,Vuex 是 Vue.js 应用中非常重要的状态管理工具,它可以帮助我们更好地管理应用的状态,提高开发效率和代码质量。通过深入了解和正确使用 Vuex,我们可以构建出更加复杂和高效的 Vue.js 应用。
418 156
|
自然语言处理 前端开发
一文学会text-justify,orientation,combine文本属性
一文学会text-justify,orientation,combine文本属性 在深度剖析text-align家族和你不知道的下划线-text-decoration两篇介绍文本属性的时候,我们基本已经学会了很多之前没有使用过的属性,今天我们接着来看更多的文本属性,CSS的世界是精妙的,无尽的,仅仅希望同这三篇文章,可以入得CSS文本属性的基础门。人生短暂,学无止尽。
625 156
|
安全 云栖大会 数据安全/隐私保护
云栖大会演讲回顾 | 云市场心选包销伙伴赖炳辉:包销心选,大有可为
导语:云市场心选包销伙伴赖炳辉为大家介绍网站建设的现状与市场分析,以及自己携手阿里云云市场的收获、心得。
2353 155
云栖大会演讲回顾 | 云市场心选包销伙伴赖炳辉:包销心选,大有可为
|
数据挖掘 索引 Python
python数据分析之pandas超详细学习笔记(下)
简介:pandas,python+data+analysis的组合缩写,是python中基于numpy和matplotlib的第三方数据分析库,与后两者共同构成了python数据分析的基础工具包,享有数分三剑客之名。
473 149
|
数据安全/隐私保护
阿里云移动端播放器高级功能---视频下载
基本介绍 优酷、爱奇艺、腾讯等主流的视频类App都有视频离线下载的功能,主要目的是在wifi下将视频离线在本地,然后在无网或者4G的情况下去观看离线视频。那么阿里云播放器也提供了视频下载的功能。这个功能主要针对的是点播视频,也就是vid播放的视频的下载。
7056 143
|
存储 边缘计算 物联网
中国首份边缘云白皮书:边缘云是下一阶段的计算平台
《边缘云计算技术与标准化白皮书》近期发布,定义了边缘云计算的概念和标准等。中心云和边缘云相互配合,实现中心-边缘协同、全网算力调度、全网统一管控等能力,真正实现“无处不在”的云。
4539 140

热门文章

最新文章