js 根据音频/视频文件获取音频/视频时长

    getDuration(file) {
            let url = this.getSrc(file);
            let audioElement = new Audio(url);
            audioElement.addEventListener("loadedmetadata", () => {
                var time = audioElement.duration;
                //分钟
                var minute = time / 60;
                var minutes = parseInt(minute);
                if (minutes < 10) {
                    minutes = "0" + minutes;
                }
                //秒
                var second = time % 60;
                var seconds = Math.floor(second);
                if (seconds < 10) {
                    seconds = "0" + seconds;
                }
                file.duration = minutes + ":" + seconds;
                this.$set(file, file)
            });
        },
 
只有Audio对象,没有Video对象,用Audio也可以获取video文件的时长

 

 

 

let u = navigator.userAgent;
        let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //g
        let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
        if (isAndroid) {
            audio.oncanplay = () => {
                duration.value = Math.ceil(audio.duration);
                play();
            };
        }
        if (isIOS) {
            audio.load();
            audio.onloadedmetadata= function() {
                duration.value = Math.ceil(audio.duration);
                play();
            };
        }

 

 

 

posted @   郭大蛋子  阅读(1645)  评论(1编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示