本来开心的划水摸鱼,然后一个后端的卧龙过来跟我说上传需要把视频时长传递他,我当时第一反应就是你能获取吗? 然后就被告知不好获取,好吧那就只能自己写咯,整体就是在页面中创建一个video 的dom 节点,然后把上传完成的视频后端给的地址赋值给这个节点,在使用loadedmetadata这个方法在视频加载完成后获取video属性中的duration属性拿到时长,单位是秒
开始的我傻傻的写了load方法结果监听不到视频加载完成 干了,还好有百度,当然也是可以吧视频文件转成临时路径 用URL.createObjectURL() 转成临时文件路径 如果不需熟悉可以MDN:URL.createObjectURL() - Web API 接口参考 | MDN
const videoTime = ref(null);
const getVideoDuration = url => {
let videoElement = document.createElement('video');
console.log(videoElement);
videoElement.src = url;
videoElement.addEventListener('loadedmetadata', function () {
// 视频时长值的获取要等到这个匿名函数执行完毕才产生
videoTime.value = videoElement.duration; //得到时长为秒,小数,182.36
});
};