11

这是这个问题的延伸

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

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

根据Arv-ToolTwist对该原始问题的回答,区分“完成”和“暂停”的方式是检查webkitDisplayingFullscreen布尔值(因为“完成”按钮退出全屏,布尔值将返回 false)。

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

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

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

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

1 回答 1

15

这是您正在寻找的事件:

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

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

在这个问题中得到了回答,如何确定 HTML5 视频播放器何时在 iOS / iPad 上进入全屏模式?

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

于 2012-08-29T00:23:58.447 回答