检测 HTML5 视频是不是正在播放或暂停,并相应地显示或隐藏 Div

Posted

技术标签:

【中文标题】检测 HTML5 视频是不是正在播放或暂停,并相应地显示或隐藏 Div【英文标题】:Detect if HTML5 video is playing or paused and show or hide a Div accordingly检测 HTML5 视频是否正在播放或暂停,并相应地显示或隐藏 Div 【发布时间】:2015-02-23 16:40:59 【问题描述】:

我有一个 html5 视频,它是我网站的背景,我在该视频上放置了一些文字,例如 Welcome to blah blah blah.....

最初视频不会播放,但是当用户点击播放按钮时视频将开始播放,这里我想淡出该视频上显示的文本。

当用户点击暂停时应该显示文本,点击播放时应该淡出。这是故事:-)

我在下面找到了一些东西

$("#player").get(0).paused
$("#player").get(0).play()
$("#player").get(0).pause()

但没找到

$("#player").get(0).played

如何检测我的视频是在播放还是暂停?我需要类似下面的东西

if(video == "playing")
  $("#introText").fadeOut();
else $("#introText").fadeIn();

感谢您的建议...

【问题讨论】:

【参考方案1】:

要检测您的视频是否正在播放,您可以使用playing(或play)和pause 事件,然后您可以显示或隐藏您的文本:

HTML:

<video id="video">
    <!-- your videos -->
</video>

JS:

$(function()

    var video = $('#video')[0];

    video.addEventListener('playing', function()
           $('.text').fadeOut();
    )
     video.addEventListener('pause', function()
           $('.text').fadeIn();
    )

)

您当然可以使用 var 来指示您的视频状态(正在播放或未播放),然后在代码的另一部分中使用它,而不是直接在事件处理程序中。

你可以看到这段代码在here工作。

希望能有所帮助。

【讨论】:

【参考方案2】:

有一个“播放”事件,在视频开始播放时触发,还有一个“暂停”事件,在视频暂停时触发。

或者,当视频正在播放时,“paused”属性为假,不播放时为真。

【讨论】:

【参考方案3】:

为什么不直接触发播放按钮点击事件呢?

$("button").click(function()
    $("#div1").fadeToggle();
)

这样您就不必检测了,只需切换文本即可。

参考: http://api.jquery.com/fadetoggle/

【讨论】:

以上是关于检测 HTML5 视频是不是正在播放或暂停,并相应地显示或隐藏 Div的主要内容,如果未能解决你的问题,请参考以下文章

获取正在播放的 html5 视频的暂停/突然结束时间

如何使用 Jquery 播放/暂停 Flash 视频(不是 html5 <video>)

HTML5视频标签,javascript检测播放状态?

Html5 视频。暂停 20 秒后重置播放器

暂停 HTML5 视频时显示海报图像或暂停按钮?

html5 播放事件与视频标签中的播放事件