Javascript 设置/替换 html5 视频的源 src=""

Javascript setting / replacing source src="" on html5 video

在我的每个来源的 HTML 中,我想使用 javascript 将正确的视频插入匹配的来源,如下所示。

<script type="text/javascript">
var 1_video = '1.mp4';
var 2_video = '1.webm';
var 3_video = '1.ogv';
</script>
<video width="320" height="240" controls="controls">
<!-- MP4 for Safari, IE9, iPhone, iPad, Android, and Windows Phone 7 -->
<source src="" type="video/mp4" />
<!-- WebM/VP8 for Firefox4, Opera, and Chrome -->
<source src="" type="video/webm" />
<!-- Ogg/Vorbis for older Firefox and Opera versions -->
<source src="" type="video/ogg" />
</video>

我发现所有示例都在使用 jquery,但我不想使用 jquery 或任何外部库。

最好的方法是什么。 我会做这样的事情,但我想在不在我的视频和源元素上使用 HTML id="idname" 标签的情况下实现这一点。

document.getElementById('video').src = 1_video;

感谢阅读以及任何可以提供的帮助/指导。

您尝试 select 具有 "video" id 的对象,因此尝试将 id 添加到您的来源:

<video width="320" height="240" controls="controls">
<!-- MP4 for Safari, IE9, iPhone, iPad, Android, and Windows Phone 7 -->
<source src="" id="source-mp4" type="video/mp4" />
<!-- WebM/VP8 for Firefox4, Opera, and Chrome -->
<source src="" id="source-webm" type="video/webm" />
<!-- Ogg/Vorbis for older Firefox and Opera versions -->
<source src="" id="source-ogg" type="video/ogg" />
</video>

document.getElementById('source-mp4').src = 1_video;
document.getElementById('source-webm').src = 2_video;
document.getElementById('source-ogg').src = 2_video;

您可以有一个视频容器,每次选择一个新视频时,您可以在容器内创建一个新元素并使用 removeChild

销毁旧元素
    /*Destroy current element inside the container*/
     container.removeChild(element);

    /*Create new element in the container*/
     var element  = container.createElement("VIDEO");
     element.src = XYZ-video;

如果您为视频提供的 ID 等于 "webVideo" 或其他内容,您可以获得该 ID,然后使用查询选择器定位该 ID 中的源标记。

var videoSource = document.getElementById("webVideo").querySelector("source");
videoSource[0].src = "1_video";

然后使用 videoSource[0] for mp4 videoSource[1] for webm 和 [2] for ogg