从Ionic-native VideoEditor插件获取“Uncaught(in promise):TypeError:Object(...)不是函数”错误

8
我正在开发一个ionic应用程序,用户可以录制新视频。然后我想将视频分成帧并将帧发送到服务器。我正在使用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");
    });
  }

有人能帮我解决为什么会出现这样的错误吗?

1个回答

6

看起来 Ionic 团队对其原生插件进行了一些更改。您需要安装与项目类型相应的正确版本的本地插件。并根据您的 angular 版本正确导入它。您需要做的就是:

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

如果类型为 "ionic-angular",则安装 4.x.x 版本。在您的情况下

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

如果类型是“angular”,那么请安装5.x.x-beta版本。
npm i -s @ionic-native/video-editor@5.0.0-beta.24

注意:

只有在使用Angular 6时,在import的末尾添加ngx。

import { VideoEditor } from '@ionic-native/video-editor/ngx';

如果不将 app.module.ts 和 app.component.ts 中的 ngx 导入删除,则会出现问题。
import { VideoEditor } from '@ionic-native/video-editor';

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


这个解决方案对我有效。所以问题出在插件版本上。非常感谢@Rathnakara S. - Thamindu DJ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接