jQuery使用新源注入视频元素

时间:2011-08-23 13:11:00

标签: jquery video

我正在尝试使用Chrome(我只有webm媒体资源)点击相应的链接,将webm格式的视频替换为另一个。

我成功地将新源放在src属性中,接着使用load()和play()方法,但视频无法启动。当我手动将相同的URL放在src中时,效果很好。

这是HTML的一部分:

<figure>
<video id="frag" autoplay controls>
<source src="" type="video/webm">
</video>
</figure>
<p>
<a href="#article3" class="game" rel="http://ninsuna.elis.ugent.be/Media/Showcase/Tennis/2009_FROpen_F_Federer-Soderling.webm?t=0.0,270.72">Game 1</a>
</p>
<p>
<a href="#article3" class="game" rel="http://ninsuna.elis.ugent.be/Media/Showcase/Tennis/2009_FROpen_F_Federer-Soderling.webm?t=317.04,379.88">Game 2</a>
</p>
...

和脚本:

setTimeout(function() {
$(".game").click(function() {
var videoUrl = $(this).attr("rel");
$('#frag source').attr('src', videoUrl);
$('#frag').load();
$('#frag').play();
});
}, 1000);

(由于某种原因我必须使用超时,文件加载不起作用,因为链接列表是动态生成的)

您可以在这里查看更多内容:link to my web

1 个答案:

答案 0 :(得分:2)

您在play对象上调用jQuery方法,该方法无效。您应该使用get[0]来获取HTMLVideo元素,然后在其上调用play方法。同样适用于load方法。试试这个

$(function() {
  $(".game").click(function() {
     var videoUrl = $(this).attr("rel");
     $('#frag source').attr('src', videoUrl);
     $('#frag')[0].load();
     $('#frag')[0].play();
  });
});