html5 webrtc语音,HTML5 WebRTC 捕捉麦克风声音并输出到文件 [Deprecated]

JavaScript

语言:

JaveScriptBabelCoffeeScript

确定

navigator.getUserMedia || (navigator.getUserMedia = navigator.mozGetUserMedia || navigator.webkitGetUserMedia || navigator.msGetUserMedia);

if (!navigator.getUserMedia) {

console.log("your browser does not have mediastream support");

}

var btn = document.getElementById('run');

btn.onclick = startRecord;

function startRecord(e) {

navigator.getUserMedia({

//video: true,

audio: true

}, onSuccess, onError);

function onSuccess(stream) {

//创建一个音频环境对像

audioContext = window.AudioContext || window.webkitAudioContext;

context = new audioContext();

//将声音输入这个对像

audioInput = context.createMediaStreamSources(stream);

console.log("将声音输入这个对像");

//设置音量节点

volume = context.createGain();

audioInput.connect(volume);

console.log("设置音量节点");

//创建缓存,用来缓存声音

var bufferSize = 2048;

console.log("创建缓存,用来缓存声音");

// 创建声音的缓存节点,createJavaScriptNode方法的

// 第二个和第三个参数指的是输入和输出都是双声道。

recorder = context.createJavaScriptNode(bufferSize, 2, 2);

// 录音过程的回调函数,基本上是将左右两声道的声音

// 分别放入缓存。

recorder.onaudioprocess = function(e) {

console.log('recording');

var left = e.inputBuffer.getChannelData(0);

var right = e.inputBuffer.getChannelData(1);

// we clone the samples

leftchannel.push(new Float32Array(left));

rightchannel.push(new Float32Array(right));

recordingLength += bufferSize;

}

// 将音量节点连上缓存节点,换言之,音量节点是输入

// 和输出的中间环节。

volume.connect(recorder);

// 将缓存节点连上输出的目的地,可以是扩音器,也可以

// 是音频文件。

recorder.connect(context.destination);

}

function onError() {}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值