2014-11-06 69 views
1

我'不知道我怎么能去改变只有以下两种来源,WEBM的一个,另一个在我的视频标签.MP4:上单击更改某些视频源

HTML:

<video controls="controls" preload="auto" id="video" onclick="this.play();"> 
     <source src="fragmenten/real_schade.mp4" type="video/mp4"> </source> 
     <source src="fragmenten/real_schade.webm" type="video/webm"> </source> 
      Your browser doesn't support the video element. 

    </video> 

JQuery的:

var bvideo = document.getElementById('background'); 

$("#car").on('click', function(){ 
    bvideo.pause(); 
    showPlaceHolder(); 
    showVID(); 
    $("#video").attr("src","fragmenten/real_schade2.mp4"); 
    $('#video').attr("autoplay", "autoplay"); 
}); 

这只能直接插入源入标签,我怎样才能改变两个来源,我与视频标签赋予改变的.mp4和.webm并不会改变这两个来源一个源/插入视频SRC到标签

回答

2

如果要替换所有来源dynamicall不改变文件扩展名,你可以这样做:

$(document).ready(function() { 
    changeVideoTo("fragmenten/real_schade2"); 
}); 

function changeVideoTo(name) { 
    $("#video source").each(function() { 
     var oldSource = $(this).attr("src"); 
     var fileExtension = oldSource.split(".")[1] 
     $(this).attr("src", name + "." + fileExtension); 
    }); 
} 

小提琴:http://jsfiddle.net/beznbxqc/2/

+0

这个作品,谢谢先生! – Gerwin 2014-11-06 12:38:32

+0

实际上,它只能在一定程度上起作用..它取代了我的

+0

您必须在视频元素末尾调用'.load()'。我没有示例视频来向您显示这个... – 2014-11-06 13:02:29

1
$("#video source:nth-of-type(1)").attr('src', videoFile); 
$("#video video")[0].load() 

尝试这种情况:

+1

您应该添加一个解释这个答案。事实上,它出现在“低质量邮件队列”中,并可能被删除。 – 2014-11-06 12:54:44

+0

@ v.k。主席先生,你知道为什么视频在更换视频源后仍然播放旧视频吗? – Gerwin 2014-11-06 13:00:27

1

尝试使用这个代码,以改变第一源:

$("#video source:first-of-type").attr("src","first/source.mp4"); 

并且这改变第二源:

$("#video source:last-of-type").attr("src","first/source.webm"); 

我希望它有效:D