readAsDataURL不会处理来自captureAudio的文件

时间:2018-07-09 21:28:06

标签: 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 finally:

fileReader.onload = (e) => {
  window.alert('arrived to fileReader.onload!');
  // ...
};

我添加了cordova-plugin-media-capture来捕获音频。现在,我需要使用现有的fileReader.onload回调函数将其上传等。

但是无论我做什么,我都无法得到fileReader.readAsDataURL的回应。下面是我的this answer改编而成的关于类似问题的代码,但无法解决。

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对象是:

newFile stringified

我尝试处理文件captureAudio的方式不同:

但是每一次相同的事情:当我到达readAsDataURL时,什么也没有发生。怎么了?

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

  • 在iOS设备和模拟器上进行了测试
  • cordova-plugin-file已安装

0 个答案:

没有答案