当我按下HTML5视频元素的默认全屏按钮时如何捕获全屏事件?

foo*_*fox 6 javascript html5 html5-video ionic-framework html5-fullscreen

我在使用HTML5 video标签时遇到问题iconic.

这是我的模板的一部分:

<ion-view>
   <ion-content overflow-scroll="true" data-tap-disable="true">
      <div class="list card">
        <div class="item item-body" style="padding: 5% 5% 5% 5%">
            <div class="player">
            <video controls="controls" autoplay id="sr"></video>
          </div>
        </div>
      </div>
   </ion-content>
</ion-view>
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

.controller('viewVideoCtrl', function ($scope, $state, $stateParams) {
   var videoPath = URL + "uploadFiles" + $stateParams.videoPath;

   var videoObject = document.getElementById("sr");
   videoObject.src = videoPath;
   var webkitBeginFullScreen = function () {
      alert("video has fullScreen!");
   };

   var onVideoEndsFullScreen = function () {
     alert("fullScreen has end!");
   };

   videoObject.addEventListener('webkitbeginfullscreen', webkitBeginFullScreen, false);
   videoObject.addEventListener('webkitendfullscreen', onVideoEndsFullScreen, false);
});
Run Code Online (Sandbox Code Playgroud)

如您所见,没有video标签的自定义控制按钮,并使用由铬本身创建的默认控制栏.

现在我想在fullscreen按下按钮时做一些事情.我找到了一个解决方案,添加了两个监听器:webkitbeginfullscreenwebkitendfullscreen视频对象,但它没有被触发.

gee*_*aut 7

我确实不确定Android或iOS,但该<video>元素可以使用以下三个事件之一:

  • webkitfullscreenchange
  • mozfullscreenchange
  • fullscreenchange

规范而言,这就是您所拥有的。

请参见此示例或以下代码:

function onFullScreen(e) {
  var isFullscreenNow = document.webkitFullscreenElement !== null
  alert('Fullscreen ' + isFullscreenNow)
}

document.getElementById("video").addEventListener('webkitfullscreenchange', onFullScreen)
Run Code Online (Sandbox Code Playgroud)

  • 2019 年,仍然必须使用“webkitfullscreenchange”而不是“fullscreenchange”。 (2认同)