我正在使用phonegap录制视频,我想保存base64数据编码的字符串.到目前为止我试过这个..
function captureSuccess(mediaFiles) { var i,path,len; path = mediaFiles[0]; win(path); } function win(file) { var reader = new FileReader(); reader.onloadend = function (evt) { console.log("read success"); console.log(evt.target.result); }; reader.readAsDataURL(file); }; function captureError(error) { navigator.notification.alert('Error code: ' + error.code,null,'Capture Error'); } function captureVideo() { navigator.device.capture.captureVideo(captureSuccess,captureError,{limit: 1}); }
我使用了documentation中指定的readAsDataURL.evt.target.result的输出是“data:video / mp4; base64”,但文件类型后没有任何编码数据.
为了获得视频的完整base64数据,还有什么我需要添加的吗?
我真的很难找到任何可以帮助我的东西.任何帮助将不胜感激.
解决方法
var b64toBlobAlt = function(dataURI,contentType) { var ab,byteString,i,ia; byteString = atob(dataURI.split(',')[1]); ab = new ArrayBuffer(byteString.length); ia = new Uint8Array(ab); i = 0; while (i < byteString.length) { ia[i] = byteString.charCodeAt(i); i++; } return new Blob([ab],{ type: contentType }); }; var path = mediaFiles[0].fullPath; window.resolveLocalFileSystemURL(path,function(fileEntry) { return fileEntry.file(function(data) { var reader = new FileReader(); reader.onloadend = function(e) { var blob = b64toBlobAlt(e.target.result,'video/mp4'); if (blob) { // do whatever you want with blob }); } }; return reader.readAsDataURL(data); }); });