使用 iphone 上的 HTML5 视频元素,如何检测“暂停”和“完成”之间的区别?

Posted

技术标签:

【中文标题】使用 iphone 上的 HTML5 视频元素,如何检测“暂停”和“完成”之间的区别?【英文标题】:With an HTML5 video element on the iphone, how can I detect the difference between "pause" and "done"? 【发布时间】:2012-06-22 03:39:33 【问题描述】:

这是this question的扩展

根据我的研究,对于 iPhone/iPad 上的视频元素,同时按下“完成”和“暂停”会触发“暂停”事件。因此,如果我有一些想要在按下“完成”按钮时启动的网页行为,我需要监听“暂停”事件。

player = document.getElementById('videoplayer');
player.addEventListener("pause", function() 
   //desired "done button" behavior defined here
, false);

根据Arv-ToolTwist's answer to that original question,区分“完成”和“暂停”的方式是检查webkitDisplayingFullscreen布尔值(因为“完成”按钮退出全屏,布尔值将返回假)。

player.addEventListener("pause", function() 
   if(!player.webkitDisplayingFullscreen) 
      //desired "done button" behavior defined here
   
, false);

但是,如果用户在播放器处于全屏模式时暂停视频,然后在视频暂停时按“完成”,则不会启动“所需的完成按钮行为”。

我的研究几乎没有发现这方面的信息,但我的假设是“暂停”事件没有被第二次触发,或者它在 webkitDisplayingFullscreen 布尔值之前被第二次触发改为“假”。无论哪种方式,设备都可以区分“完成”和“暂停”(即使播放器已经暂停),所以我想知道

    设备如何区分,以及 是否有办法检测播放器何时退出全屏模式,这样即使播放器已经暂停,仍然可以检测到按下“完成”按钮,并且仍然会启动所需的行为。

【问题讨论】:

您找到解决方案了吗?我目前被困在完全相同的地方。 【参考方案1】:

这是您正在寻找的活动:

player.addEventListener('webkitendfullscreen', onVideoEndsFullScreen, false);

当用户按下“完成”按钮时,该事件确实会触发。 (iPhone/iTouch)

在这个问题中得到了回答,How to figure out when a html5 video player enters the full screen mode on ios / iPads?

这只是留下主页按钮事件...似乎没有可靠的事件(见底部 2 个帖子)https://discussions.apple.com/thread/4182660?start=0&tstart=0

【讨论】:

以上是关于使用 iphone 上的 HTML5 视频元素,如何检测“暂停”和“完成”之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章

使用 html5 视频提取部分视频。 iphone/ipad 上的全屏问题

iPad / iPhone 上的 FrameSet 和 HTML5 视频 - 视频超出框架?

HTML5 视频(Video)元素使用详解

iPhone 上的 HTML5 视频自动播放

css 隐藏iPhone上的HTML5视频控件

iPhone 与 iPad/浏览器上的 HTML5 内嵌视频