gpt4 book ai didi

angularjs - 如何将音频文件上传到 Firebase 存储?

转载 作者:行者123 更新时间:2023-12-02 23:31:47 26 4
gpt4 key购买 nike

I'm trying to upload audio file to Firebase Storage in my Ionic2 project.

首先我使用媒体插件(Cordova插件)录制了一个音频文件,并且该文件播放得很好。来自 Android 存储和媒体插件方法 (this.media.play()...;)。

其次,我需要将录制的文件推送到 Firebase Storage。

这是我的代码:

  let storageRef = firebase.storage().ref();
let metadata = {
contentType: 'audio/mp3',
};
let filePath = `${this.file.externalDataDirectory}`+`${this.fileName}`;
const voiceRef = storageRef.child(`voices/${this.fileName}`);
var blob = new Blob([filePath], {type: 'audio/mp3'});
voiceRef.put(blob);

After reading the Firebase doc, I can push blob to Firebase.

文件已成功推送到 Firebase 存储,且数据为空(95 字节)。

这是屏幕截图: enter image description here

最佳答案

The problem isn't a Firebase issue

我的问题是通过使用 File cordova 插件方法 (readAsDataURL()) 和 putString(fileBase64,firebase.storage.StringFormat.DATA_URL) 解决的 方法。

首先,我创建一个文件引用:let filePath = "this.file.externalDataDirectory"+ "this.fileName";

然后,我使用 readAsDataURL 方法将文件转换为 Base64 字符串,该方法返回包含该文件作为字符串 base64 的 Promise。另外,我使用 putString 方法将文件推送到 Firebase,该方法有两个参数,即 readAsDataURL 返回的文件,第二个参数是 firebase.storage.StringFormat.DATA_URL。

我的最终代码:

  let storageRef = firebase.storage().ref();
let metadata = {
contentType: 'audio/mp3',
};
let filePath = `${this.file.externalDataDirectory}` + `${this.fileName}`;
this.file.readAsDataURL(this.file.externalDataDirectory, this.fileName).then((file) => {
let voiceRef = storageRef.child(`voices/${this.fileName}`).putString(file, firebase.storage.StringFormat.DATA_URL);
voiceRef.on(firebase.storage.TaskEvent.STATE_CHANGED, (snapshot) => {
console.log("uploading");
}, (e) => {
reject(e);
console.log(JSON.stringify(e, null, 2));
}, () => {
var downloadURL = voiceRef.snapshot.downloadURL;
resolve(downloadURL);
});
});

这对我来说效果很好。谢谢。

关于angularjs - 如何将音频文件上传到 Firebase 存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48222077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com