0

我正在使用cordova-plugin-media在我的适用于 android 的 ionic 应用程序中录制语音(具有暂停和恢复功能)。录制完成后,我需要获取 base64 字符串才能使用 html 音频标签播放它。问题是:如果我试图将暂停和恢复的录音保存为 3gp 文件('voice.3gp'),那么当我使用cordova-plugin-file 的readAsDataURL 方法时,我什么也没有收到(回调根本没有调用)。如果我试图将其保存为 mp3 或 wav 文件,那么我只会收到录音的第一部分(暂停前)。我想正确的音频文件扩展名应该是 3gp,因为这个扩展名用于“cordova-plugin-media”的实现,但是我在使用 html 音频标签播放这个文件时遇到了问题。任何帮助都会得到帮助

4

3 回答 3

0

好的,我刚刚发现您可以使用cordova-plugin-file的方法“resolveLocalFilesystemUrl”,它将返回对象,并且在该对象内部有一个属性“nativeURL”,可以用作源(src)视频标签(必须使用视频标签而不是音频,因为 3gp 格式实际上是用于视频的)

于 2018-02-25T00:07:09.103 回答
0
this.file.readAsDataURL(filePathtoUpload, this.fileName)
.then((base64Audio) => {
console.log(base64Audio);
})
.catch(function (err: TypeError) {
console.log("readAsDataURL: " + err);
});

这对我有用

于 2018-08-24T08:46:14.473 回答
0

阅读:https ://ionicframework.com/docs/v3/native/base64/

它是ionic的官方网站API。只需安装该插件并使用它:

 this.base64.encodeFile(this.filePath + this.fileName).then(
      (base64:any) =>{
      console.log('file base64 encoding: ' + base64);
    });

在这篇文章中,我解释得更好。我把链接放在这里: convert audio file to base64 in ionic 3

于 2019-03-01T10:40:56.690 回答