angular - 来自 Ionic-native VideoEditor 插件的“Uncaught (in promise): TypeError: Object(...) is not a function”错误
问题描述
我正在开发一个离子应用程序,用户可以在其中录制新视频。然后我想将视频分成帧并将帧发送到服务器。我正在使用插件中的createThumbnail
功能。ionic-native
VideoEditor
但是当我尝试调用createThumbnail
函数时,它会抛出
ERROR 错误:未捕获(承诺中):TypeError:Object(...) 不是函数
这是我的源代码。
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>
打字稿代码
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 团队对他们的原生插件进行了一些更改。您需要安装与您的项目类型相对应的正确版本的原生插件。并根据您的角度版本正确导入。你需要做的就是,
在ionic.config.json文件中检查您的项目类型。
如果类型为“ ionic-angular ”,则安装 4.xx 版本。在你的情况下
npm i -s @ionic-native/video-editor@4.20.0
如果类型为“ angular ”,则安装 5.xx-beta 版本
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
推荐阅读
- javascript - 不刷新第二个选择下拉列表
- r - 根据单独列中的字符串匹配有条件地替换多列中的值
- css - Wordpress 店面主题;取决于屏幕分辨率的灵活产品数量
- python - 使用 Python 重命名类似文件
- subscription - 在 Fiware Draco 订阅中使用表达式
- azure - .net core 3.1 Azure Deploy 问题 500 然后 404
- c++ - 友元函数应该写在哪里?
- java - 回复消息长度 4217268 小于最大消息长度 4194304
- bash - 我可以运行对话框,然后将终端恢复到以前的状态吗?
- python - Python pop 和 append 不会将 list1 中的所有元素移动到列表 2