在Ionic中将MP3文件编码为base64字符串

时间:2016-09-20 14:27:34

标签: angularjs cordova ionic-framework

我正在开发一个使用cordova-plugin-media录制和录制文件的应用,现在我想将此文件编码为base64字符串,现在我可以找到该文件,但是当我尝试编码时我明白了:

" {" $$状态" {"状态":0}}"

这是我的代码

audio.stopRecord();
audio.play();
if(device.platform == "iOS")
{
    var path = cordova.file.tempDirectory;
}
else if(device.platform == "Android")
{
    var path = cordova.file.externalRootDirectory;
}

var filename = name + extension;
var filepath = path + filename;


console.log(filepath);
console.log(JSON.stringify($cordovaFile.readAsDataURL(path, filename)));

文件路径:file:///storage/emulated/0/tPUhcxUKhmLUrWK3Qkqhc69OxeEIWyYrhEB0he9OwM0ffmjY2OUh3TLbFTsApdpIpjxyuC2wouyCs6m7uvdOCHCMiw9mbLMGYM25.mp3

任何人都可以帮我解决这个问题吗?

由于

1 个答案:

答案 0 :(得分:2)

readAsDataURL 需要一个文件对象,它不能用于字符串路径。

尝试使用以下代码,适用于iOS和Android

window.resolveLocalFileSystemURL(path, function(fileEntry) {fileEntry.file(function (file) {
 var reader = new FileReader();

 reader.onloadend = function(evt) {
    var base64String = evt.target.result;
 };

 reader.readAsDataURL(file);

});}, function(e){console.log("error:" + JSON.stringify(e));});