@hatimane wrote:
hello
i'm working on a app that use cordova-plugin-media to record and audio file , and now i want to upload this audio file to firebase storage , for now i can locat the file but when i try to upload it i get an error
"Error: Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.
here is my code
Utils.js
audioDataURItoBlob: function(dataURI) { var byteString = atob(dataURI.split(',')[1]); var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]; var ab = new ArrayBuffer(byteString.length); var ia = new Uint8Array(ab); for (var i = 0; i < byteString.length; i++) { ia[i] = byteString.charCodeAt(i); } console.log('Inside data dataURI'); var blob = new Blob([ia], {type: mimeString}); return blob; } getAudio: function(audioSource) { var audioURI = "data:audio/mpeg;base64," + audioSource; var file = Utils.dataURItoBlob(audioURI); //Create and set Meta Type to Firebase Storage Ref. var storageRef = firebase.storage().ref(); var metadata = { 'contentType': 'audio/mpeg' }; Utils.show(); //Refer to images folder of Firebase Storage. storageRef.child('audios/' + Utils.generateFilename()).put(file, metadata).then(function(snapshot) { //File successfully uploaded to Firebase Storage. var url = snapshot.metadata.downloadURLs[0]; // $scope.sendMessage('image', url); $rootScope.$broadcast('audioUploaded', { audioUrl: url }); }).catch(function(error) { console.log('error' + error); //Show Error. Utils.message(Popup.errorIcon, Popup.uploadImageError); }); }
Controllers.js
var extension = '.mp3'; var audio = null; $scope.startRecording = function() { audio = new Media(Utils.generateFilename() + extension, function(e){console.log(e, "success");}, function(e) {console.log(e, "error");}); audio.startRecord(); }; $scope.sendAudioMsg = function() { audio.stopRecord(); audio.play();// testing if the file exist if(device.platform == "iOS") { var path = cordova.file.tempDirectory; } else if(device.platform == "Android") { var path = cordova.file.externalRootDirectory; } var filepath = path + "filename" + extension var filename = "filename" + extension; Utils.getAudio(filepath); };
can any one help me with this??
thanks
Posts: 1
Participants: 1