有没有办法在我还在录音的时候播放我正在录音的音频?
这是我的代码。我正在录制音频,每次音频 block 准备就绪时,都会调用 onaudioprocess
。它接收 AudioProcessingEvent
的实例。我不熟悉 Web Audio API,所以我不确定该怎么做才能收听它。我想让我的扬声器输出声音。
function startRecording(stream){
var context = new AudioContext();
var audio_input = context.createMediaStreamSource(stream);
var buffer_size = 2048;
var recorder = context.createScriptProcessor(buffer_size, 1, 1);
recorder.onaudioprocess = function(e){
// var data = e.inputBuffer.getChannelData(0);
// AudioStream.write(data);
var source = context.createBufferSource();
source.buffer = e.inputBuffer;
source.connect(context.destination);
source.start(0);
console.log(e.inputBuffer)
};
audio_input.connect(recorder);
recorder.connect(context.destination);
}
onaudioprocess
中的代码不起作用。控制台中没有错误,但没有任何反应。
e.inputBuffer
的输出看起来不错:
AudioBuffer {长度:4096,持续时间:0.09287981859410431,采样率:44100,numberOfChannels:1}
最佳答案
阅读有关音频处理事件的信息 https://webaudio.github.io/web-audio-api/#dom-audioprocessingevent到 查看 onprocess 事件的作用。你基本上需要复制 事件 inputBuffer 到 outputBuffer 你就可以听到 音频。
关于javascript - 使用 Web Audio API 播放录制的音频 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47460935/