我正在制作一个离子3应用程序,我想让用户捕获图片和视频。所以我使用媒体捕获插件,一旦我捕获图像或视频,我得到MediaFile[]
承诺作为回报。现在,当我尝试使用ion-img
在[src] = mediaFile[‘0’].fullPath
标记中将该图像显示为预览时。它没有显示图像。
请告诉我,如果我的appraoch错了,那我应该怎么做。
这是捕获部分:
this.mediaCapture.captureImage()
.then(
(data: MediaFile[]) => {
this.navCtrl.push('NewPostPage', {
mediaFile : data
})
},
(err: CaptureError) => console.error(err)
);
这是newpostpage的html:
<ion-content padding>
<ion-img [src] = 'image'></ion-img>
</ion-content>
这是newpostpage的.ts
文件:
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { MediaFile } from '@ionic-native/media-capture';
/**
* Generated class for the NewPostPage page.
*
* See http://ionicframework.com/docs/components/#navigation for more info
* on Ionic pages and navigation.
*/
@IonicPage()
@Component({
selector: 'page-new-post',
templateUrl: 'new-post.html',
})
export class NewPostPage {
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
mediaFile: MediaFile[] = this.navParams.get('mediaFile');
image: string = this.mediaFile['0'].fullPath;
ionViewDidLoad() {
console.log('ionViewDidLoad NewPostPage');
console.log(this.image);
}
}
答案 0 :(得分:0)
嘿,不知道你是否还有这个问题。
我解决这个问题的方法是在控制台中打印文件路径,然后我尝试删除它的不同部分,看看它有什么用。
特别有用的是删除"file:"
前缀,如下所示:
self.media.captureVideo().then((data: MediaFile[]) => {
let file = data.pop();
let path = file.fullPath.replace('file:', '');
resolve(path);
}, err => {
console.dir(err);
reject(err);
});
然后我可以使用路径传输/播放文件。