Background music support
This commit is contained in:
1 parent
2ed630a9cd
commit
2912061094
2 files changed
+23
-5
No files matched your search
+21
-4
@@ -1,13 +1,30 @@
|
||||
// @ts-ignore
|
||||
export const audio = new (window.AudioContext || window.webkitAudioContext)();
|
||||
export const gain = audio.createGain(audio);
|
||||
gain.gain.setValueAtTime(0.05, audio.currentTime);
|
||||
gain.connect(audio.destination);
|
||||
|
||||
export const music = audio.createGain(audio);
|
||||
music.gain.setValueAtTime(0.4, audio.currentTime);
|
||||
music.connect(audio.destination);
|
||||
|
||||
export const sfx = audio.createGain(audio);
|
||||
sfx.gain.setValueAtTime(0.05, audio.currentTime);
|
||||
sfx.connect(audio.destination);
|
||||
|
||||
export async function createAudioLoop(src) {
|
||||
const file = await fetch(src);
|
||||
const buffer = await file.arrayBuffer();
|
||||
const source = audio.createBufferSource();
|
||||
audio.decodeAudioData(buffer, (buffer) => {
|
||||
source.buffer = buffer;
|
||||
source.connect(music);
|
||||
source.loop = true;
|
||||
source.start(0);
|
||||
})
|
||||
}
|
||||
|
||||
export function createOsc() {
|
||||
const osc = audio.createOscillator();
|
||||
osc.type = 'triangle';
|
||||
osc.connect(gain);
|
||||
osc.connect(sfx);
|
||||
return osc;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user