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


这是一个扩展 这个问题

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

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

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

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

然而,在用户在播放器处于全屏模式时暂停视频然后在视频暂停时按下“完成”的情况下,不启动“期望的完成按钮行为”。

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

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

7163
2018-06-20 02:44


起源

你找到了解决方案吗?我目前陷入了同样的困境。 - Mark
不,还没有解决方案。 - Scott


答案:


这是您要寻找的事件:

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

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

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

这只是离开主页按钮事件......对于这似乎没有可靠的事件(参见下面的2篇帖子) https://discussions.apple.com/thread/4182660?start=0&tstart=0


15
2017-08-29 00:23