gpt4 book ai didi

javascript - 如何使用 javascript 从 Audio Element 录制音频

转载 作者:可可西里 更新时间:2023-11-01 13:30:25 27 4
gpt4 key购买 nike

我正在使用 HTML5 和 Javascript 制作录音机并且不想包含任何第三方 API,我在第一步中使用 <audio> 创建了一个音频检索器和播放器。标记和 navigator.webkitGetUserMedia从我的麦克风获取音频并通过 <audio> 播放的功能元素,但此时我无法获取数组中的音频数据,我不知道该做什么,该使用哪个函数。

最佳答案

只需创建一个音频节点即可,下面是来自 MattDiamond 的 RecorderJS 的调整代码:

function RecordAudio(stream, cfg){

var config = cfg || {};
var bufferLen = config.bufferLen || 4096;
var numChannels = config.numChannels || 2;
this.context = stream.context;
var recordBuffers = [];
var recording = false;
this.node = (this.context.createScriptProcessor ||
this.context.createJavaScriptNode).call(this.context,
bufferLen, numChannels, numChannels);


stream.connect(this.node);
this.node.connect(this.context.destination);

this.node.onaudioprocess = function(e){
if (!recording) return;
for (var i = 0; i < numChannels; i++){
if(!recordBuffers[i]) recordBuffers[i] = [];
recordBuffers[i].push.apply(recordBuffers[i], e.inputBuffer.getChannelData(i));
}
}

this.getData = function(){
var tmp = recordBuffers;
recordBuffers = [];
return tmp; // returns an array of array containing data from various channels
};

this.start() = function(){
recording = true;
};

this.stop() = function(){
recording = false;
};

}

示例用法:

var recorder = new RecordAudio(userMedia);
recorder.start();
recorder.stop();
var recordedData = recorder.getData();

关于javascript - 如何使用 javascript 从 Audio Element 录制音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30909901/

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