使用以下代码,我使用 HTML5 webkitAudioContext获得用户的麦克风实时级别:var liveSource;
function getLevel(){
var context = new webkitAudioContext();
navigator.webkitGetUserMedia({audio: true}, function(stream) {
liveSource = context.createMediaStreamSource(stream);
liveSource.connect(context.destination);
var levelChecker = context.createJavaScriptNode(4096, 1, 1);
liveSource.connect(levelChecker);
levelChecker.connect(context.destination);
levelChecker.onaudioprocess = function(e) {
var buffer = e.inputBuffer.getChannelData(0);
var maxVal = 0;
//Iterate through buffer to check if any of the |values| exceeds 1.
for (var i = 0; i
if (maxVal
maxVal = buffer[i];
}
}
if(maxVal <= 0.01){
console.log(0.0);
} else if(maxVal> 1){
console.log(1);
} else if(maxVal> 0.2){
console.log(0.2);
} else if(maxVal> 0.1){
console.log(0.1);
} else if(maxVal> 0.05){
console.log(0.05);
} else if(maxVal> 0.025){
console.log(0.025);
} else if(maxVal> 0.01){
console.log(0.01);
}
};
});
}
getLevel();
如果你复制并粘贴到你的控制台,然后点击你的麦克风( 假设你已经启用麦克风输入),你会看到它工作几秒钟。 它不报告任何错误。 谁能解释这发生的原因? 谢谢