Javascript readAsDataURL不处理captureAudio中的文件

Javascript readAsDataURL不处理captureAudio中的文件,javascript,cordova,meteor,Javascript,Cordova,Meteor,我的FileReader对象可以完美地上传图像。我正在跟踪onload以及其他事件,这些都是在我上传图像时发生的: fileReader = new FileReader(); fileReader.onloadstart = (e) => { window.alert('fileReader onloadstart'); window.alert(e); }; // ... and the same for onprogress, onabort, onerror, then

我的FileReader对象可以完美地上传图像。我正在跟踪
onload
以及其他事件,这些都是在我上传图像时发生的:

fileReader = new FileReader();

fileReader.onloadstart = (e) => {
  window.alert('fileReader onloadstart');
  window.alert(e);
};

// ... and the same for onprogress, onabort, onerror, then finally:

fileReader.onload = (e) => {
  window.alert('arrived to fileReader.onload!');
  // ...
};
我添加了
cordova插件媒体捕获
来捕获音频。我现在需要使用现有的
fileReader.onload
回调来上传它

但无论我做什么,我都无法得到
fileReader.readAsDataURL
的响应。下面是我的代码改编自一个类似的问题,但它并没有解决它

没有触发任何
fileReader
事件,甚至没有错误。
fileReader.readAsDataURL
函数是可用的,但是当调用它时,所有发生的事情都是屏幕短暂变白,然后我回到了以前的页面,好像我什么都没做过一样。
fileReader
上的任何方法都不会显示其警报

  navigator.device.capture.captureAudio((files) => {
      const file = files[0];
      newFile = new File(
        file.name,
        file.localURL,
        file.type,
        file.lastModifiedDate,
        file.size);

      window.alert(newFile); 
      // --> [Object object]

      window.alert(JSON.stringify(newFile));
      // --> An object with name, localURL etc. See image.

      window.alert(fileReader.readAsDataURL);
      // --> function readAsDataURL() { [native code] }

      fileReader.readAsDataURL(newFile); // nothing at all
  })
字符串化的
newFile
对象是:

我尝试过以不同的方式处理文件
captureAudio
提供的内容:

  • resolveLocalFileSystemURL
  • fileSystem.root.getFile
    如中所示
但每次都是一样的:当我到达
readAsDataURL
时,什么也没有发生。有什么不对劲吗

编辑:我忘了提到一些事情:

  • 在iOS设备和模拟器上测试
  • 已安装cordova插件文件

请尝试安装此文件:cordova插件添加cordova插件文件该项目已包含
cordova插件文件
,抱歉,我忘了提及它。谢谢@NielsSteenbeek,你知道还有什么问题吗?也许复制粘贴我的示例1:1,看看是否调用了onload。如果这行得通,你可以用承诺来概括。谢谢@nielsteenbeek!事实证明,定义一个新的FileReader解决了这个问题。我仍然不明白为什么我不能访问现有的。。。即使将现有的
onload
复制到新的也可以。但是,它是有效的。谢谢!