javascript - 使用 Web Audio API 播放录制的音频 block

标签 javascript html audio webrtc web-audio-api

有没有办法在我还在录音的时候播放我正在录音的音频?

这是我的代码。我正在录制音频,每次音频 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/

相关文章:

javascript - 如何在调试器 :///VM* files in Google Chrome Devtools 中访问和搜索代码

html - Animate.css 不工作不知道为什么?

css - 使全屏div从顶部向下动画

iPhone SDK修剪音频文件

c# - 在.net中处理pcm wav流

javascript - 鉴于 ES2015、依赖注入(inject)和库抽象,我理想的模块在 2016 年应该是什么样子?

javascript - 有没有更简洁的方法来使用 lodash 从数组中删除条目?

javascript - 如何用 JavaScript 在 Canvas 上绘制圆 Angular 矩形的下半部分

jquery - GitHub 如何在不重新加载页面的情况下更改 URL?

ios - 使用音频单元播放多个重叠的短音频文件