Mar*_*rch 32 javascript video jquery html5
如何使用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>
Run Code Online (Sandbox Code Playgroud)
Bri*_*ell 28
当然,你可以src在source元素上设置属性:
document.querySelector("#myVideoTag > source").src = "http://example.com/new_url.mp4"
Run Code Online (Sandbox Code Playgroud)
或者使用jQuery而不是标准DOM方法:
$("#myVideoTag > source").attr("src", "http://example.com/new_url.mp4"????)?
Run Code Online (Sandbox Code Playgroud)
小智 16
我已经多次面对这个问题,根据以前的经验和挖掘我可以建议这些选项:
是的,只需<video>用新来源重新插入元素.这是直截了当但有效的方法.不要忘记重新初始化事件侦听器.
video.src我在这里看到了很多答案,在stackoverflow上,以及在github上的源代码中.
var video = document.getElementById('#myVideo');
video.src = newSourceURL;
Run Code Online (Sandbox Code Playgroud)
它可以工作,但您无法提供可供选择的浏览器选项.
.load() 视频元素根据文件,您可以更新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>
Run Code Online (Sandbox Code Playgroud)
不过在这里据说有些浏览器存在问题.
我希望将这一切集中在一个地方是有用的.