【问题标题】:How can send audio file to FireBase in Ionic 3如何在 Ionic 3 中将音频文件发送到 FireBase
【发布时间】:2018-08-23 09:43:28
【问题描述】:

我想将录制的音频上传到 FireBase 存储,但即使我已经很久没有工作了,我仍然在为此努力。

我似乎有三个选择;用API上传,用FireBase上传,用socket上传。

我尝试了前两个选项,但没有得到很好的结果。

最后,我尝试了第二个选项。我已成功将音频文件发送到 FireBase。但是文件看起来很糟糕,无法播放。

这是我的代码;

DataProvider.ts:

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';
import { AngularFireStorage, AngularFireUploadTask } from 'angularfire2/storage';
import { DateTime } from 'ionic-angular';

@Injectable()
export class DataProvider {

  constructor(private db: AngularFireDatabase, private storage: AngularFireStorage) {

  }

  uploadToStorage(blob, metadata): AngularFireUploadTask {
    let newName = new Date().getTime() + '.mp3';

    return this.storage.ref('files/' + newName).put(blob);
  }

}

Post.ts:

doPost() {
    const metadata = {
      contentType: 'audio/mp3',
    };
    const file = { dir: this.navParams.get('fileDir') }
    console.log('Dir:' + file.dir);
    var blob = new Blob([file.dir], { type: 'audio/mp3' });

    let upload = this.dataProvider.uploadToStorage(blob, metadata);

    upload.then().then(res => {
      console.log('res: ', res);
    })
  }

【问题讨论】:

  • 嘿朋友,你解决了吗?我在这里也有同样的情况。
  • @franzmobile 嘿,我通过.net 的后端服务解决了这个问题。我为此使用了 naudio .net

标签: angular firebase ionic-framework ionic3 firebase-storage


【解决方案1】:

在 TS 中----

onFileChanged(param){
   var aa;
   const file: File = param.target.files[0];
   const metaData = { 'contentType': file.type };
   const StorageRef: firebase.storage.Reference = firebase.storage().ref('/photos/Category/'+this.CategoryName);
   const Store = StorageRef.put(file, metaData);

   setTimeout((enter code here) => {
     const UP: firebase.storage.UploadTask = Store;
     UP.snapshot.ref.getDownloadURL().then(function (downloadURL) {
       console.log('File available at', downloadURL);
       aa = downloadURL;
     });
    }, 1000);

    setTimeout(() => {
      this.ImageLink = aa;
      debugger;
    }, 2000);

 }

从 '@ionic/firebase 导入 * 作为 firebase

在 HTML 中:

【讨论】:

  • icons.iconarchive.com/icons/icons8/windows-8/512/…" width="50px" />
猜你喜欢
  • 1970-01-01
  • 2016-06-16
  • 1970-01-01
  • 1970-01-01
  • 2019-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多