2016-01-02 36 views
0

我有一個上傳來自科爾多瓦應用流星視頻的問題。 捕獲視頻是好的,但當我做dataURL讀取數據時,結果是空的,如「內容:視頻/ 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]); 

    } 

回答

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