从Cordova Capture获取audio数据的base64

我正在使用ngCordova Capture通过录制audio来写这段代码,并通过REST发送base64。 我可以使捕获audio工作,但一旦它返回audioURI,我不能从base64的文件系统获取数据。 我的代码如下:

$cordovaCapture.captureAudio(options).then(function(audioURI) { $scope.post.tracId = $scope.tracId; $scope.post.type = 'audio'; console.log('audioURI:'); console.log(audioURI); var path = audioURI[0].localURL; console.log('path:'); console.log(path); window.resolveLocalFileSystemURL(path, function(fileObj) { var reader = new FileReader(); console.log('fileObj:'); console.log(fileObj); reader.onloadend = function (event) { console.log('reader.result:'); console.log(reader.result); console.log('event.result:'); console.log(event.result); } reader.onload = function(event2) { console.log('event2.result:'); console.log(event2.target.result); }; reader.readAsDataURL(fileObj); console.log(fileObj.filesystem.root.nativeURL + ' ' + fileObj.name); $cordovaFile.readAsDataURL(fileObj.filesystem.root.nativeURL, fileObj.name) .then(function (success) { console.log('success:'); console.log(success); }, function (error) { // error }); }); 

这是控制台日志中的输出:

在这里输入图像说明

那么如何从.wav文件获取base64数据呢?

我一直在阅读这些链接:

PhoneGap FileReader / readAsDataURL不触发callback

https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL

http://jsfiddle.net/eliseosoto/JHQnk/

http://community.phonegap.com/nitobi/topics/filereader_onload_not_working_with_phonegap_build_2_5_0

有同样的问题,我固定使用Cordova Capture和Cordova File插件。

 navigator.device.capture.captureAudio(function (audioFiles) { var audioFile = audioFiles[0], fileReader = new FileReader(), file; fileReader.onload = function (readerEvt) { var base64 = readerEvt.target.result; }; //fileReader.reasAsDataURL(audioFile); //This will result in your problem. file = new window.File(audioFile.name, audioFile.localURL, audioFile.type, audioFile.lastModifiedDate, audioFile.size); fileReader.readAsDataURL(file); //This will result in the solution. }); 
Interesting Posts