使用JQuery播放/暂停HTML 5video
我正在尝试使用JQuery控制HTML5video。 我在标签界面中有两个剪辑,总共有六个标签,其他标签只有图像。 我试图让video剪辑在他们的标签被点击时播放,然后当其他人被点击时停止。
这一定是一件简单的事情,但我似乎无法得到它的工作,我用来播放video的代码是:
$('#playMovie1').click(function(){ $('#movie1').play(); });
我已经读过video元素需要被暴露在一个函数中,以便能够控制它,但无法find一个例子。 我能够使用JS工作:
document.getElementById('movie1').play();
任何build议将是伟大的。 谢谢
你的解决scheme在这里显示的问题 – play
不是一个jQuery函数,而是一个DOM元素的函数。 因此,您需要在DOM元素上调用它。 你举一个如何使用本地DOMfunction来做这个例子。 jQuery的等价物 – 如果你想这样做以适应现有的jQueryselect – 将是$('#videoId').get(0).play()
。 ( get
jQueryselect中的本地DOM元素。)
这是我设法使它工作的方式:
jQuery( document ).ready(function($) { $('.myHTMLvideo').click(function() { this.paused ? this.play() : this.pause(); }); });
我所有的HTML5标签都有“myHTMLvideo”类
为什么你需要使用jQuery? 你提出的解决scheme的工作,它可能比构build一个jQuery对象更快。
document.getElementById('videoId').play();
暂停多个video,我发现这很好地工作:
$("video").each(function(){ $(this).get(0).pause(); });
这可以放入一个非常方便的点击function。
你可以做
$('video').trigger('play'); $('video').trigger('pause');
作为寂寞日子答案的延伸,你也可以使用
$('#playMovie1').click(function(){ $('#movie1')[0].play(); });
请注意,没有调用get()或eq()jQuery函数。 用来调用play()函数的DOM数组。 记住这是一条捷径。
我喜欢这一个:
$('video').click(function(){ this[this.paused ? 'play' : 'pause'](); });
希望能帮助到你。
我使用FancyBox和jQuery来embeddedvideo。 给它一个ID。
也许不是最好的解决scheme可以切换播放/暂停不同 – 但容易对我和它的作品! 🙂
在里面
`
<input type="hidden" id="current_video_playing"> <input type="hidden" id="current_video_status" value="playing"> <video id="video-1523" autobuffer="false" src="movie.mp4"></video> <script> // Play Pause with spacebar $(document).keypress(function(e) { theVideo = document.getElementById('current_video_playing').value if (e.which == 32) { if (document.getElementById('current_video_status').value == 'playing') { document.getElementById(theVideo).pause(); document.getElementById('current_video_status').value = 'paused' } else { document.getElementById('current_video_status').value = 'playing' document.getElementById(theVideo).play(); } } }); </script>`
请注意,在尝试调用浏览器之前,请确保您检查浏览器是否支持videofunction:
if($('#movie1')[0].play) $('#movie1')[0].play();
这将防止不支持video标签的浏览器发生JavaScript错误。
使用这个.. $('#video1').attr({'autoplay':'true'});
我也做了这样的工作:
$(window).scroll(function() { if($(window).scrollTop() > 0) document.querySelector('#video').pause(); else document.querySelector('#video').play(); });
@lone有一天,我们对它进行了精美的解释,这里有一个解决scheme可以让你知道如何实现播放/暂停function
单击播放/暂停video
通过JQuery使用select器
$("video_selector").trigger('play'); $("video_selector").trigger('pause'); $("div.video:first").trigger('play');$("div.video:first").trigger('pause'); $("#video_ID").trigger('play');$("#video_ID").trigger('pause');
通过Javascript使用ID
video_ID.play(); video_ID.pause();
要么
document.getElementById('video_ID').play(); document.getElementById('video_ID').pause();
<video style="min-width: 100%; min-height: 100%; " id="vid" width="auto" height="auto" controls autoplay="true" loop="loop" preload="auto" muted="muted"> <source src="video/sample.mp4" type="video/mp4"> <source src="video/sample.ogg" type="video/ogg"> </video> <script> $(document).ready(function(){ document.getElementById('vid').play(); }); </script>