readAsDataURL does not process file from captureAudio

女生的网名这么多〃 提交于 2019-12-24 00:38:59

问题


My FileReader object is working perfectly to upload images. I'm tracking onload as well as other events, these all happen when I upload images:

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!');
  // ...
};

I added cordova-plugin-media-capture to capture audio. I now need to use the existing fileReader.onload callback to upload it etc.

But no matter what I do, I cannot get fileReader.readAsDataURL to respond. Below is my code adapted from this answer about a similar problem, but it doesn't resolve it.

None of the fileReader events are firing, not even error. The fileReader.readAsDataURL function is available, yet when calling it all that happens is the screen briefly goes white and then I'm back at the page I was at before as if I had not done anything. None of the methods on fileReader show their alerts.

  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
  })

The stringified newFile object is:

I've tried processing the file captureAudio gives in different ways:

  • resolveLocalFileSystemURL: https://ourcodeworld.com/articles/read/80/how-to-convert-a-image-from-the-device-to-base64-with-javascript-in-cordova
  • fileSystem.root.getFile as in https://groups.google.com/forum/#!msg/phonegap/uX_aDRKp72I/ZUbt0ThWVQkJ

But every time the same thing: when I arrive at readAsDataURL, nothing happens anymore. What could be wrong?

Edit: I forgot to mention some things:

  • tested on iOS device and simulator
  • cordova-plugin-file is installed

来源:https://stackoverflow.com/questions/51254272/readasdataurl-does-not-process-file-from-captureaudio

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!