阿里云 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/myvi...; allow="autoplay">

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

总结一下共同点: 静音视频或者有用户交互,对于不能自动播放的浏览器可以使用的方法如下:

  1. 先把音视频加一个muted的属性让视频可以自动播放,页面再显示一个关闭声音的按钮,提示用户打开声音
  2. 如果检测到浏览器自动播放失败,提示用户点击播放

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

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

player.on('autoplay', function(data) {

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

});
效果如下:

图片描述

静音播放
对于一些无需播放声音的场景比如视频监控,可以让视频静音然后自动播放,后期用户可以通过音量控制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();});});

效果如下:
图片描述

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

<script src="http://res.wx.qq.com/open/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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449549.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centOS安装python3.7.2

1.查看centos中自带的Python地址&#xff1a;which python&#xff08;一般在 /usr/bin/python&#xff09; 2.切换到python安装目录&#xff1a;cd /usr/bin 3.查看对应的Python版本指向&#xff1a;ls -l python* 4.创建一个空目录&#xff1a;mkdir /usr/local/python3 5.…

有进度条圆周率Π计算

圆周率π的计算 一、圆周率π的简介 圆周率的介绍圆周率用希腊字母 π&#xff08;读作pi&#xff09;表示&#xff0c;是一个常数&#xff08;约等于3.141592654&#xff09;&#xff0c;是代表圆周长和直径的比值。它是一个即无限不循环小数&#xff0c;在日常生活中&#xf…

【云周刊】第205期:阿里云重磅开源实时计算平台Blink,挑战计算领域的“珠峰”...

本期头条 阿里云重磅开源实时计算平台Blink&#xff0c;挑战计算领域的“珠峰” 信息爆炸的时代&#xff0c;智能推荐已经被应用到各类互联网产品中&#xff0c;但为千万级甚至亿级规模的用户实时做精准的推荐难度极高。这一难题已经被阿里攻克了&#xff1a;双11的第1分钟&…

Mysql 取用逗号分隔的字串的子串的方法:SUBSTRING_INDEX

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 有一张部门表&#xff1a;appbricks_department &#xff0c;有 id 字段和 rank_tree 字段。 rank_tree&#xff1a;记录的是当前部门的…

UCloud首尔机房整体热迁移是这样炼成的

2019独角兽企业重金招聘Python工程师标准>>> 2018年下半年&#xff0c;UCloud首尔数据中心因外部原因无法继续使用&#xff0c;需要在很短时间内将机房全部迁走。为了不影响用户现网业务&#xff0c;我们放弃了离线迁移方案&#xff0c;选择了非常有挑战的机房整体热…

解决浏览器 Provisional headers are shown 无法向后台发送请求问题

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 我的情况和下面情况一样&#xff0c;有一个断点。 今天调试项目BUG&#xff0c;页面的一个按钮点击后页面无反应&#xff0c;去后台找对…

台湾邮政历史常设展重新开幕

1月29日&#xff0c;重新开幕的台湾邮政历史常设展增加了与观众的对话和互动&#xff0c;希望吸引不同年龄层观众。中新社记者 孔任远 摄 1月29日&#xff0c;重新开幕的台湾邮政历史常设展增加了与观众的对话和互动&#xff0c;希望吸引不同年龄层观众。中新社记者 孔任远 摄 …

微信屏蔽百度红包活动页面,谁在焦虑?

1月29日消息&#xff0c;百度与中央电视台合作的百度红包链接分享页面被微信屏蔽&#xff0c;打开相关页面显示&#xff1a;网页包含诱导分享、关注等诱导行为内容&#xff0c;被多人投诉&#xff0c;为维护绿色上网环境&#xff0c;已经停止访问该网页。 雷锋网了解到&#x…

Visual C++利用Intel C++ 编译器提升多核性能与多媒体指令支持获取更高的程序效率与缩小程序体积

Intel c编译器有下列优点&#xff0c;建议VC项目开发采用intel c编译器取代VS自带c编译器&#xff1a; 与 Microsoft Visual C 相兼容&#xff0c;可以嵌入 Microsoft Visual Studio 开发环境。 支持最新的多核处理器&#xff0c;并提供安全功能&#xff0c;可以通过执行堆栈…

Redis数据结构之简单动态字符串SDS

Redis的底层数据结构非常多&#xff0c;其中包括SDS、ZipList、SkipList、LinkedList、HashTable、Intset等。如果你对Redis的理解还只停留在get、set的水平的话&#xff0c;是远远不足以应对面试提问的。本文简单介绍了Redis底层最重要的数据结构 - 简单动态字符串&#xff08…

windows 小技巧

2019独角兽企业重金招聘Python工程师标准>>> 桌面图标显示不全、图标呈现白色方块 ie4uinit -show 关闭占用指定端口的进程 获取进程: netstat -ano | findstr 端口号关闭进程&#xff1a;taskkill -f -pid 进程号文件被占用 打开任务管理器&#xff0c;切换到 性能…

谈判学:三招了解对方底线

导读&#xff1a;谈判者都希望能了解对方的底线&#xff0c;最直接的一招就是将对手变成“朋友”&#xff0c;只是这种“内奸法”毕竟不是常规之法。大多数情况下&#xff0c;谈判双方也不可能像《无间道》一样在对方阵营安放卧底&#xff0c;但是我们完全可以通过一些办法来揣…

SQL SERVER 2012 AlwaysOn - 维护篇 03

搭建 AlwaysOn 是件非常繁琐的工作&#xff0c;需要从两方面考虑&#xff0c;操作系统层面和数据库层面&#xff0c;AlwaysOn 非常依赖于操作系统&#xff0c;域控&#xff0c;群集&#xff0c;节点等概念&#xff1b; DBA 不但要熟悉数据库也要熟悉操作系统的一些概念&#xf…

区块链BAAS平台:公共或私人区块链编程以用于各种用途

2019独角兽企业重金招聘Python工程师标准>>> 人们可以为公共或私人区块链编程以用于各种用途。理论上&#xff0c;我认为牺牲权力下放的方面可以解决区块链技术背后的许多当前问题。区块链仍然可以包容&#xff0c;而不是分散。这如何解决当前的一些问题&#xff1f…

易用性问题回复

针对淘宝网为例&#xff0c;以一次完整的购物流程为背景&#xff0c;我们分析了在淘宝网中的一些易用性的体现&#xff0c;主要场景如下图所示: 在本场景中&#xff0c;新用户下载淘宝app时&#xff0c;第一次打开应用&#xff0c;淘宝app会出现新手指引&#xff0c;教会用户如…

eBay是如何进行大数据集元数据发现的

很多大数据系统每天都会收集数PB的数据。这类系统通常主要用于查询给定时间范围内的原始数据记录&#xff0c;并使用了多个数据过滤器。但是&#xff0c;要发现或识别存在于这些大型数据集中的唯一属性可能很困难。 在大型数据集上执行运行时聚合&#xff08;例如应用程序在特定…

职业发展 先“立功”还是先“安内”?

导读&#xff1a;职业生涯更上一层楼&#xff0c;章良踌躇满志&#xff0c;想在短期内建功立业&#xff0c;奠定江湖地位。但他清楚&#xff0c;自己运筹中的分公司服务升级计划&#xff0c;对公司整体和自己的职业生涯都非常有利&#xff0c;却将不可避免地转移老将掌握的部分…

kong入门实战

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 安装kong-database docker run -d --name kong-database \-p 5432:5432 \-e "POSTGRES_USERkong" \-e "POSTGRES_DBkong&…

PAT A1048

示例思想中提到了二分以及two point概念&#xff0c;这个需要后面进行总结&#xff1b;这个示例也给出了一个新的思路。对于两个数字和m&#xff0c;查找两个加数&#xff0c;可以进行i和m-i的枚举&#xff0c;通过遍历数组查看两个加数是否存在&#xff0c;来进行遍历&#xf…

CentOS 7 防火墙操作

导语 今天说下防火墙的操作。CentOS 6 的防火墙是 iptables&#xff0c;CentOS 7 默认的是 firewall&#xff0c;以前的操作不再适用。 查看、开启 服务器刚刚重启完毕&#xff0c;先来看下防火墙的状态&#xff0c;输入 systemctl status firewalld 进行查看 这里是关闭的&…