Lofi-Radio / audioPlayer.js
Ivan000's picture
Upload 5 files
27630e2 verified
raw
history blame contribute delete
950 Bytes
export class AudioPlayer {
constructor(audioContext, url) {
this.audioContext = audioContext;
this.audio = new Audio();
this.audio.crossOrigin = 'anonymous';
this.audio.src = url;
this.gainNode = this.audioContext.createGain();
this.analyser = this.audioContext.createAnalyser();
this.source = this.audioContext.createMediaElementSource(this.audio);
this.source.connect(this.analyser);
this.analyser.connect(this.gainNode);
this.gainNode.connect(this.audioContext.destination);
this.isPlaying = false;
// Set fixed volume
this.gainNode.gain.value = 0.5;
}
play() {
this.audioContext.resume();
this.audio.play();
this.isPlaying = true;
}
pause() {
this.audio.pause();
this.isPlaying = false;
}
connectAnalyser(analyser) {
this.source.disconnect(this.analyser);
this.source.connect(analyser);
analyser.connect(this.gainNode);
}
}