Ionic 3 从录制的文件中获取 base64 音频字符串
Posted
技术标签:
【中文标题】Ionic 3 从录制的文件中获取 base64 音频字符串【英文标题】:Ionic 3 get base64 audio string from recorded file 【发布时间】:2018-08-04 15:09:13 【问题描述】:我正在使用cordova-plugin-media 在我的 android 离子应用程序中录制语音(具有暂停和恢复功能)。录制完成后,我需要获取 base64 字符串才能使用 html 音频标签播放它。问题是:如果我试图将暂停和恢复的录音保存为 3gp 文件('voice.3gp'),那么当我使用cordova-plugin-file 的 readAsDataURL 方法时,我什么也没有收到(回调根本没有称为)。如果我试图将其保存为 mp3 或 wav 文件,那么我只会收到录音的第一部分(暂停前)。我想正确的音频文件扩展名应该是 3gp,因为这个扩展名用于“cordova-plugin-media”的实现,但是我在使用 html 音频标签播放这个文件时遇到了问题。任何帮助都会得到帮助
【问题讨论】:
【参考方案1】:好的,我刚刚发现您可以使用cordova-plugin-file的方法“resolveLocalFilesystemUrl”,它将返回对象,并且在该对象内部有一个属性“nativeURL”可以用作源(src ) 用于视频标签(必须使用视频标签而不是音频,因为 3gp 格式实际上是用于视频的)
【讨论】:
【参考方案2】:this.file.readAsDataURL(filePathtoUpload, this.fileName)
.then((base64Audio) =>
console.log(base64Audio);
)
.catch(function (err: TypeError)
console.log("readAsDataURL: " + err);
);
这对我有用
【讨论】:
您可以考虑在代码中添加一些 cmets 和解释性句子,因为这会增加您的答案对其他用户的价值。 以上代码用于将录制的文件转换为base64文件【参考方案3】:阅读: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
【讨论】:
以上是关于Ionic 3 从录制的文件中获取 base64 音频字符串的主要内容,如果未能解决你的问题,请参考以下文章
从 PEM BASE64 编码的私钥文件中获取 RSA 私钥
Cordova/Ionic 应用程序通过服务器签名的 url 将 base64 图像上传到 S3
Ionic 2 Angular 2 HTTP Post Base64 Image to Server 导致在发送前清理不安全的 URL