var str = '${vedioStr}' //所要播放视频的路径组
var strList = str.split("X") //要循序播放的路径组字符串转换成路径数组
var i=0
var len = strList.length
if( strList[i] != null &&strList[i]!='' &&strList[i] !='null'){
$("#XX").find("OBJECT").attr("filename", strList[i])//设置视频路径为第一个路径组路径
}
window.setInterval(function(){ //每过0.5秒监控一下视频是否正在播放,如果没在播放则顺序播放下一个视频
if($("#XX").find("OBJECT").attr("playState")==0){//判断视频的播放状态不同player状态不同
i++//处理播放顺序和for循环处理差不错
if(i==len){
i=0
}
if( strList[i] != null &&strList[i]!='' &&strList[i] !='null'){
$("#XX").find("OBJECT").attr("filename", strList[i]) //如果当前播放完毕则播放下一个
}
}
}, 500) //每个0.5秒监控一下
}
给每一段视频一个不显示的video标签,其preload属性设置为metadata。这样的话不会加载整个视频但是能获得每个视频的长度。这样的话通过监听那几个标签的durationchange事件,就知道总时间了。
然后无非就是做一个可以拖动的滚动条;拖动到某个部位之后,算一下处于那段视频中间;把那段视频对应的video显示出来,并把currentTime设置到相应的时间,然后play()。
播放时通过监听timeupdate事件来更新进度条的位置。通过监听ended事件来获知一段视频已经播放结束,应该加载下一段。