Browse Source

Add volume control for loops

tags/v0.1.2
Fen Dweller 6 years ago
parent
commit
4a37505161
1 changed files with 9 additions and 3 deletions
  1. +9
    -3
      audio.js

+ 9
- 3
audio.js View File

@@ -1,5 +1,6 @@
let playing = [];
let looping = {};
let loopGains = {};

let waiting = {};

@@ -45,8 +46,8 @@ function playSfx(name) {
src.start(0);
}

function playLoop(name) {
if (audioDict[name] == undefined) {
function playLoop(name, volume=1) {
if (audioDict[name] === undefined) {

if (waiting[name]) {
waiting[name].push({
@@ -59,6 +60,8 @@ function playLoop(name) {
console.error(name + " is not loaded yet, dingus");
return;
}
loopGains[name].gain.value = volume;

// if already playing, just keep going
if (looping[name] && !looping[name].done) {
@@ -68,7 +71,8 @@ function playLoop(name) {

let src = audioContext.createBufferSource();
src.buffer = audioDict[name];
src.connect(gainControl);
src.connect(loopGains[name]);
loopGains[name].connect(gainControl);

looping[name] = src;

@@ -132,6 +136,8 @@ function loadAudio(name, flush=false) {
return;
}

loopGains[name] = audioContext.createGain();

waiting[name] = [];

// is the audio already stored locally?


Loading…
Cancel
Save