当前位置: 代码网 > it编程>编程语言>Javascript > JS如何通过视频链接获取视频时长

JS如何通过视频链接获取视频时长

2024年07月02日 Javascript 我要评论
js通过视频链接获取视频时长这个函数用提供的url创建一个新的video元素,并在loadedmetadata事件被触发时解析一个带有视频持续时间的promise。它还处理可能发生的任何错误。注意,v

js通过视频链接获取视频时长

这个函数用提供的url创建一个新的video元素,并在loadedmetadata事件被触发时解析一个带有视频持续时间的promise。它还处理可能发生的任何错误。

注意,video元素的duration属性是以秒为单位的,因此如果需要,您可能希望将其转换为更易于阅读的格式。

function getvideoduration(url) {
  return new promise((resolve, reject) => {
    const video = document.createelement('video');
    video.src = url;
    video.addeventlistener('loadedmetadata', () => {
      resolve(video.duration);
      video.remove();
    });
    video.addeventlistener('error', () => {
      resolve(null);
      video.remove();
    });
    document.body.appendchild(video);
  });
}
// example usage
const videourl = 'https://www.example.com/video.mp4';
getvideoduration(videourl)
  .then((duration) => {
    if (duration) {
      console.log('video duration:', duration);
    } else {
      console.log('failed to get video duration');
    }
  });

js--获取上传视频文件的时长(秒)

代码基于ng-zorro组件,适当参考哈:

 beforevideoupload = (file: file) => {
    return new observable((observer: observer<boolean>) => {
      // 判断文件类型
      const isvideofile = /video\/(wmv|asf|asx|rm|rmvb|mpg|mpeg|mpe|3gp|mov|mp4|m4v|avi|dat|mkv|flv|vob)$/.test(file.type);
      console.log('是否为视频类型:', isvideofile);
      // 获取视频时长
      const url = url.createobjecturl(file);
      const audioelement = new audio(url);
      let videoseconds;
      audioelement.addeventlistener('loadedmetadata', (_event) => {
        videoseconds = math.floor(audioelement.duration);
        console.log('视频时长为', videoseconds);
        observer.next(true);
        observer.complete();
      });
    });
  };

到此这篇关于js如何通过视频链接获取视频时长的文章就介绍到这了,更多相关js获取视频时长内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com