如何使用 JS 更改视频的来源?
<video id="myVideoTag" width="670" height="377" autoplay="true" controls="controls">
<source src="http://www.test.com/test.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
</video>
如何使用 JS 更改视频的来源?
<video id="myVideoTag" width="670" height="377" autoplay="true" controls="controls">
<source src="http://www.test.com/test.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
</video>
当然,
您可以src在source元素上设置属性:
document.querySelector("#myVideoTag > source").src = "http://example.com/new_url.mp4"
或者使用 jQuery 而不是标准的 DOM 方法:
$("#myVideoTag > source").attr("src", "http://example.com/new_url.mp4")
然后你需要调用load视频元素上的方法:
videoElement.load()
我已经多次遇到这个问题,根据以前的经验和挖掘,我可以建议以下选项:
是的,只需<video>使用新来源重新插入元素。这是简单但有效的方法。不要忘记重新初始化事件侦听器。
video.src我在这里的答案、stackoverflow 以及 github 上的源代码中看到了很多。
var video = document.getElementById('#myVideo');
video.src = newSourceURL;
它有效,但您无法提供可供选择的浏览器选项。
.load() 视频元素根据文档,您可以更新's标签的src属性,然后调用更改生效:<video><source>.load()
<video id="myVideo">
<source src="video.mp4" type="video/mp4" />
<source src="video.ogg" type="video/ogg" />
</video>
<script>
var video = document.getElementById('myVideo');
var sources = video.getElementsByTagName('source');
sources[0].src = anotherMp4URL;
sources[1].src = anotherOggURL;
video.load();
</script>
不过这里据说某些浏览器存在问题。
我希望将这一切集中在一个地方会有用。
这是工作
<video id="videoplayer1" width="240" height="160" controls>
<source id="video_res_1" src="" type="video/ogg">
</video>
并在 javascript 中
document.getElementById("video_res_1").src = "my video url.ogv";
document.getElementById("videoplayer1").load();
关键是重新加载视频播放器的 .load() 函数。