如何将 p5.js soundFile 转换为文件 javascript class?

How to convert p5.js soundFile to file javascript class?

我正在使用 p5.js 库进行录音,但我需要将 soundFile 对象转换为 javascript 文件对象以将其发送到音频服务器。

如何实现这个?

我的代码是这样的:

mic = new p5.AudioIn();
mic.start();
recorder = new p5.SoundRecorder();
recorder.setInput(mic);
soundFile = new p5.SoundFile();

$("#record").on("click", function{
    recorder.record(soundFile);
})

$("#stop").on("click", function{
    recorder.stop();
})
$("#send").on("click", function{
    //here i need to convert soundFile object to file object 
    myuploadfile(file)
})

下面example you seek做一个录音和回放。在 saveSound(soundFile, 'mySound.wav'); 之后,您应该能够访问 soundFile.path 以获取路径。当然,这只会将 mySound.wav 下载到您的浏览器。

p5.sound 库在将其下载为 .wav 之前创建了一个 Blob 对象,您可以在 p5.prototype.writeFile.

上看到它

Blob 和文件之间的区别仅在于 2 个额外属性:日期和名称,因此,如果您想 "convert" 您的 blob 到文件,只需添加这 2 个属性:

function blobToFile(theBlob, fileName){
    //A Blob() is almost a File() - it's just missing the two properties below which we will add
    theBlob.lastModifiedDate = new Date();
    theBlob.name = fileName;
    return theBlob;
}

之后,您可以将输出作为 javascript 文件进行管理