【问题标题】:Upload video from meteor and cordova从流星和科尔多瓦上传视频
【发布时间】:2016-04-06 22:24:40
【问题描述】:

我在使用流星从 Cordova 应用程序上传视频时遇到问题。 捕获视频没问题,但是当我将 readData 作为 DataURL 执行时,结果为空,如“content:video/mp4;base64,” base64 之后什么都没有,有人知道会发生什么吗?

编辑1:我认为问题来自许可,有可能吗?

navigator.device.capture.captureVideo(function (mediaFiles) {
  var i, path, len;
  for (i = 0, len = mediaFiles.length; i < len; i += 1) {
    path = mediaFiles[i].fullPath;
    var file = mediaFiles;

    var FR = new FileReader();

    FR.onerror = function (err) {
      console.log("ERROR");
    }

    FR.onloadend = function (encodedFile) {

      var src = encodedFile.target.result; 
      src = src.split("base64,");

      var contentAsBase64EncodedString = src[1] //EMPTY;
      var url = Session.get("lat") + "_" + new Date().toJSON() + ".mp4";
      console.log("on upload");
      Meteor.call('uploadVideo', contentAsBase64EncodedString , url);
    }
    FR.readAsDataURL( mediaFiles[i]);

  }

【问题讨论】:

    标签: javascript android file cordova meteor


    【解决方案1】:

    我找到了解决方案,请按照以下步骤操作:

    window.resolveLocalFileSystemURL(imageUri, function(fileEntry) {
        fileEntry.file(function(file) {
            file.name = filename;
            template.cordovaFile = file;
        });
    });
    
    var file = template.cordovaFile;
    var reader = new FileReader();
    reader.onloadend = function(e) {
        var fileBlob = internals.dataURItoBlob(e.target.result);
        if (fileBlob) {
    
         uploader.send(fileBlob, function (error, downloadUrl) {
                    if (error) {
                        return cb(error);
                    }
    
                    return cb(null);
                });
    
        }
    }
    reader.readAsDataURL(file);
    
    
    
    /**
     * Converts a data uri into Blob object
     * @param dataURI
     * @returns {Blob}
     */
    internals.dataURItoBlob = function(dataURI) {
        var byteString = atob(dataURI.split(',')[1]);
        var ab = new ArrayBuffer(byteString.length);
        var ia = new Uint8Array(ab);
        for (var i = 0; i < byteString.length; i++) {
            ia[i] = byteString.charCodeAt(i);
        }
        return new Blob([ab], { type: 'image/jpeg' });
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      • 2017-06-08
      • 1970-01-01
      • 2015-01-13
      相关资源
      最近更新 更多