layui官方上传视频时并没直接提供获取视频时长的方法,需要我们间接获得
HTML增加一个<video>标签,因为video标签可以帮我们获取视频时长
<video id="videoattr" width="250" height="100" ></video>
当然,你也可以设置隐藏。
然后JS就可以利用<video>的duration来得到时长。
choose:function(obj){
//预读本地文件示例,不支持ie8
layer.load(2);
obj.preview(function(index, file, result){
var url = URL.createObjectURL(file);//把file转成URL
$('#videoattr').attr('src', url); //视频链接
var timer = setTimeout(function(){
layer.close(layer.index);
$('#add').css("visibility","visible"); //一开始先将确认上传按钮隐藏,得到视频时长后才开放
clearTimeout(timer);
},1000);
});
},
一开始先将确认上传按钮隐藏,防止还没得到视频时长就已经开始上传导致参数错误等问题。
另外,必须设置setTimeout定