| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>Test AnalyserNode when the input is scaled</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| single_test(); |
| var context = new AudioContext(); |
| |
| var gain = context.createGain(); |
| var analyser = context.createAnalyser(); |
| var osc = context.createOscillator(); |
| |
| osc.connect(gain); |
| gain.connect(analyser); |
| |
| osc.start(); |
| |
| var array = new Uint8Array(analyser.frequencyBinCount); |
| |
| function getAnalyserData() { |
| gain.gain.setValueAtTime(currentGain, context.currentTime); |
| analyser.getByteTimeDomainData(array); |
| var inrange = true; |
| var max = -1; |
| for (var i = 0; i < array.length; i++) { |
| if (array[i] > max) { |
| max = Math.abs(array[i] - 128); |
| } |
| } |
| if (max <= currentGain * 128) { |
| assert_true(true, "Analyser got scaled data for " + currentGain); |
| currentGain = tests.shift(); |
| if (currentGain == undefined) { |
| done(); |
| return; |
| } |
| } |
| requestAnimationFrame(getAnalyserData); |
| } |
| |
| var tests = [1.0, 0.5, 0.0]; |
| var currentGain = tests.shift(); |
| requestAnimationFrame(getAnalyserData); |
| </script> |
| </head> |
| </body> |
| </html> |