Getting "Uncaught (in promise): TypeError: Object(...) is not a function" Error from Ionic-native VideoEditor Plugin

Getting "Uncaught (in promise): TypeError: Object(...) is not a function" Error from Ionic-native VideoEditor Plugin

我正在开发一个离子应用程序,用户可以在其中录制新视频。然后我想将视频分成帧并将帧发送到服务器。我正在使用 ionic-native VideoEditor 插件中的 createThumbnail 函数。但是当我尝试调用 createThumbnail 函数时,它会抛出

ERROR Error: Uncaught (in promise): TypeError: Object(...) is not a function

这是我的源代码。

HTML代码

<ion-content padding>
  <button ion-button full (click)="captureVideo()">Capture video</button>
  <br/>
  <ion-list>
    <ion-item *ngFor="let file of mediaFiles" tappable (click)="playFile(file)" text-wrap>
      {{file.name}}
      <p>{{file.size/1000/1000 | number}} MB</p>
    </ion-item>
  </ion-list>
  <video controls autoplay #myvideo></video>
</ion-content>

TypeScript 代码

captureVideo() {
    let options: CaptureVideoOptions = {
      limit: 1,
      duration: 30
    }
    this.mediaCapture.captureVideo(options).then((res: MediaFile[]) => {

      let videoData = JSON.stringify(res);
      let res1 = JSON.parse(videoData);
      this.videoURL = res1[0]['fullPath'];
      
      let video = this.myvideo.nativeElement;
      video.src =  this.videoURL;
      video.play();

      var option: CreateThumbnailOptions = {
        fileUri: res[0].fullPath,
        outputFileName: 'aaaa',
        atTime: 2,
        width: 320,
        height: 480,
        quality: 100
      };
      console.log("option :" ,option);
      this.videoEditor.createThumbnail(option).then(res=>{
        console.log('Thumbnail result: ' + res);
      }).catch(err=>{
        console.log("ERROR ERROR", err)
      });

    }, (err) => {
      console.log("ERROR", "error selecting video");
    });
  }

有人可以帮助我,为什么我会收到这样的错误?

ionic 团队似乎对他们的原生插件做了一些更改。您需要安装与您的项目类型相对应的正确版本的本机插件。并根据您的 angular 版本正确导入它。你需要做的就是,

ionic.config.json 文件中检查您的项目类型。

如果类型是“ionic-angular”,则安装4.x.x版本。你的情况

npm i -s @ionic-native/video-editor@4.20.0

如果类型是“angular”,则安装5.x.x-测试版

npm i -s @ionic-native/video-editor@5.0.0-beta.24

注:

仅当您使用 Angular 6

时才在导入末尾添加 ngx
import { VideoEditor } from '@ionic-native/video-editor/ngx';

如果不在 app.module.ts 和 app.component.ts

中从导入中删除 ngx
import { VideoEditor } from '@ionic-native/video-editor';

引用:https://github.com/ionic-team/ionic/issues/15225#issuecomment-414074074