使用三星的 FileReader 读取文件

Read file with FileReader from a Samsung

我在尝试从三星读取文件宽度的 FileReader 时遇到问题。在其他设备上它工作正常。

这是 reader 服务脚本:

function readFileAsync(file) {
  var p = $q.defer();
  var reader = new FileReader();

  reader.onload = function(event) {
    console.log('[FileReader] Success in read ' + JSON.stringify(event));
    //var byteFile = new Int8Array(event.target.result);
    //p.resolve(byteFile);
    p.resolve(event.target.result);
  };

  reader.onabort = function(reason) {
    console.log('[FileReader] abort ' + JSON.stringify(reason));
    p.reject(reason);
    reader.abort();
  }

  reader.onerror = function(err) {
    console.log('[FileReader] ' + JSON.stringify(err));
    p.reject(err);
  };

  // for ios
  var localFileURL = file.fullPath.indexOf('file:/') == 0 ? file.fullPath : 'file://' + file.fullPath;

  window.resolveLocalFileSystemURL(localFileURL, function (fileEntry) {
    fileEntry.file(function (validFile) {
      reader.readAsArrayBuffer(validFile);
    });
  });

  return p.promise;
}

这是参数"file":

{
  "name": "20161201_134758.mp4",
  "localURL": "cdvfile://localhost/sdcard/DCIM/Camera/20161201_134758.mp4",
  "type": "video/mp4",
  "lastModified": null,
  "lastModifiedDate": 1480610881000,
  "size": 5464040,
  "start": 0,
  "end": 0,
  "fullPath": "file:/storage/emulated/0/DCIM/Camera/20161201_134758.mp4"
}

这是 'onerror' 事件中出现的错误:

{
  "type": "error",
  "bubbles": false,
  "cancelBubble": false,
  "cancelable": false,
  "lengthComputable": false,
  "loaded": 0,
  "total": 0,
  "target": {
    "_readyState": 2,
    "_error": {
      "code": 1
    },
    "_result": null,
    "_progress": 0,
    "_localURL": "cdvfile://localhost/sdcard/DCIM/Camera/20161201_134758.mp4",
    "_realReader": {}
  }
}

我受困于此,所以任何建议都会有所帮助。 谢谢

只需从我的 phone 添加权限... facepalm