AudioAnalyser.js 705 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /**
  2. * @author mrdoob / http://mrdoob.com/
  3. */
  4. function AudioAnalyser( audio, fftSize ) {
  5. this.analyser = audio.context.createAnalyser();
  6. this.analyser.fftSize = fftSize !== undefined ? fftSize : 2048;
  7. this.data = new Uint8Array( this.analyser.frequencyBinCount );
  8. audio.getOutput().connect( this.analyser );
  9. }
  10. Object.assign( AudioAnalyser.prototype, {
  11. getFrequencyData: function () {
  12. this.analyser.getByteFrequencyData( this.data );
  13. return this.data;
  14. },
  15. getAverageFrequency: function () {
  16. var value = 0, data = this.getFrequencyData();
  17. for ( var i = 0; i < data.length; i ++ ) {
  18. value += data[ i ];
  19. }
  20. return value / data.length;
  21. }
  22. } );
  23. export { AudioAnalyser };