UNPKG

aves_slim

Version:

Audio spectrum analyzer written in type script. Developed using web audio api.

40 lines (36 loc) 1.16 kB
export default class { public audioCtx: AudioContext public sampleRate: number public audioBuffer: AudioBuffer public source: AudioBufferSourceNode public sourceElement: MediaElementAudioSourceNode public audioElement: HTMLMediaElement // private constructor() { if (!window) { throw new Error('Window object not found!!') } this.audioCtx = new AudioContext() this.sampleRate = this.audioCtx.sampleRate this.source = this.audioCtx.createBufferSource() this.source.connect(this.audioCtx.destination) } decodeAudio(audioData: ArrayBuffer): Promise<AudioBufferSourceNode> { return this.audioCtx.decodeAudioData(audioData).then((buffer: AudioBuffer) => { this.audioBuffer = buffer this.source.buffer = buffer return this.source }) } setAudioElement(audioElement: HTMLMediaElement) { this.sourceElement = this.audioCtx.createMediaElementSource(audioElement) this.sourceElement.connect(this.audioCtx.destination) this.audioElement = audioElement } start() { this.source.start(0) } stop() { this.source.stop() } }