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);