Плагин Media Capture Native Ionic 3

Я делаю приложение ionic 3, в котором я хочу, чтобы пользователь мог снимать изображения и видео. Итак, я использовал плагин для захвата мультимедиа, как только я захватываю изображение или видео, я получаю взамен обещание MediaFile[]. Теперь, когда я пытаюсь отобразить это изображение как превью в теге ion-img с [src] = mediaFile[‘0’].fullPath. это не отображает изображение.

пожалуйста, скажите мне, если моя оценка неверна, что мне делать.

вот часть захвата:

this.mediaCapture.captureImage()
  .then(

    (data: MediaFile[]) => {
         this.navCtrl.push('NewPostPage', {
         mediaFile : data
         })
    },
    (err: CaptureError) => console.error(err)
  );

вот html страницы newpost:

<ion-content padding>

  <ion-img [src] = 'image'></ion-img>

</ion-content>

вот файл .ts страницы newpost:

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

}

person Faizan Ullah    schedule 18.08.2017    source источник


Ответы (1)


Эй, не знаю, осталась ли у вас эта проблема.

Я решил эту проблему, распечатав путь к файлу в консоли, а затем попытался удалить различные его части и посмотреть, что работает.

В частности, сработало удаление префикса "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);
            }); 

Затем я мог бы использовать путь для передачи / воспроизведения файла.

person Anton Toshik    schedule 25.09.2017
comment
на самом деле проблема заключалась в том, что путь, возвращаемый плагином, был неправильным. Я использовал плагин камеры для изображений и плагин захвата мультимедиа для видео. функция captureImage () плагина mediaCapture возвращала ложный путь. - person Faizan Ullah; 29.09.2017
comment
@FaizanUllah, путь не неправильный, это просто другой формат пути, который можно использовать в медиа-плагине. Для других целей путь должен быть другим, это то, что я пытаюсь описать в своем ответе, говоря, что: редактирование возвращенного пути было решением. - person Anton Toshik; 03.10.2017