我有一个项目,我有几个视频,我想动态加载到页面。我的HTML相当简单,只需一个视频标签
<video controls preload width="520" height="350" id="video">
<source src="videos/video0.mp4" type="video/mp4" id="video_source">
</video>
<div id="playlist">
<a href="videos/video1.mp4">Video File Tomorrow</a>
<a href="videos/video2.mp4">Video File Tomorrow</a>
</div>
我只使用MP4文件,因为这个项目只需要在Safari中运行。我尝试了2个JS解决方案,两者似乎都产生了单独的问题
解决方案1
$("#playlist a").click(function(){
var video_source_link=$(this).attr("href");
document.getElementById("video_source").setAttribute("src",video_source_link);
document.getElementById("video").load();
document.getElementById("video").play();
return false;
});
在此版本中,JS更新源标记的src属性,但不加载视频。
解决方案2
$("#playlist a").click(function(){
var video_source_link=$(this).attr("href");
document.getElementById("video_source").setAttribute("src",video_source_link);
document.getElementById("video_source").load();
document.getElementById("video_source").play();
return false;
});
在此版本中,视频加载到一个空白窗口,当我单击后退按钮时,Safari崩溃并出现以下错误WebKit2WebProcess.exe遇到问题并需要关闭
答案 0 :(得分:0)
尝试更改视频代码而不是内部子源代码:
$("#video")[0].src = $(this).attr("href");
答案 1 :(得分:0)
首先,检查一下video_source_link
。如果您video_source_link
是正确的,我建议您在灵魂插播中删除此行document.getElementById("video").play();
。或者如何删除视频代码中的controls preload
?以下代码对我有用。
HTML
<video width="320" height="240" autoplay>
<source id="video_path" src="" type="video/mp4">
</video>
JS
$('#video_path').attr('src', 'path');
$('video').load();