Visualisierung der Mikrofon-Aufzeichnung
(EN google-translate)
(PL google-translate)
Bekannte Probleme:
  | 
<!DOCTYPE html>
<html>
    <head lang="de">
        <meta charset="iso-8859-1">
         <script language:javascript>
            var malkontext = null;
            function prozess(e)
            {
                var data = e.inputBuffer.getChannelData(0);
                malkontext.fillStyle = "#000000";
                malkontext.fillRect(0,0,1024,1000);
                malkontext.strokeStyle="#ffffff";
                malkontext.beginPath();
                var x1 = 0;
                var y1 = data[0]*200+200;
                malkontext.moveTo(x1,y1);
                for (var i = 1; i < data.length; i++) 
                {
                    var x2 = i;
                    var y2 = data[i]*200+200;
                    malkontext.lineTo(x2,y2);
                }
                malkontext.stroke();
            }
            function initialisieren(e)
            {                    
                    malkontext = document.getElementById("grafik").getContext("2d"); 
                    var context = new (window.AudioContext || window.webkitAudioContext)();
                    var volume = context.createGain(); //Ohne Volume-Knoten bleibt der Eingang stumm!
                    var audioInput = context.createMediaStreamSource(e);
                    audioInput.connect(volume);
                    //1. Param.: Erlaubte Puffergroessen: 256, 512, 1024, 2048, 4096, 8192, 16384
                    //2. Param.: Anzahl der Input-Kanaele
                    //3. Param.: Anzahl der Output-Kanaele
                    //Fehler bei Chrome, wenn nicht mindestens ein Output!
                    //var node = context.createScriptProcessor(1024, 1, 0);
                    var node = context.createScriptProcessor(1024, 1, 1);
                    node.onaudioprocess = function(e) { prozess(e) };
                    volume.connect (node);
                    volume.gain.value=1.0;
                    node.connect(context.destination); //"record"
            }
            if (!navigator.getUserMedia)
            {
                  navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia ||
                      navigator.mozGetUserMedia || navigator.msGetUserMedia;
            }
            if (navigator.getUserMedia) 
            {
                //Mikrofon-Zugriff beim Benutzer anfordern
                navigator.getUserMedia({audio:true}, initialisieren, function(e) {
                alert('Error capturing audio.');
                });
            } 
            else 
            {
                alert('getUserMedia not supported in this browser.');
            }
      </script>
    </head>
    <body>
    <canvas id="grafik" width="1024" height="400"></canvas>    
    </body>
</html>
Code 0-1: Minimalsistischer Code zur Demonstration der Visualisierung von Mikrofondaten.