"Encoding_Err" form Cordova File Plugin


#1

Hey everyone! I am having trouble uploading videos to my AWS S3 directly from my Typescript. I can upload text files perfectly fine so I am under the impression that my credentials and how I am uploading are fine, but i could be wrong. I am currently using the media-capture plugin to record a video through the camera and automatically upload it to my S3 bucket using the Javascript SDK, but my File.readAsArrayBuffer is giving me a “code”:5,“message”:“ENCODING_ERR” Any help with this would be greatly appreciated! I’m new to Ionic 2 so please don’t spare details.

recordClick(){
    MediaCapture.captureVideo().then((data: MediaFile[]) => {
      console.log("---------Data:---------------");
      console.log(data);
      console.log("---------Name:--------------");
      console.log(data[0].name);
      console.log("---------Filepath:-----------");
      console.log(data[0].fullPath);

    
          File.readAsArrayBuffer(data[0].fullPath, data[0].name).then(
            (success) => {
              console.log("----Successfully read the file!---");
              this.uploadToS3(success); },
            (err) => {
              console.log("----File Reading Failed!----");
              console.log(err);
              });
    },
        (err) => {console.log(err)}
        );
  }

  uploadToS3(fileIn, nameIn){
      // let video = new Blob([file], {type: "video/quicktime"});

      var params = {Bucket: 'myBucket', Key: nameIn, Body: fileIn}; 
      this.s3.upload(params, function(err, data) {
        console.log("---S3 Upload----");
        console.log(err, data);
    }); 
  }

Note: The above code is just the relevant part of my ts file, I have all the appropriate imports and all the appropriate plugins have been installed.

Thank you!


#2

Were you able to solve this? I am encountering this same problem.


#3

any luck guys, I’m stuck here too


#4

Make sure your URI is correctly formatted. If not you can append the necessary missing parts.


#5

The URI returned from the MediaCapture plugin on android is:
file:///storage/emulated/0/DCIM/Camera/VID_20170616_145516.mp4
and the camera plugin returns: /storage/emulated/0/DCIM/Camera/VID_20170616_062334.mp4
And it runs perfectly on the html 5 video player. But the File plugin is causing issuses.
Can you please specify that what is the correct format of the URI to pass to the file plugin?


#6

It should have file:/// with the path. The returned /storage/emulated… is not in proper format so you have to add file: in it.