Javascript Phonegap/Cordova-从临时目录以文本形式读取文件

Javascript Phonegap/Cordova-从临时目录以文本形式读取文件,javascript,android,ios,cordova,audio,Javascript,Android,Ios,Cordova,Audio,我正在使用cordova媒体插件录制.wav音频样本 事实上,我能够记录它们,但我找不到获得已创建文件内容的方法 如果我这样做: // Record audio // function recordAudio() { var src = "myrecording.wav"; var mediaRec = new Media(src, onSuccess, onError); // Record audio mediaRec.startRecord(); //

我正在使用cordova媒体插件录制.wav音频样本

事实上,我能够记录它们,但我找不到获得已创建文件内容的方法

如果我这样做:

// 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"}
{“isFile”:true,“isDirectory”:false,“name”:“myrecording.wav”,“fullPath”:“/myrecording.wav”,“filesystem”:“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"}
但这不是文件内容,如何从documents://目录中以文本形式检索文件


使用媒体插件将文件录制到documents://audio.wav 路径似乎是一个临时文件

媒体插件,其描述是

提供录制和播放音频文件的功能

所以我想它不会给你原始数据。但是,由于您知道音频文件的URI,请使用文件插件从中获取数据

更新

如果要上载文件,请参阅

如果您希望将音频文件作为Base64编码字符串,请参阅

这是一段相当长的代码,其中包含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属性的值


这对你来说够了吗,或者还有什么我可以帮你的吗?

是的,我的目的是使用文件插件。。。但是背后的logci是什么,我怎样才能在temp文件夹中读取它呢?那么你在这里想要实现什么呢?您是要将文件内容发送到Internet、播放音频文件还是做什么?使用媒体插件存储后,它将存储在手机的硬盘上,并可以从那里以任何方式处理,对吗?我录制它,然后我想获取内容。。。该文件记录在documents://audio.wav 就像我看到的tmp文件一样,很抱歉我没听清你的话,朋友。那么现在的问题是如何将文件从文件系统读取到内存?如果是这样的话,我可以为您提供一个例子。请更好地检查问题标题“如何获取文件内容=以文本形式读取文件”,并且文件是录制的音频,是的,请我需要一些提示/示例我在这里找不到任何东西:/谢谢