当前位置:   article > 正文

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

html获取麦克风

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() {}

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/685688
推荐阅读
相关标签
  

闽ICP备14008679号