Видео или аудио тег может иметь атрибут "preload = none".Но это означает, что носитель не загружается предварительно при перезагрузке страницы.При динамическом изменении ресурса носителя, однако, страница не перезагружается, поэтому не работает.Я не уверен, как предотвратить предварительную загрузку в таких случаях:
<html>
<body>
<button onclick="myFunction()" type="button">Change Video</button><br>
<video id="myVideo" controls preload="auto">
<source id="mp4_src" src="mov_bbb.mp4" type="video/mp4">
<source id="ogg_src" src="mov_bbb.ogg" type="video/ogg">
Your browser does not support HTML5 video.
</video>
<script>
var vid = document.getElementById("myVideo");
function myFunction() {
isSupp = vid.canPlayType("video/mp4");
if (isSupp == "") {
vid.src = "movie.ogg";
} else {
vid.src = "movie.mp4";
}
vid.load();
}
</script>
</body>
</html>