如何判断 HTML5 视频播放器在 iOS / iPad 上进入全屏模式?

2024-02-04

HTML5<video>标签为用户提供了一个按钮,用于在移动设备 (iOS) 的 Safari 上打开和关闭全屏模式。

我想捕获并处理此用户操作,但当按下按钮并且播放器进入全屏模式时,它似乎不会引发事件。

以下是 HTMLVideoElement 类的 Safari API 的链接:

https://developer.apple.com/documentation/webkitjs/htmlvideoelement https://developer.apple.com/documentation/webkitjs/htmlvideoelement

我们可以很容易地在 Javascript 中找到视频何时暂停或播放,如下所示:

function onload()
{
  var player = document.getElementsByTagName("video")[0];
  player.addEventListener('play',videoPlayHandler,false);
  player.addEventListener('pause',videoPauseHandler,false);
}

然而,当视频进入全屏模式时,他们似乎没有任何事件。

我们可以通过调用以下方法强制视频进入全屏模式以响应用户操作webkitEnterFullscreen(),但这对我没有帮助。我需要知道用户何时点击全屏按钮。

隐藏控件并用我自己的自定义控件替换它们听起来像是一个非常冗长的解决方案。

我能想到的另一个选择是设置一个计时事件,不断检查webkit显示全屏属性,但就内存管理而言,这感觉像是一件坏事。

谁能提出更好的解决方案?


经过一番折腾后,一位朋友终于给我指明了正确的方向。

我正在寻找的事件是:webkit开始全屏 and webkit结束全屏

var player = document.getElementsByTagName("video")[0];
player.addEventListener('webkitbeginfullscreen', onVideoBeginsFullScreen, false);
player.addEventListener('webkitendfullscreen', onVideoEndsFullScreen, false);

这样我就可以安全地捕捉用户点击 iPad 版 Safari 上的全屏按钮的情况。有趣的是,相同的事件似乎不适用于 iMac 上的 Safari(在版本 5.1.2 上测试)。

感谢苹果公司的不一致和浪费的时间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何判断 HTML5 视频播放器在 iOS / iPad 上进入全屏模式? 的相关文章

  • Objective-C 中 typedef 枚举语句在哪里?

    我担心的一个基本问题 以下代码有效 并且 typedef 枚举被识别 但我收到一条警告消息 空声明中无用的存储类说明符 我在这里做错了什么吗 这是放置 typedef 枚举的最佳位置吗 import
  • SVG img keepAspectRatio Chrome

    当我对 SVG 文件中的图像使用preserveAspectRatio none 时 它 似乎在 Google Chrome 中不起作用 SVG 不会根据图像宽度和高度进行缩放
  • 右下角对齐的更好方法

    有没有更好的方法来对齐单元格右下角的某些内容 我有一个 div 只包含一个背景图像 10px x 10px 我使用以下样式将其放在右下角 我所在的单元格高 40 像素 这样做会导致我失去 div 上方的 30px 我还使用它作为单击的对象
  • 父级嵌入框阴影与子级 div 重叠

    我遇到一个问题 子级 div 与父级框阴影底部重叠 父级有一个 max height w overflow y 滚动 任何帮助都会很棒 https i stack imgur com jQe0r png https i stack imgu
  • iOS 以编程方式将 AVI 转换为 MP4 格式

    我的应用程序中有一个查询 因为我想将 AVI 格式的视频转换为 MP4 电影格式 所以有没有什么方法可以以编程方式执行此操作 任何代码片段将不胜感激 你需要使用AVAssetExportSession将视频转换为 mp4格式 下面方法转换
  • UL 标签内的标签 H3 [重复]

    这个问题在这里已经有答案了 可能的重复 UL 中是否允许除 LI 之外的任何内容 https stackoverflow com questions 6056142 is anything except lis allowed in a u
  • NSURLConnection 的 URL 文件大小 - Swift

    我想在下载之前从 url 获取文件大小 这是 obj c 代码 NSURL URL NSURL URLWithString ExampleURL NSMutableURLRequest request NSMutableURLRequest
  • 排除单个浏览器使用 CSS 类

    我想排除 Internet Explorer 使用特定的 CSS 类 这可能吗 Details 我有一个 css 类 看起来像 input type radio checked input type radio hover box shad
  • Ionic 2 占位符文本样式

    我正在使用 Ionic 2 rc0 开发一个应用程序 并且整个应用程序中有几个仍然需要样式设置的输入字段
  • 将 div 设置为 post 方法结果页面的目标容器

    我有一个 div 标签 也分为两个 div 这是代码 div div div div
  • iOS 11 浏览器图像错误

    在 iOS 11 中滚动页面时出现以下错误 在 Firefox Safari 和 Chrome 中 在 Android 设备中 不会发生该错误 这些是背景图像 我不知道这是否是导致错误的原因 图 2 显示了图像在 Android 中的用途和
  • 为什么 jQuery 点击事件会多次触发

    我这里有这个示例代码http jsfiddle net DBBUL 10 http jsfiddle net DBBUL 10 document ready function creategene click function confir
  • 观察 UIDatePicker 的变化

    我注意到没有委托来观察 UIDatePicker 中的变化 有没有一种方法可以在不确认任何内容的情况下检测选择器中何时进行更改 例如它旋转并落在新数字上的那一刻 我希望能够检测到这一点 我考虑过关键值观察 但我不认为有一个属性会立即改变 您
  • iframe 重新加载按钮

    我浏览了很多网站 但似乎没有一个能正常工作 或者我不明白它们 我想要一个刷新某个 iframe 的简单按钮 该按钮将位于父页面上 并且 iframe 名称为 Right 有很多方法可以做到这一点 假设这个iframe markup 我们可以
  • 当视口设置为 user-scalable=no 时,iOS/移动 Safari 仍然会缩放?检查辅助功能设置!

    这个特定的 Mobile Safari 看似不可能且未记录 问题让我今天坚持了很长一段时间 当我弄清楚它时 我正要在这里发布一个有关它的问题 问题 虽然我设置了我的 iPad 网络应用程序仍然允许手动缩放 在浏览器中捏合 但只能在我的 iP
  • 默认情况下,JSF 生成不可用的 ID,这些 ID 与 Web 标准的 CSS 部分不兼容

    活跃的 JSF 或 Primefaces 用户能否解释一下为什么默认情况下会发生这种情况 为什么没有人对此采取任何措施
  • 使用 jquery 将字符串数组转换为整数

    我正在尝试将 jquery 中的字符串数组转换为整数数组 这是我的尝试 var cdata data values split each cdata function i l l parseInt l 我认为在这种情况下你不需要使用 Jqu
  • css 计数器在 Internet Explorer 中无法工作以获取隐藏内容 - 如何修复?

    我们想要一些编号列表 并发现了这个很酷的计数器 您可以在 css 中使用它来让浏览器为您计算数字 ol instructions counter reset instructions section ol instructions gt l
  • 如何使 jQuery 向上动画

    我有一些 jquery 运行得相当好 但是当我将鼠标悬停在有问题的元素上时 底部向下扩展 这并不意外 但不是所需的效果 我希望元素的底部保持静止 而元素的顶部向上扩展 如果您想查看我目前拥有的内容 您可以导航至http demo ivann
  • span 和 iframe 正文中的宽度(以像素为单位)

    我需要知道 a 的宽度 nbsp 以像素为单位 以及是否取决于字体大小 另外 页面中不同元素的情况是否有所不同 还有 就是 nbsp 与常规不同 目的 nbsp 不间断空格 位于正常空格之上是为了防止单词之间出现换行 您可以使用多个 nbs

随机推荐

  • 如何控制 Honeycomb 中的软菜单按钮?

    我有一个应用程序 我想在其中关闭菜单按钮 我正在选择其他人的项目 并且不确定是什么引起了菜单按钮的出现 它没有 做任何事情 有没有办法手动关闭该图标 或者我必须首先找出它被显示的原因 请不要批评寻找解决方法 显然在理想的世界中 我会对代码足
  • C++11 std::bind 和 boost::bind 之间的区别

    两者有什么区别吗 或者我可以安全地替换每次出现的boost bind by std bind在我的代码中 从而消除对Boost的依赖 boost bind 关系运算符重载 http www boost org libs bind bind
  • 为 fa 圆添加边框

    如何给图片添加边框circleFont Awesome 的图标 其实我的结果是 http jsfiddle net 0jhdvj0k http jsfiddle net 0jhdvj0k 边框类似于省略号 而不是圆形边框 table cla
  • Jquery - 更改标签中的文本

    这是标签 有文字 使用 20 公里 使用 jquery 我想将文本 20 Kms 替换为 10 kms 我用手像这样贴上标签 label for applyDistanceSlab 我怎样才能做到这一点 label for applyDis
  • 在嵌套对象内搜索文本(以 Backbone.js 集合为例)

    我有一个backbone js 集合 我需要在其中进行全文搜索 我手头的工具如下 Backbone js 下划线 js jQuery 对于那些不熟悉主干的人 骨干集合只是一个对象 在集合内有一个包含模型的数组 每个模型都有一个带有属性的数组
  • CMake Qt UIC 失败

    我目前正在将我的项目从 qmake 移植到 CMake 并且我遇到了 Qt UIC 的问题 它尝试处理不存在的 UI 文件 而不是我希望它处理的实际文件 我有以下文件层次结构 CMakeLists txt MyProject pro mai
  • Visual Studio 解决方案——有什么方法可以创建“特殊”文件夹吗?

    基本上 我希望我的一个文件夹作为一种 特殊文件夹 出现在其他文件夹上方 类似于 属性 如何拥有自己的特殊位置 即使它是一个文件夹 与 App Data 等相同 这可能吗 默认情况下 Visual Studio 不支持添加特殊项目文件夹 Pr
  • 对外界隐藏内部服务以确保使用正确的高级服务[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在一个电子商务网站上工作 我有广告实体 其中包括属性和照片 属性写入数据库 照片存储在文件系统中 我创建了一个WriterService
  • 在 Dash/Plotly 中显示属性会导致 KeyError

    我正在尝试可视化文档中的引用 为此 我有Elements csv 看起来像这样 Doc Description DocumentID SOP Laboratory This SOP should be used in the lab 104
  • __attribute__((force)) 有什么作用?

    这听起来像是我应该能够通过谷歌搜索的东西 但我找不到很好的参考 到底是做什么的 attribute force 做 如 return attribute force uint32 t p 这是针对 ARM 系统 与 clang 交叉编译的
  • qtmaind.lib 中未解析的外部符号

    我正在尝试将我的 Qt 项目设置从 Visual Studio 2013 升级到 2015 它几乎完成了 但我在 qtmaind lib 中遇到了一些错误 1 gt qtmaind lib qtmain winrt obj 错误LNK201
  • Django:URLconf 中的变量参数

    我一直在寻找这个问题 但找不到任何问题 如果重复的话 抱歉 我正在建立某种电子商务网站 类似于 eBay 当我尝试浏览 类别 和 过滤器 时出现了问题 例如 您可以浏览 监视器 类别 这将向您显示大量监视器和一些应用它们的过滤器 与 eBa
  • Spring Boot:java.lang.IllegalArgumentException:找到多个名为 [spring_web] 的片段

    我在 tomcat 9 上部署 spring boot war 时得到了这个 我尝试了很多解决方案 例如清理项目以及我在 stackoverflow 中找到的所有可能的解决方案 但没有任何效果 其中一个在 web xml 中提供绝对排序 但
  • 具有 2 个中心部分的 Windows Phone 8.1 应用程序

    我创建了一个包含两个中心部分的 WP8 1 中心应用程序 这会产生两个轮毂之间滑动的奇怪行为 它们不会像预期的那样 飞 到位 它更像是垂直可滚动视图 如果我添加第三个集线器部分 一切都会正常工作 我在这里上传了有关它的 YouTube 视频
  • 在节点外部标记 networkx 节点属性

    我正在研究属于两种类型的小示例节点集 human machine 我想在每个节点之外以字典形式标记节点属性networkx图中 如下图的节点c e j所示 我使用MS Word在图表上添加了字典类型的属性 基本图是使用以下代码生成的 imp
  • Keras ImageDataGenerator:为什么我的 CNN 的输出是相反的?

    我正在尝试编写一个区分猫和狗的 CNN 代码 我已经设置了标签 例如狗 0和猫 1 所以我希望我的CNN在它是狗时输出0 如果它是猫则输出1 然而 它却做了相反的事情 当它是猫时给出 0 对于狗给出 1 请检查我的代码并看看我哪里出错了 谢
  • 使用 Python 在 OpenCV 中解析 XML 或 YML [重复]

    这个问题在这里已经有答案了 使用 openCV 您可以保存 加载 YML 或 XML 格式的数据 这很容易cv FileStorage使用 C API 我无法让它与 python API 一起工作 Here http pastebin co
  • 如何在 cygwin 上构建和使用最新版本的 git?

    至于我为什么要这样做 请参阅这个问题 使用 cygwin 的官方 Windows Git 二进制文件有哪些缺点 https stackoverflow com questions 21027917 what are the downside
  • 台风故事板集成

    我在我的应用程序中使用故事板 当我第一次开始集成 Typhoon 时 我在 plist 中列出了程序集 如下所示
  • 如何判断 HTML5 视频播放器在 iOS / iPad 上进入全屏模式?

    HTML5