您现在可以通过创建将本地 MediaStream 连接到 ScriptProcessingNode 的音频图从麦克风进行录制:
navigator.webkitGetUserMedia({video: true, audio: true}, function(stream) {
var audioContext = new webkitAudioContext,
mediaStreamSource = context.createMediaStreamSource(stream),
processor = context.createJavaScriptNode(4096, 2, 2);
processor.onaudioprocess = function(e) {
// Process the audio data found in e.inputBuffer
};
mediaStreamSource.connect(processor);
processor.connect(context.destination);
});
(使用 Chrome 供应商前缀)
您可以将其连接到 Websockets 甚至普通 XHR 以将块发送到您的服务器,服务器可以将其处理成音频文件。您需要将每个频道从
非交错 IEEE 32 位线性 PCM,标称范围为 -1 -> +1
成您选择的格式。
可以在此处找到录制音频、将其编码为 wav 文件并保存(所有客户端)的类似示例:
https://github.com/muaz-khan/WebRTC-Experiment/tree/master/RecordRTC
有关 AudioContext 的更多详细信息:
http://docs.webplatform.org/wiki/apis/webaudio/AudioContext