gpt4 book ai didi

html - HTML5 Web音频API-临时录制声音

转载 作者:行者123 更新时间:2023-12-03 02:12:09 24 4
gpt4 key购买 nike

我目前正在创建HTML5音乐编辑程序。
我从录制音频开始。
我想出了如何通过麦克风等进行访问。
来自“Recorder.js”的代码对我有很大帮助。

但是,我不想写入.wave文件,而是要创建一个临时音频缓冲区。
我从“onaudioprocess”事件中的inputtbuffer中获取了Float32Array,并将它们全部保存在一个Float32Array中。
现在,我有了一个带有值的数组,比方说记录的3秒。
现在,我想创建一个Audiobuffer来播放录制的声音(保存在该阵列中)。

在阅读[Webaudio API规范]时,1却没有发现用现有的Float32Array创建新的音频缓冲区的可能性。

也许我做错了录音,或者我只是盲目阅读。
我阅读的所有其他问题都链接到Recorder.js,但我不想先保存文件然后再加载。

有人知道吗?
太棒了。

感谢大家!

最佳答案

我对javascript很陌生,但我认为您的问题与我正在尝试做的事情相同,现在我找到了答案。如下所示,您无需调用recorder.exportWAV函数,而是调用recorder.getBuffer(getBufferCallback)函数。我希望这有帮助。这个对我有用。

function stopRecording() {
recorder.stop();
recorder.getBuffer(getBufferCallback);

//recorder.exportWAV(function(s) {
//source = window.URL.createObjectURL(s);
//audio.src = source;
//});
}

function getBufferCallback(buffers) {
window.newSource = context.createBufferSource();
window.buffers0 = buffers[0]; /*store the buffers in a variable so you can use them in future*/
window.buffers1 = buffers[1];

var newBuffer = context.createBuffer(2, window.buffers0.length, context.sampleRate);
newBuffer.getChannelData(0).set(window.buffers0);
newBuffer.getChannelData(1).set(window.buffers1);
window.newSource.buffer = newBuffer;
window.newSource.connect(context.destination);
window.newSource.start(0);
}

关于html - HTML5 Web音频API-临时录制声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23217969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com