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

我正在尝试捕获用户上传的音频,将其转换为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

另一个问题是,由于用户可能自己上载了音频,因此音频类型可能会有所不同,预期来自本地设备的音频记录器。有人可以帮忙吗?谢谢。


缥缈止盈
浏览 448回答 2
2回答

慕工程0101907

File像您在input.filesFileList中获得的对象一样,一个对象已经是Blob:inp.onchange = e =>&nbsp;&nbsp; console.log(inp.files[0] instanceof Blob) // true<input type="file" id="inp">因此,您真正需要的就是直接将此文件传递给您的库:$('#audioFileInput').on('change', function () {&nbsp; var file = this.files[0];&nbsp; surfTheBlob(file);});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript