У вас есть тон сэмплов и уроков здесь: http://www.html5rocks.com/en/tutorials/#webaudio
На данный момент он работает в последнем Chrome и последнем последнем Firefox (Opera?).
Демоверсии: http://www.chromeexperiments.com/tag/audio/
Чтобы сделать это сейчас, для всех посетителей веб-сайта вы можете проверить SoundManagerV2.js, которые проходят через флэш-прокси, для доступа к аудиоданным http://www.schillmania.com/projects/soundmanager2/demo/api/ (они уже работают на ядре HTML5, выпустить его, как только браузеры его реализуют)
Возможность рисовать на холсте 3 разных аудиоданных: WaveForm, Equalizer и Peak.
soundManager.defaultOptions.whileplaying = function() { // AUDIO analyzer !!!
$document.trigger({ // DISPATCH ALL DATA RELATIVE TO AUDIO STREAM // AUDIO ANALYZER
type : 'musicLoader:whileplaying',
sound : {
position : this.position, // In milliseconds
duration : this.duration,
waveformDataLeft : this.waveformData.left, // Array of 256 floating-point (three decimal place) values from -1 to 1
waveformDataRight: this.waveformData.right,
eqDataLeft : this.eqData.left, // Containing two arrays of 256 floating-point (three decimal place) values from 0 to 1
eqDataRight : this.eqData.right, // ... , the result of an FFT on the waveform data. Can be used to draw a spectrum (frequency range)
peakDataLeft : this.peakData.left, // Floating-point values ranging from 0 to 1, indicating "peak" (volume) level
peakDataRight : this.peakData.right
}
});
};
С HTML5 вы можете получить:
var freqByteData = new Uint8Array(analyser.frequencyBinCount);
var timeByteData = new Uint8Array(analyser.frequencyBinCount);
function onaudioprocess() {
analyser.getByteFrequencyData(freqByteData);
analyser.getByteTimeDomainData(timeByteData);
/* draw your canvas */
}
Время работать! ;)