Phonegap /cordova – 从临时目录读取文件作为文本

我正在使用cordova media插件录制.wavaudio样本。

其实我能够logging他们,但我找不到方法来获得已经创build的文件内容。

如果我做:

// Record audio // function recordAudio() { var src = "myrecording.wav"; var mediaRec = new Media(src, onSuccess, onError); // Record audio mediaRec.startRecord(); // Stop recording after 10 sec var recTime = 0; var recInterval = setInterval(function() { recTime = recTime + 1; setAudioPosition(recTime + " sec"); if (recTime >= 3) { clearInterval(recInterval); mediaRec.stopRecord(); window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, function(fs){ fs.root.getFile("myrecording.wav", {create: true, exclusive: false}, function(entry){ console.log("console loggin file"); console.log(entry); }, function(){ alert("file create error"); }); }, null); } }, 1000); } 

我在控制台中获得这个条目:

 {"isFile":true,"isDirectory":false,"name":"myrecording.wav","fullPath":"/myrecording.wav","filesystem":"<FileSystem: temporary>","nativeURL":"file:///Users/iamuser/Library/Developer/CoreSimulator/Devices/FC61A8C0-CF4B-4A1C-B22C-D8511B1B1707/data/Containers/Data/Application/716F442C-5076-4C69-9CA9-A1A8C2827898/tmp/myrecording.wav"} 

但是这不是文件内容,如何从文件中检索文件为文本://目录?

该文件是使用媒体插件logging到文件://audio.wavpath,这似乎是一个临时文件

媒体插件是由它的描述

提供录制和播放audio文件的function

所以我想这不会给你原始数据。 但是,如您所知道的audio文件的URI,使用文件插件从中获取数据。

更新

如果你想上传文件,请参考这里 。

如果您不想将audio文件作为Base64编码的string,请参阅此处 。

这是一个很长的代码,里面有AngularJS,所以我把这个主要部分作为一个总结

 function OnFileEntry(file){ var reader = new FileReader(); reader.onloadend = function(evt) { var image = evt.target.result; var base64Data = image.replace(/^data:audio\/mpeg;base64,/, ""); base64Data += base64Data.replace('+', ' '); }; reader.readAsDataURL(file); } function OnGetFile(fileEntry){ fileEntry.file(OnFileEntry, fail); } function OnFileSystem(fileSystem){ fileSystem.root.getFile(recordName, null, OnGetFile, fail); } window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, OnFileSystem, fail); 

你需要改变的是recordName匹配你的src属性的值。

这对你来说够了吗,还是还有别的可以帮你的吗?