需求:有时候我们需要后端保存视频播放时长
上传之前的回调函数,不同ui框架具体查看api
//上传之前回调
uploadBefore(file, done, loading, column) {
console.log(file, column)
//如果你想修改file文件,由于上传的file是只读文件,必须复制新的file才可以修改名字,完后赋值到done函数里,如果不修改的话直接写done()即可
//var newFile = new File([file], '1234', { type: file.type })
//上传之前对数据做处理
this.getTimes(file)
//继续上传回调(注意这里前端ui框架用的是avue,其他可能不太一样)
done(file)
},
获取播放时长函数
getTimes(file) {
//获取时长
var content = file
var url = URL.createObjectURL(content)
//经测试,发现audio也可获取视频的时长
var audioElement = new Audio(url)
audioElement.addEventListener('loadedmetadata', function() {
this.audioDuration = parseInt(audioElement.duration)
if (file.type == 'video/mp4') {
alert('视频')
//在这里可以将取到的时长复制给实体对象传到后台即可
}
if (file.type == 'audio/mp3') {
alert('mp3')
}
})
}