test-analyser-minimum.html (1192B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>Test AnalyserNode when the input is silent</title> 6 <meta name="timeout" content="long"> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 <script> 10 setup({ single_test: true }); 11 var ac = new AudioContext(); 12 var analyser = ac.createAnalyser(); 13 var constant = ac.createConstantSource(); 14 var sp = ac.createScriptProcessor(2048, 1, 1); 15 16 constant.offset.value = 0.0; 17 18 constant.connect(analyser).connect(ac.destination); 19 20 constant.connect(sp).connect(ac.destination); 21 22 var buf = new Float32Array(analyser.frequencyBinCount); 23 var iteration_count = 10; 24 sp.onaudioprocess = function() { 25 analyser.getFloatFrequencyData(buf); 26 var correct = true; 27 for (var i = 0; i < buf.length; i++) { 28 correct &= buf[i] == -Infinity; 29 } 30 assert_true(!!correct, "silent input process -Infinity in decibel bins"); 31 if (!iteration_count--) { 32 sp.onaudioprocess = null; 33 constant.stop(); 34 ac.close(); 35 done(); 36 } 37 }; 38 39 constant.start(); 40 </script> 41 </head> 42 </body> 43 </html>