나는이 다음 코드를 사용하여 사용자의 마이크의 실시간 수준을 얻을 수있는 HTML5 webkitAudioContext을 사용하고 있습니다 : 복사하는 경우HTML5 오디오 버퍼 갇히지
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 < buffer.length; i++) {
if (maxVal < buffer[i]) {
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();
을하고 콘솔에이 붙여 손가락을 클릭 마이크 근처에서 (마이크 입력을 사용한다고 가정하면) 몇 초 동안 작동 한 다음 갑자기 멈 춥니 다. 오류를보고하지 않습니다. 아무도 이것이 왜 일어나는 지 설명 할 수 있습니까? 감사합니다.
레벨이 올바르게 작동하는 예제는 http://labs.dinahmoe.com/dynamicmusicengine/을 참조하십시오.
이 버그 ...이 버그가 싫습니다. https://code.google.com/p/chromium/issues/detail?id=82795 – Brad