- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 iOS11 设备上自动播放视频时遇到了一个大问题(至少在 iphone 7 ios 11.2.5 safari 上测试过)。
当有关自动播放视频的政策发生变化时,我们的自动播放视频停止工作。我们的应用严重依赖视频。
我们对用户与视频互动的所有步骤进行了深刻更改,以确保他们不会被阻止,现在默认情况下他们会静音,并且会在用户手势后触发自动播放。所以视频会自动静音,我们认为我们已经工作了几天。
但是有一个问题:上周,我在我的 girklfriend 11.2 iphone 上测试网站和 boum...视频被屏蔽了。我不明白为什么...查明原因是...我在给电池充电时正在使用她的手机!
确实在 ios11 上,当你给手机充电时,它会自动进入“低电量模式”嘿嘿……从而阻止自动播放视频。如果您进入“设置”>“iTunes 和苹果商店”并转到“自动播放视频”设置,您将看到(当它在低功率模式下充电时):
"autoplay video are not available while low power mode is on"....
因此,基本上全世界成千上万在充电时连接到我们网站的用户将体验不佳且无法加载视频! (我们严重依赖自动播放视频,即使在用户激活声音之前静音也是如此)
我们如何才能检测到这一点,并至少在这种情况下向用户提供解释性消息,例如“我们的视频无法在低功耗模式下播放(或为您的手机充电)。
我知道 Apple 致力于保护用户免受自动播放的不良体验,但在这里我们尽一切努力更改我们的代码库以符合他们的新政策,但我们在他们的文档中看不到我们的网络应用程序(javascript)如何检测低功率模式'或手机充电状态)。这不公平:如果他们在某些情况下更改行为,例如低功耗模式,他们应该按照自己的规则行事,让我们通过检测此设备状态来创建合规但优质的体验。这样我们就可以为用户制定一种 B 计划或后备方案。
知道如何在 Web 应用程序的 JavaScript 中检测 iPhone 正在充电或处于低功耗模式吗?或者如何处理?
最佳答案
也遇到了这个问题,发现 iOS 在低功耗模式下使用 suspend
事件 ( https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/suspend_event )。此事件实际上发生在视频加载几帧并发出一些加载事件之后。
使用此 suspend
事件,我们能够显示后备 UI。为安全起见,如果视频再次播放,我们可以恢复此 UI,例如用户交互。
const videoElement = document.getElementById('myVideo');
videoElement.addEventListener('suspend', () => {
// suspended loading. Show play UI (or fallback image)..
});
videoElement.addEventListener('play', () => {
// remove play UI
});
关于javascript - 检测 ios11 设备是否处于低功耗模式,以防止在正常正确自动播放视频时出现不良用户体验,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50400902/
对此感到疯狂,真的缺少一些东西。 我有webpack 4.6.0,webpack-cli ^ 2.1.2,所以是最新的。 在文档(https://webpack.js.org/concepts/mod
object Host "os.google.com" { import "windows" address = "linux.google.com" groups = ["linux"] } obj
每当我安装我的应用程序时,我都可以将数据库从 Assets 文件夹复制到 /data/data/packagename/databases/ .到此为止,应用程序工作得很好。 但 10 或 15 秒后
我在 cc 模式缓冲区中使用 hideshow.el 来折叠我不查看的文件部分。 如果能够在 XML 文档中做到这一点就好了。我使用 emacs 22.2.1 和内置的 sgml-mode 进行 xm
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。 关闭
根据java: public Scanner useDelimiter(String pattern) Sets this scanner's delimiting pattern to a patt
我读过一些关于 PRG 模式以及它如何防止用户重新提交表单的文章。比如this post有一张不错的图: 我能理解为什么在收到 2xx 后用户刷新页面时不会发生表单提交。但我仍然想知道: (1) 如果
看看下面的图片,您可能会清楚地看到这一点。 那么如何在带有其他一些 View 的简单屏幕中实现没有任何弹出/对话框/模式的微调器日期选择器? 我在整个网络上进行了谷歌搜索,但没有找到与之相关的任何合适
我不知道该怎么做,我一直遇到问题。 以下是代码: rows = int(input()) for i in range(1,rows): for j in range(1,i+1):
我想为重写创建一个正则表达式。 将所有请求重写为 index.php(不需要匹配),它不是以/api 开头,或者不是以('.html',或'.js'或'.css'或'.png'结束) 我的例子还是这样
MVC模式代表 Model-View-Controller(模型-视图-控制器) 模式 MVC模式用于应用程序的分层开发 Model(模型) - 模型代表一个存取数据的对象或 JAVA PO
我想为组织模式创建一个 RDF 模式世界。您可能知道,组织模式文档基于层次结构大纲,其中标题是主要的分组实体。 * March auxiliary :PROPERTIES: :HLEVEL: 1 :E
我正在编写一个可以从文件中读取 JSON 数据的软件。该文件包含“person”——一个值为对象数组的对象。我打算使用 JSON 模式验证库来验证内容,而不是自己编写代码。符合代表以下数据的 JSON
假设我有 4 张 table 人 公司 团体 和 账单 现在bills/persons和bills/companys和bills/groups之间是多对多的关系。 我看到了 4 种可能的 sql 模式
假设您有这样的文档: doc1: id:1 text: ... references: Journal1, 2013, pag 123 references: Journal2, 2014,
我有这个架构。它检查评论,目前工作正常。 var schema = { id: '', type: 'object', additionalProperties: false, pro
这可能很简单,但有人可以解释为什么以下模式匹配不明智吗?它说其他规则,例如1, 0, _ 永远不会匹配。 let matchTest(n : int) = let ran = new Rand
我有以下选择序列作为 XML 模式的一部分。理想情况下,我想要一个序列: 来自 my:namespace 的元素必须严格解析。 来自任何其他命名空间的元素,不包括 ##targetNamespace和
我希望编写一个 json 模式来涵盖这个(简化的)示例 { "errorMessage": "", "nbRunningQueries": 0, "isError": Fals
首先,我是 f# 的新手,所以也许答案很明显,但我没有看到。所以我有一些带有 id 和值的元组。我知道我正在寻找的 id,我想从我传入的三个元组中选择正确的元组。我打算用两个 match 语句来做到这
我是一名优秀的程序员,十分优秀!