HTML5视频停止onClose

HWD*_*HWD 17 jquery html5 html5-video

我正在使用jQuery工具进行叠加.在叠加层内我有一个HTML5视频.但是,当我关闭叠加层时,视频会继续播放.我知道如何在关闭叠加层时让视频停止播放?这是我的代码:

$("img[rel]").overlay({ onClose: function() { <stop the video somehow> }, mask: { color: '#000', opacity: 0.7 }});
Run Code Online (Sandbox Code Playgroud)

我试过用

$('video').pause();
Run Code Online (Sandbox Code Playgroud)

但这也暂停了叠加层.

Ulr*_*old 27

如果你想阻止页面中的每个电影标签播放,这个小小的jQuery片段将帮助你:

$("video").each(function () { this.pause() });
Run Code Online (Sandbox Code Playgroud)


小智 11

用不同的浏览器启动视频

适用于Opera 12

window.navigator.getUserMedia(param, function(stream) {
                            video.src =window.URL.createObjectURL(stream);
                        }, videoError );
Run Code Online (Sandbox Code Playgroud)

适用于Firefox Nightly 18.0

window.navigator.mozGetUserMedia(param, function(stream) {
                            video.mozSrcObject = stream;
                        }, videoError );
Run Code Online (Sandbox Code Playgroud)

对于Chrome 22

window.navigator.webkitGetUserMedia(param, function(stream) {
                            video.src =window.webkitURL.createObjectURL(stream);
                        },  videoError );
Run Code Online (Sandbox Code Playgroud)

使用不同的浏览器停止视频

适用于Opera 12

video.pause();
video.src=null;
Run Code Online (Sandbox Code Playgroud)

适用于Firefox Nightly 18.0

video.pause();
video.mozSrcObject=null;
Run Code Online (Sandbox Code Playgroud)

对于Chrome 22

video.pause();
video.src="";
Run Code Online (Sandbox Code Playgroud)


小智 9

以下适用于我:

$('video')[0].pause();
Run Code Online (Sandbox Code Playgroud)


Myr*_*yra 8

问题可能$("video")在于您选择的jquery选择器 不是选择器

正确的选择器可能会为视频标记添加一个id元素,即 假设您的视频元素如下所示:

<video id="vid1" width="480" height="267" oster="example.jpg" durationHint="33"> 
    <source src="video1.ogv" /> 
    <source src="video2.ogv" /> 
</video> 
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过选择它$("#vid1")hash符号(#),在jQuery的id选择.如果视频元素在功能中公开,那么您可以访问HtmlVideoElement(HtmlMediaElement).这个元素可以控制视频元素,在您的情况下,您可以使用pause()视频元素的方法.

在此处查看VideoElement的参考.
同时检查是否有后备参考这里.

  • ```$("video")```*是一个选择器,但是你必须使用```$("video")[0]``来得到第一个匹配,比如:```$ ( "视频")[0] .pause()``` (24认同)
  • 如果您可以拥有N个视频,则使用ID会很烦人。 (2认同)

小智 8

有人已经有了答案.

$('video')将返回一系列视频项.它完全是一个有效的seletor!

所以

$("video").each(function () { this.pause() });
Run Code Online (Sandbox Code Playgroud)

将工作.