PDA

View Full Version : مشکل در canvas



sm2amsm2am
دوشنبه 28 دی 1394, 21:28 عصر
سلام
کد زیر میزان صدای میکروفون رو به صورت در لحظه نشون میده
مشکلی که هست اینه که level رو از بالای canvas شروع می کنه... میخوام از پایین شروع بشه...
ممنون







<canvas id="leveler" style="width:50px;height:100px;"></canvas>

<script>

var audioContext = new AudioContext();
var max_level_L = 0;
var old_level_L = 0;
var cnvs_cntxt = leveler.getContext('2d');
navigator.getUserMedia({audio:true, video:false}, function(stream){
var microphone = audioContext.createMediaStreamSource(stream);
var javascriptNode = audioContext.createScriptProcessor(1024, 1, 1);
microphone.connect(javascriptNode);
javascriptNode.connect(audioContext.destination);
javascriptNode.onaudioprocess = function(event){
var inpt_L = event.inputBuffer.getChannelData(0);
var instant_L = 0.0;var sum_L = 0.0;
for(var i = 0; i < inpt_L.length; ++i) {
sum_L += inpt_L[i] * inpt_L[i];
}
instant_L = Math.sqrt(sum_L / inpt_L.length);
max_level_L = Math.max(max_level_L, instant_L);
instant_L = Math.max( instant_L, old_level_L -0.008 );
old_level_L = instant_L;
cnvs_cntxt.clearRect(0, 0, leveler.width, leveler.height);
cnvs_cntxt.fillStyle = '#fe2222';
cnvs_cntxt.fillRect(0,0,(leveler.width),(leveler.h eight)*(instant_L/max_level_L));
}},function(error){ alert(error); });

</script>