媒体捕捉原生插件 Ionic 3

Posted

技术标签:

【中文标题】媒体捕捉原生插件 Ionic 3【英文标题】:Media Capture Native Plugin Ionic 3 【发布时间】:2018-01-27 00:37:09 【问题描述】:

我正在制作一个 ionic 3 应用程序,我希望用户能够在其中捕获图片和视频。所以我使用了媒体捕捉插件,一旦我捕捉到图像或视频,我就会得到MediaFile[] 作为回报。现在,当我尝试将该图像显示为带有[src] = mediaFile[‘0’].fullPathion-img 标记中的预览时。它不显示图像。

如果我的方法有问题,请告诉我该怎么办。

这里是捕获部分:

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】:

不知道你是否还有这个问题。

我解决此问题的方法是在控制台中打印文件路径,然后我尝试删除它的不同部分并查看哪些有效。

具体的工作是删除 "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);
            ); 

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

【讨论】:

实际上问题是,插件返回的路径错误..我使用相机插件处理图像,使用媒体捕获插件处理视频。 mediaCapture 插件的 captureImage() 函数返回错误路径。 @FaizanUllah 路径没有错,它只是可以在媒体插件中使用的不同路径格式。出于其他目的,路径必须不同,这就是我试图在回答中描述的内容:编辑返回的路径是解决方案。

以上是关于媒体捕捉原生插件 Ionic 3的主要内容,如果未能解决你的问题,请参考以下文章

Ionic 媒体插件无法在 iOS 上播放本地存储的 mp3 文件

ionic Cordova 使用媒体插件在 IOS 上录制音频失败

如何在 iOS 上使用 Ionic 创建应用内媒体存储?

ionic2 流媒体不工作

iOS 10 上的 Cordova 媒体插件是不是仍可使用后台播放?

AVFoundation学习笔记: 媒体捕捉读取及写入