为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Javascript将上传的音频转换为Blob?

如何使用Javascript将上传的音频转换为Blob?

缥缈止盈 2021-05-06 10:11:04
我正在尝试捕获用户上传的音频,将其转换为Blob,然后使用waveurfer.js显示波形。我在这里遵循此说明https://bl.ocks.org/nolanlawson/62e747cea7af01542479这是代码// Convert audio to Blob  $('#audioFileInput').on('change', function () {    var file = $('#audioFileInput')[0].files[0];    var fileName = file.name;    var fileType = file.type;    var fileReader = new FileReader();    fileReader.onloadend = function (e) {      var arrayBuffer = e.target.result;      blobUtil.arrayBufferToBlob(arrayBuffer, fileType).then(function (blob) {        console.log('here is a blob', blob);        console.log('its size is', blob.size);        console.log('its type is', blob.type);        surfTheBlob(blob);      }).catch(console.log.bind(console));    };    fileReader.readAsArrayBuffer(file);  });但是它说blobUtil.arrayBufferToBlob(...).then is not a function另一个问题是,由于用户可能自己上载了音频,因此音频类型可能会有所不同,预期来自本地设备的音频记录器。有人可以帮忙吗?谢谢。
查看完整描述

2 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

File像您在input.filesFileList中获得的对象一样,一个对象已经是Blob:


inp.onchange = e => 

  console.log(inp.files[0] instanceof Blob) // true

<input type="file" id="inp">

因此,您真正需要的就是直接将此文件传递给您的库:


$('#audioFileInput').on('change', function () {

  var file = this.files[0];

  surfTheBlob(file);

});


查看完整回答
反对 回复 2021-05-27
  • 2 回答
  • 0 关注
  • 442 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信