【问题标题】:Escape Full screen plays video if video is paused如果视频暂停,则转义全屏播放视频
【发布时间】:2016-02-01 19:56:21
【问题描述】:

我有一个 HTML 视频,当用户单击播放时会全屏播放。如果用户在全屏范围内点击转义,一切正常 - 视频停止播放并退出全屏。但是,如果用户在全屏内暂停视频,然后点击退出,则视频会再次开始播放,导致视频中的声音在退出全屏时返回的页面上循环播放。我的js控件如下:

exitHandler: function(){
    vid = Video.vid;
    $(Video.featuredVideo).toggleClass('featured-video-show');
    if (document.webkitIsFullScreen || document.mozFullScreen || document.msFullscreenElement !== null){
        if (vid.paused){
            vid.play();
        }
        else {
            vid.pause();
        }
    }
  }

如果用户在全屏内暂停然后点击“退出”以退出全屏,我该如何阻止视频/音频重新启动?

【问题讨论】:

  • 为什么在全屏退出时暂停播放视频?该代码有目的吗?因为这就是导致您的问题的原因。
  • 啊。好吧,我需要在进入全屏时播放视频。如果我将 if 语句更改为 vid.pause() 上述问题已解决,但现在视频在进入全屏时无法播放

标签: javascript video html5-video fullscreen html5-fullscreen


【解决方案1】:

创建一个变量来跟踪您当前(在处理程序执行时)是退出还是进入全屏状态,如果您确实正在退出它,请不要触发play 命令。我认为没有特定的事件侦听器,因此您可能必须为此编写一个间隔。当我遇到这个问题时,我使用了以下函数:

var canFullscreen = function(){
  return (
    !document.fullscreenElement &&
    !document.mozFullScreenElement &&
    !document.webkitFullscreenElement &&
    !document.msFullscreenElement );
}

这个函数检查我们当前是否可以进入全屏。如果它返回false,那么要么没有全屏功能(旧的/奇怪的浏览器),要么您已经处于全屏状态。这是我在间隔中运行的函数,用于准确检查用户何时退出全屏(此时以编程方式处理退出)。如果您改为跟踪 Escape 按钮的按键,则可以将该功能放在那里以确定您是进入还是退出全屏。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    相关资源
    最近更新 更多