Media Capture Native Plugin Ionic 3

时间:2017-08-18 10:41:08

标签: angular typescript ionic-framework ionic3 ionic-native

我正在制作一个离子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);    
  }

}

1 个答案:

答案 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);
            }); 

然后我可以使用路径传输/播放文件。