2013-02-27 53 views
1

您好我有一个视频的一些非常基本的html:JQuery的自动播放视频

<div class="video_holder"> 
     <video id="video_player" controls="controls" poster=""> 
     <source id="video_mp4" src="" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' /> 
     </video> 
</div> 
在我的js

function playFile(e) { 
     ... 
     e.preventDefault() 
     var selected = $(this); 
     var path = selected.attr('href'); 
     $("#video_mp4").attr('src', path); 
     // how do I get this thing to auto-play????? 
    }; 

这伟大工程注入了正确的路径进入src属性,和我已经验证了路径是正确和可访问的。不过,我无法让视频在加载时自动播放。

我曾尝试:

document.getElementById("video_player").play(); 

$('#video_player').trigger('play'); 

$('#video_player').play(); 

我怎样才能触发视频自动播放?

任何帮助非常感谢。

回答

4

您可以使用:

$("#video_player")[0].play(); 

或者:

$("#video_player")[0].autoplay = true; 

或者:

document.getElementById("video_player").setAttribute('autoplay', true); 

无论适合你。使用$('#video_player').play();您引用了jQuery中不存在的方法play,您应该引用$("#video_player")发现的对象。

要更改JS视频的src,你只是单纯的需要类似的东西:

function playFile() { 
    var video = $("#video_player"); 
    video[0].src = "http://www.yoursrc.com/video_new.mp4"; 
    video[0].load(); 
    video[0].play(); 
}; 
+0

其实这些方法都不适用于我。我的html有什么问题吗?链接绝对有效,如果我硬编码。 – 2013-02-28 00:50:59

+0

看起来好像视频没有更新,因为如果我硬编码链接,我可以用jQuery触发播放,但它始终播放硬编码视频,即使src'元素已更新。 – 2013-02-28 01:35:05

+0

@DarwinTech,我编辑了我的答案。如果您在JS中遇到问题,那么调试代码的最佳方式是在代码中使用'console.log()'。这会在你的浏览器的控制台中输出你想要的一切。例如,在我上面的代码中,您可以调试像'console.log(video);'这样的'video'变量,并且您将在控制台中看到整个对象及其方法和参数。这真是非常棒的工具。如果您对该工具/代码有任何问题,请随时提问。 – sobol6803 2013-02-28 14:12:47

0

请检查这个简单的一步,这很适合我

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

感谢