javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > js获取视频时长

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

作者:Eli-sun

这篇文章主要介绍了JS如何通过视频链接获取视频时长,这个函数用提供的URL创建一个新的Video元素,并在loadedmetadata事件被触发时解析一个带有视频持续时间的Promise,感兴趣的朋友跟随小编一起看看吧

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获取视频时长内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文