使用JQuery播放/暂停HTML5视频

使用JQuery播放/暂停HTML5视频,jquery,css,html,html5-video,Jquery,Css,Html,Html5 Video,我正在尝试使用JQuery控制HTML5视频。我在一个选项卡式界面中有两个剪辑,总共有六个选项卡,其他的只有图像。我试图使视频剪辑播放时,他们的标签被点击,然后停止时,任何其他被点击 这必须是一件简单的事情,但我似乎无法让它工作,我用来播放视频的代码是: $('#playMovie1').click(function(){ $('#movie1').play(); }); 我已经读到视频元素需要暴露在一个函数中才能控制它,但找不到一个例子。我可以使用JS使其正常工作: docu

我正在尝试使用JQuery控制HTML5视频。我在一个选项卡式界面中有两个剪辑,总共有六个选项卡,其他的只有图像。我试图使视频剪辑播放时,他们的标签被点击,然后停止时,任何其他被点击

这必须是一件简单的事情,但我似乎无法让它工作,我用来播放视频的代码是:

$('#playMovie1').click(function(){
  $('#movie1').play();
      });
我已经读到视频元素需要暴露在一个函数中才能控制它,但找不到一个例子。我可以使用JS使其正常工作:

document.getElementById('movie1').play();

任何建议都很好。谢谢

为什么需要使用jQuery?您提出的解决方案是有效的,并且可能比构建jQuery对象更快

document.getElementById('videoId').play();

您的解决方案显示了这里的问题--
play
不是jQuery函数,而是DOM元素的函数。因此,您需要在DOM元素上调用它。您给出了一个如何使用本机DOM函数实现这一点的示例。如果您希望这样做以适应现有的jQuery选择,那么jQuery等价物是
$('#videoId').get(0.play()
。(从jQuery选择中获取本机DOM元素。)

使用此。。
$('video1').attr({'autoplay':'true')

我使用FancyBox和jQuery嵌入视频。给它一个身份证

也许不是最好的解决方案可以以不同的方式切换播放/暂停-但对我来说很容易,而且很有效!:)

`


//使用空格键播放暂停
$(文件)。按键(功能(e){
theVideo=document.getElementById('current\u video\u playing')。值
如果(e.which==32){
if(document.getElementById(“当前视频状态”)。值==“播放”){
document.getElementById(theVideo.pause();
document.getElementById('current_video_status')。值='paused'
}否则{
document.getElementById('current_video_status')。值='playing'
document.getElementById(theVideo.play();
}
}
});
`

对于暂停多个视频,我发现这非常有效:

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

这可以放入一个非常方便的点击功能。

作为lonesomeday答案的扩展,您也可以使用

$('#playMovie1').click(function(){
    $('#movie1')[0].play();
});

请注意,没有调用get()或eq()jQuery函数。用于调用play()函数的DOM数组。这是一条要记住的捷径。

我就是这样做到的:

jQuery( document ).ready(function($) {
    $('.myHTMLvideo').click(function() {
        this.paused ? this.play() : this.pause();
    });
});
我所有的HTML5标签都有一个类“myHTMLvideo”

你可以这样做

$('video').trigger('play');
$('video').trigger('pause');

请注意,在尝试调用之前,请确保检查浏览器是否支持视频功能:

if($('#movie1')[0].play)
    $('#movie1')[0].play();

这将防止在不支持视频标记的浏览器上出现JavaScript错误。

我还使其工作如下:

$(window).scroll(function() {
    if($(window).scrollTop() > 0)
        document.querySelector('#video').pause();
    else
        document.querySelector('#video').play();
});
我喜欢这个:

$('video').click(function(){
    this[this.paused ? 'play' : 'pause']();
});

希望能有所帮助。

@loneSomeday很好地解释了这一点,这里有一个解决方案,它可能会让您了解如何实现播放/暂停功能


由JQuery使用选择器

$("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();


$(文档).ready(函数(){
document.getElementById('vid').play();});

这是我们可以使用的简单方法

在jquery按钮上单击函数

$("#button").click(function(event){
    $('video').trigger('play');
    $('video').trigger('pause');
}
谢谢

在此处输入代码
选择文件
播放视频
暂停视频
(函数localFileVideoPlayer(){
var playSelectedFile=函数(事件){
var file=this.files[0]
var type=file.type
var videoNode=document.querySelector('video'))
var fileURL=URL.createObjectURL(文件)
videoNode.src=文件URL
}
var inputNode=document.querySelector('input')
inputNode.addEventListener('change',playSelectedFile,false)
})()
函数playVid(){
基尔坦;
} 
函数pauseVid(){
基尔坦暂停();
} 
var vid=document.getElementById(“myVideo”);
函数playVid(){
视频播放();
} 
函数pauseVid(){
参阅暂停();
}

您的浏览器不支持HTML5视频。
播放视频

暂停视频
在这里@ToolmakerSteve找到了答案,但必须以这种方式进行微调: 暂停

$('video').each(function(index){
    $(this).get(0).pause();
});
还是玩所有的

$('video').each(function(index){
    $(this).get(0).play();
});

如果您坚持使用jQuery实现,请查看lonesomeday的解决方案(也可以解释为什么您不能在jQuery对象上调用
play
)。我想我会在其他jQuery中使用该代码,并且可能会这样做,但就目前情况而言,我只是使用该行,所以我想这可能是用我的代码完成的。。。我也不确定这是否是一个很好的混合练习。不管怎样,谢谢你的建议。如果你已经为
movie1
通过
$('movie1')
为其他jQuery操作实例化了jQuery对象,那么就可以了;然而,如果你只是在这一个地方做,你会发现一些性能损失。它可能不够引人注目,但我喜欢进行大量优化。@sudowork-真的吗?您在讨论开始播放视频时的性能损失?如果你的设备足够快,可以播放视频,那么它就足够快,可以在用户不注意的情况下执行一系列jQuery操作。这太好了,工作非常完美,谢谢。更好地理解DOM也很好。使用JQuery以这种方式控制视频似乎会在iPhone上造成播放问题。我在一个选项卡中有视频元素,jquery显示了这一点,但是单击视频开始箭头并不会开始剪辑。当我删除$('#videoId').get(0.play()行时,没有问题。最好的解决办法是什么?我在想,我可以用iOS的一个条件语句删除js-视频不会自动启动iOS设备,所以我很乐意这样做-或者有更简单的解决方案吗?非常感谢您的帮助。我怎样才能暂停页面上的所有元素?@russellsayshi-不,这只会播放一个视频;prismspecs要求提供所有视频。正确语法:
$('video').each(this.play())全部播放<代码>$('video')。每个(this.pause())暂停所有<代码>每个()$("#button").click(function(event){
    $('video').trigger('play');
    $('video').trigger('pause');
}
    enter code here
<form class="md-form" action="#">
  <div class="file-field">
    <div class="btn btn-primary btn-sm float-left">
      <span>Choose files</span>
      <input type="file" multiple>
    </div>
    <div class="file-path-wrapper">
      <input class="file-path validate" type="text" placeholder="Upload one or more files">
    </div>
  </div>
</form>

<video  width="320" height="240" id="keerthan"></video>

<button onclick="playVid()" type="button">Play Video</button>
<button onclick="pauseVid()" type="button">Pause Video</button> 
<script>
    (function localFileVideoPlayer() {

  var playSelectedFile = function (event) {
    var file = this.files[0]
    var type = file.type
    var videoNode = document.querySelector('video')




    var fileURL = URL.createObjectURL(file)
    videoNode.src = fileURL
  }
  var inputNode = document.querySelector('input')
  inputNode.addEventListener('change', playSelectedFile, false)
})()
function playVid() { 
  keerthan.play(); 
} 

function pauseVid() { 
  keerthan.pause(); 
} 

</script>
$('video').each(function(index){
    $(this).get(0).pause();
});
$('video').each(function(index){
    $(this).get(0).play();
});