Как получить БПФ из тега аудио в HTML5

Я хочу получить данные БПФ из тега <audio>, но это не работает без синтаксической ошибки. Глядя на документ Web Audio API, я пишу пример кода, вот мой код:

<audio id="aud" controls="controls" src="test.mp3"></audio>

<script type="text/javascript">
var audioElement = document.getElementById("aud");
var audioContext = new webkitAudioContext();
var streamingAudioSource = audioContext.createMediaElementSource(audioElement);
var jsProcessor = audioContext.createJavaScriptNode(4096,1,1);
jsProcessor.onaudioprocess = process;
var analyser = audioContext.createAnalyser();
analyser.fftSize = 2048;

//streaming:AudioSource->jsProcessor->analyser->destination
streamingAudioSource.connect(jsProcessor);
jsProcessor.connect(analyser);
analyser.connect(audioContext.destination);
//autoplay
audioElement.play();
function process(event){
    var freqByteData = new Uint8Array(analyser.frequencyBinCount);
    analyser.getByteFrequencyData(freqByteData);
    document.getElementById("info").innerHTML=freqByteData[1];//show data in div
}
</script>

Моя версия Chrome — 20.0.1096.1 dev-m, и я думаю, что он работает хорошо. Через процесс()пытаюсь записать freqByteData, а он показывает 0, а у всех всегда 0. Должно быть, в моем коде что-то не так, и я хочу знать, как получить данные о частоте из аудиотега.

9
задан Drew Noakes 23 December 2012 в 17:21
поделиться