我试图捕捉用户上传的音频,将其转换为Blob,然后使用wavesurfer.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
另一个问题是,由于用户可能自己上传音频,音频类型可能会有所不同,预计来自本地设备音频记录器。有人能帮忙吗?谢谢.
3条答案
按热度按时间4bbkushb1#
一个
File
对象,就像你在input.files
文件列表中得到的对象一样,已经是一个Blob:因此,您真正需要的是将此文件直接传递到您的库:
zour9fqk2#
已经找到答案了。
干杯!干杯!
smdncfj33#
我知道这可能是一个老主题,但有最好的方法来做到这一点: