我如何为我的javascript代码添加更多视频源?

时间:2012-12-03 21:25:58

标签: javascript html5 video html5-video

  

我有5个不同的视频,我希望他们添加更多的一个来源   对他们来说,他们可以在更多的浏览器中玩,但我不知道如何   做到这一点,你可以做到这一点。这是我的javascript的样子   这是非常重复的

function addVideo1() {
  var changeStuff = document.getElementById("myVideo");
    changeStuff.src = "video/demoreel.mp4";

}

function addVideo2() {
 var changeStuff = document.getElementById("myVideo");
    changeStuff.src = "video/video1.mp4";
}

function addVideo3() {
    var changeStuff = document.getElementById("myVideo");
    changeStuff.src = "video/video2.mp4";
}

function addVideo4() {
    var changeStuff = document.getElementById("myVideo");
    changeStuff.src = "video/video3.mp4";

}

function addVideo5() {
    var changeStuff = document.getElementById("myVideo");
    changeStuff.src = "video/video4.mp4";
}

3 个答案:

答案 0 :(得分:1)

要创建多个来源,您需要在视频代码中包含源元素,而不是使用视频的源属性。使用:

sourceElement=document.createElement("source")
sourceElement.source=someSource
sourceElement.type=someType
changeStuff.appendChild(sourceElement)

答案 1 :(得分:1)

试试这个jsFiddle,它应该做你想要的。

ARGH!我在jQuery中做到了,抱歉。我没有注意。好的,我回去用普通的'javascript。

做了

<强> HTML

<div id="video"><video></video></div>
<ul>
    <li><a href="#" data-video="video1.mp4">Video 1</a></li>
    <li><a href="#" data-video="video2.mp4">Video 2</a></li>
    <li><a href="#" data-video="video3.mp4">Video 3</a></li>
</ul>

<强> JS

var elems = document.getElementsByTagName("a");
for (i = 0; i < elems.length; i ++) {
    elems[i].addEventListener("click", function () {
        var video = this.dataset["video"];
        var source = document.createElement("source");
        source.src = video;
        var container = document.getElementById("video");
        var v = container.firstChild;
        v.innerHTML = "";
        v.appendChild(source);
    });
}

<强> CSS

没有必要,只是为了“美化”它

html { padding: 10px; }
#container { width: 450px; }
#video { width: 320px; height: 240px; border: 3px solid #CCC; }
ul { margin: 10px 0; width: 320px; padding: 0; }
ul li { display: inline; margin: 0 10px 0 0; padding: 0;  }

答案 2 :(得分:0)

您可以尝试这样的事情(未经测试,在手机上输入)。

function addSource(id,type,path) {

    var vid=document.getElementById(id);
    vid.innerHTML+='<source src="'+path+'" type="'+type+'">';
}