video.js切换播放内容src
目前系统使用videojs播放视频,有个需求是点击按钮,来回切换两个视频,并且要求
如果视频1播放到1分30秒时,切换到视频2也要从1分30秒开始播放
之前试了使用js切换src内容,检查元素可以看到src内容修改了,但是视频并没有切换播放。
今天使用video.js的api方法实现了切换播放,分享一下,希望能有所帮助。
首先我的video长这样:
<div style="width:100%;height:100%;">
<video id="my_video_1" class="video-js vjs-default-skin fillWidth" controls autoplay width="800px" height="600px" data-setup='{}'>
<source id="sourceVideo" src="默认播放url" type="application/x-mpegURL">
</video>
<c:if test="${key > 1}">
<button type="button" class="btn btn-small" onclick="changeVideo('1')">视频1</button>
<button type="button" class="btn btn-small" onclick="changeVideo('2')">视频2</button>
</c:if>
</div>
这是加了初始化方法
<script type="text/javascript">
var options = {};
var player = videojs('my_video_1', options, function onPlayerReady() {
this.play();
this.on('timeupdate', function() {}
});
this.on('ended', function() {
videojs.log('play over!');
});
</script>
这是我点击事件的方法
function changeVideo(obj){
//获取播放器对象
var player = videojs('my_video_1');
if(obj == '1'){
//获取当前播放器的播放时间
var curtime = player.currentTime();
//设置播放器的src
player.src("url1");
//重新加载播放器
player.load();
//设置播放器从curtime开始播放
player.currentTime(curtime);
}else{
var curtime = player.currentTime();
player.src("url2");
player.load();
player.currentTime(curtime);
}
}
目前还存在一个问题没有解决,我的url如果直接写一个文件地址,则可以正常播放。
如果我把url改成一个controller的访问连接,在controller里面返回文件地址,就无法播放,不清楚什么原因