Convert a base64 from an audio to a file with Javascript and Cordova is more easier than you think. However, you can't directly use the cordova-plugin-file
to write your string into a file because it is not supported. However, the filewriter accepts binary data, so taking advantage of this principle that's the way in which we are going to save our string as an audio file on the device. To create a mp3 file from a base64 string, we'll convert it into a Blob using a non-conventional method.
Requirements
As we are handling files, you need to have the cordova-file-plugin in your project. To install this plugin execute the following command on your command prompt:
cordova plugin add cordova-plugin-file
The cordova plugin file will allow you to save and read files in your device easily. If you don't know anything about this plugin, read more about how it works in the official repository here.
Implementation
To convert a base64 string into an audio file, we are going to require the following 2 methods.
/**
* Convert a base64 string in a Blob according to the data and contentType.
*
* @param b64Data {String} Pure base64 string without contentType
* @param contentType {String} the content type of the file i.e (audio/mpeg - image/png - text/plain)
* @param sliceSize {Int} SliceSize to process the byteCharacters
* @see http://stackoverflow.com/questions/16245767/creating-a-blob-from-a-base64-string-in-javascript
* @return Blob
*/
function b64toBlob(b64Data, contentType, sliceSize) {
contentType = contentType || '';
sliceSize = sliceSize || 512;
var byteCharacters = atob(b64Data);
var byteArrays = [];
for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
var slice = byteCharacters.slice(offset, offset + sliceSize);
var byteNumbers = new Array(slice.length);
for (var i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
var blob = new Blob(byteArrays, {type: contentType});
return blob;
}
/**
* Create an Audio file according to its database64 content only.
*
* @param folderpath {String} The folder where the file will be created
* @param filename {String} The name of the file that will be created
* @param content {Base64 String} Important : The content can't contain the following string (data:audio/mpeg[or any other format];base64,). Only the base64 string is expected.
*/
function saveBase64AsAudioFile(folderpath,filename,content,contentType){
// Convert the base64 string in a Blob
var DataBlob = b64toBlob(content,contentType);
console.log("Starting to write the file :3");
window.resolveLocalFileSystemURL(folderpath, function(dir) {
console.log("Access to the directory granted succesfully");
dir.getFile(filename, {create:true}, function(file) {
console.log("File created succesfully.");
file.createWriter(function(fileWriter) {
console.log("Writing content to file");
fileWriter.write(DataBlob);
}, function(){
alert('Unable to save file in path '+ folderpath);
});
});
});
}
As mentioned previously, the cordova file writer provided by the cordova-file-plugin
doesn't support write files with base64, therefore we are going to use a little trick. The base64 string will be processed and converted into a writable Blob.
Using saveBase64AsAudioFile method
The method is well explained in the snippet, to test it you can test the following code in your project, it should create the following audio file in your root directory.
// Remember to execute this after the onDeviceReady event
// If your base64 string contains "data:audio/mpeg;base64,"" at the beginning, keep reading.
var myBase64 = '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';
// To define the type of the Blob
var contentType = "audio/mpeg";
// if cordova.file is not available use instead :
// var folderpath = "file:///storage/emulated/0/";
var folderpath = cordova.file.externalRootDirectory;
var filename = "MyBase64Audio.mp3";
saveBase64AsAudioFile(folderpath,filename,myBase64,contentType);
If you execute the previous snippet, you'll find the mentioned audio file in the root directory of your device. The myBase64
variable contains an audio of 3 seconds for this example.
However, according to your case, you can have 2 types of base64 strings :
// This type is not so common, however it may exist
var type1 = "data:audio/mpeg;base64,SUQzAwAAAAAD......";
// The plain base64 content of the audio file (the most common)
var type2 = "SUQzAwAAAAAD......";
Saving base64 type 1
As this string already contains the content type that requires the function, we only need to process the string and retrieve in different variables the content and the content type (audio/mpeg
etc).
/** Process the type1 base64 string **/
var myBaseString = "data:audio/mpeg;base64,SUQzAwAAAAAD......";
// Split the base64 string in data and contentType
var block = myBaseString.split(";");
// Get the content type
var dataType = block[0].split(":")[1];// In this case "audio/mpeg"
// get the real base64 content of the file
var realData = block[1].split(",")[1];// In this case "SUQzAwAAAAAD...."
// The path where the file will be created
var folderpath = "file:///storage/emulated/0/";
// The name of your file
var filename = "MyAwesomeAudio.mp3";
saveBase64AsAudioFile(folderpath,filename,realData,dataType);
Saving base64 type 2
With this format, you need to find out by yourself the content type of the base64 because we have only the data.
// The base64 content
var myBase64 = "SUQzAwAAAAAD......";
// To define the type of the Blob, you need to get this value by yourself (maybe according to the file extension)
var contentType = "audio/mpeg";
// The path where the file will be saved
var folderpath = "file:///storage/emulated/0/";
// The name of your file
var filename = "MyAwesomeAudio.mp3";
saveBase64AsAudioFile(folderpath,filename,myBase64,contentType);
Have fun !