微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Cordova – 捕获视频并检索base64数据

我正在使用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 举报,一经查实,本站将立刻删除。

相关推荐