fix shalom
This commit is contained in:
20
app.js
20
app.js
@@ -191,7 +191,7 @@
|
||||
},
|
||||
// ritorna una funzione stop(fadeSec) per interromperlo (utile per il loop)
|
||||
play(key, opts = {}) {
|
||||
const { vol = 0.8, loop = false, fallback } = opts;
|
||||
const { vol = 0.8, loop = false, fallback, gain } = opts;
|
||||
if (!Audio.on) return () => {};
|
||||
const base = this.el[key];
|
||||
if (!base || this.ready[key] === false) {
|
||||
@@ -201,6 +201,16 @@
|
||||
const a = loop ? base : base.cloneNode(); // clone -> più play sovrapposti
|
||||
a.loop = loop;
|
||||
a.volume = vol;
|
||||
// Boost oltre il max (1.0) solo per QUESTO suono: instrada l'elemento in
|
||||
// Web Audio con un GainNode dedicato (non tocca il volume globale).
|
||||
if (gain && gain > 1 && Audio.ctx) {
|
||||
try {
|
||||
const src = Audio.ctx.createMediaElementSource(a);
|
||||
const g = Audio.ctx.createGain();
|
||||
g.gain.value = gain;
|
||||
src.connect(g).connect(Audio.ctx.destination);
|
||||
} catch (e) {}
|
||||
}
|
||||
try {
|
||||
a.currentTime = 0;
|
||||
} catch (e) {}
|
||||
@@ -442,7 +452,8 @@
|
||||
showShalom(o, "mode-fire");
|
||||
screenShake();
|
||||
const stop = Samples.play("leone", {
|
||||
vol: 0.9,
|
||||
vol: 1.0,
|
||||
gain: 2.5, // ruggito più forte del resto (boost dedicato)
|
||||
fallback: () => Audio.jackpot(),
|
||||
});
|
||||
await shalomWait(null, 3500, o);
|
||||
@@ -455,15 +466,18 @@
|
||||
const o = ensureShalomOverlay();
|
||||
const v = o.querySelector(".shalom-video");
|
||||
showShalom(o, "mode-video");
|
||||
v.style.visibility = "hidden"; // primi 3s: solo musica, video nascosto
|
||||
const stop = Samples.play("shalom", {
|
||||
vol: 0.9,
|
||||
fallback: () => Audio.jackpot(),
|
||||
});
|
||||
await sleep(3000); // dopo 3s il video appare E parte insieme
|
||||
v.style.visibility = "";
|
||||
try {
|
||||
v.currentTime = 0;
|
||||
await v.play();
|
||||
} catch (e) {}
|
||||
await shalomWait(v, 14000, o);
|
||||
await shalomWait(v, 17000, o); // 3s musica + 17s video = 20s (o tap per skippare)
|
||||
if (stop) stop(0.4);
|
||||
hideShalom(o);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user