19

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

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

我尝试使用

$('video').pause();

但这也暂停了覆盖。

4

9 回答 9

27

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

$("video").each(function () { this.pause() });
于 2012-06-22T10:10:45.787 回答
13

使用不同的浏览器启动视频

歌剧 12

window.navigator.getUserMedia(param, function(stream) {
                            video.src =window.URL.createObjectURL(stream);
                        }, videoError );

对于 Firefox Nightly 18.0

window.navigator.mozGetUserMedia(param, function(stream) {
                            video.mozSrcObject = stream;
                        }, videoError );

适用于 Chrome 22

window.navigator.webkitGetUserMedia(param, function(stream) {
                            video.src =window.webkitURL.createObjectURL(stream);
                        },  videoError );

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

歌剧 12

video.pause();
video.src=null;

对于 Firefox Nightly 18.0

video.pause();
video.mozSrcObject=null;

适用于 Chrome 22

video.pause();
video.src="";
于 2012-10-08T18:12:04.647 回答
11

以下对我有用:

$('video')[0].pause();
于 2011-06-30T23:20:09.137 回答
9

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

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

<video id="vid1" width="480" height="267" oster="example.jpg" durationHint="33"> 
    <source src="video1.ogv" /> 
    <source src="video2.ogv" /> 
</video> 

然后你可以通过$("#vid1")井号(#),jquery中的id选择器来选择它。如果视频元素在函数中公开,则您可以访问HtmlVideoElement (HtmlMediaElement)。此元素可以控制视频元素,在您的情况下,您可以pause()对视频元素使用方法。

在此处检查 VideoElement 的参考。
还要检查这里是否有后备参考

于 2010-05-21T08:50:45.450 回答
9

有人已经有了答案。

$('video') 将返回一个视频项目数组。它完全是一个有效的选择器!

所以

$("video").each(function () { this.pause() });

将工作。

于 2013-09-26T11:27:42.243 回答
3

对于 JQM+PhoneGap 应用程序,以下内容对我有用。

以下是我必须去让它工作的最低限度。当用户按下后退按钮时,由于在产生 ajax 请求时缓冲,我实际上遇到了停顿。在 Chrome 和 Android 浏览器中暂停视频使其保持缓冲。非异步 ajax 请求会卡住等待缓冲完成,而它永远不会。

将此绑定到 beforepagehide 事件修复了它。

 $("#SOME_JQM_PAGE").live("pagebeforehide", function(event)
 {
           $("video").each(function () 
           { 
               logger.debug("PAUSE VIDEO");
               this.pause();
               this.src = "";
           });
 });

这将清除页面上的每个视频标签。

重要的部分是 this.src = "";

于 2012-06-28T18:54:21.163 回答
2

我对 Firefox 的体验是,将 ' id' 属性添加到视频元素会导致 Firefox 完全崩溃……就像要求您提交错误报告一样。删除id元素,它工作正常。我不确定这是否适用于每个人,但我想我会分享我的经验以防万一。

于 2010-07-28T05:15:48.813 回答
1

要节省数小时的编码时间,请使用已针对嵌入式视频 iframe 优化的 jquery 插件。

我花了几天时间尝试将 Vimeo 的 moogaloop API 与 jquery 工具集成,但没有成功。请参阅此列表以获取一些更简单的选项。

于 2011-04-13T14:34:18.690 回答
0

尝试这个:

if ($.browser.msie)
{
   // Some other solution as applies to whatever IE compatible video player used.
}
else
{
   $('video')[0].pause();
}

但是,考虑到 $.browser 已被弃用,但我还没有找到类似的解决方案。

于 2012-02-09T01:40:25.897 回答