Переглянути джерело

Add volume control for loops

tags/v0.1.2
Fen Dweller 6 роки тому
джерело
коміт
4a37505161
1 змінених файлів з 9 додано та 3 видалено
  1. +9
    -3
      audio.js

+ 9
- 3
audio.js Переглянути файл

@@ -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?


Завантаження…
Відмінити
Зберегти