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属性的值。
这对你来说够了吗,还是还有别的可以帮你的吗?