微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何避免在 Angular 中上传大视频?

如何解决如何避免在 Angular 中上传大视频?

我有一个 Angular 应用程序,可让您上传图像和视频。但是,我想避免上传超过 30 秒的视频。我的问题是...考虑以下 StackBlitz 如何防止加载时长超过 30 秒的视频?而不是在加载和显示删除它们?是否可以使用 Angular 实现这一目标?

非常感谢!

解决方法

是的,有可能

这个想法是创建一个对象 url,并将其加载到视频元素中,这允许在将其上传到服务器之前获取视频的属性:

模板:

<video #vid controls width="500px" id="vid" style="display:none"></video>

组件:

@ViewChild("vid") ele: any;
onSelectFile(event) {
  const files = event.target.files;
  if (files) {
    for (const file of files) {
      const objectUrl = URL.createObjectURL(file);
      this.ele.nativeElement.src = objectUrl;
      const reader = new FileReader();
      reader.onload = (e: any) => {
        if (this.ele.nativeElement.duration > 30) {
            alert("movie is too long!");
        }
        this.mydata.push({
            url: e.target.result,type: "video"
        });
      }
    };
    reader.readAsDataURL(file);
  }
}

这是一个working stackblitz

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