js获取视频时长

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//获取视频时长
       if (names.indexOf('mp4') > -1) {
         const reader = new FileReader()
         const rs = reader.readAsArrayBuffer(file.file)
         let blob = null
         reader.onload = (e) => {
           if (typeof e.target.result === 'object') {
             blob = new Blob([e.target.result])
           } else {
             blob = e.target.result
           }
           if (blob == null) return
           const url = URL.createObjectURL(blob)
           const audioElement = new Audio(url)
           let duration
           const fun = (duration) => {
             this.duration = duration
             console.log('视频时长:', this.duration)
           }
           //下面需要注意的是在监听loadedmetadata绑定的事件中对duration直接进行赋值是无效的,需要在fun回调函数中进行赋值
           audioElement.addEventListener('loadedmetadata', function () {
             //音频/视频的元数据已加载时,会发生 loadedmetadata 事件
             duration = audioElement.duration //时长以秒作为单位
             fun(parseFloat(duration).toFixed(1))
           })
         }
       }

  

posted @   212的s  阅读(813)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示