我正在使用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); }); });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。