JSFiddle - React, Tailwind, and code Playground
HTML
<div id="result">running</div>
JavaScript
var result = 'Running';
var setResult = function () {
var resultEl = document.getElementById('result');
resultEl.innerHTML = "<span>" + result + "</span>";
};
setResult();
var audio = document.createElement('audio');
audio.src = 'http://upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg';
var context = typeof AudioContext !== 'undefined' ? new AudioContext() : new webkitAudioContext();
var analyser = context.createAnalyser();
var source = context.createMediaElementSource(audio);
source.connect(analyser);
var started = function () {
console.log('started');
data = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(data);
for (var i = 0; i < data.length; i++) {
var freq = data[i];
console.log(freq);
if (freq && freq > 0) {
console.log(i, freq);
result = 'passed';
setResult();
break;
}
}
};
audio.addEventListener('canplaythrough', function () {
console.log('canplay');
audio.play();
window.setTimeout(started, 100);
});
window.setTimeout(function () {
if (result !== 'passed') result = 'failed';
setResult();
}, 3000);