问题遇到的现象和发生背景
Vue获取视频文件的时长
用代码块功能插入代码,请勿粘贴截图
网上搜索出来的结果大多是这个使用 new Audio() 返回HTMLAudioElement ,再获取其时长。
我的解答思路和尝试过的方法
getVideoDuration(file) { // 获取视频时长
console.log(file,'获取视频时长');
return new Promise((resolve) => {
var url = URL.createObjectURL(file);
var audioElement = new Audio(url);
var self = this;
var result;
audioElement.addEventListener("loadedmetadata", function() {
// 视频时长值的获取要等到这个匿名函数执行完毕才产生
result = audioElement.duration; //得到时长为秒,小数,182.36
self.videoDuration = Math.floor(result/60);
console.log(self.videoDuration + " minutes " )
resolve(self.videoDuration)
});
})
},
我想要达到的结果
使用这个方法确实能实现,但是只能获取到mp4格式的视频长度。avi、ts等其他格式获取不到