Passando a un'altra app sul telefono musica e voce si fermano e la partita va in pausa

Nascosta la pagina il browser non disegna più fotogrammi, e la musica (che sfuma a ogni fotogramma) restava
accesa. Ora Music.setAway ferma subito tutti i brani; voce e musichetta del cartello si fermano, la partita va
in pausa e riparte con Riprendi. Nello stato: Campomigliaio si collega dal bivio, dopo La Luna.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ApqNBvNbNCwXqR2RLo8QJh
This commit is contained in:
2026-10-24 14:32:47 +02:00
co-authored by Claude Opus 5.5
parent b9d2f1161c
commit ee6c03a04d
5 changed files with 56 additions and 2 deletions
+9
View File
@@ -157,6 +157,15 @@ try {
await page.locator('#voice-volume').fill('70');
assert.deepEqual(await page.evaluate(() => JSON.parse(localStorage.getItem('leggenda-regolo-audio'))), { volume: 0.3, muted: false, voices: 0.7 });
assert.equal(await page.evaluate(() => voices.volume), 0.7);
// Sul telefono si passa a un'altra app: la pagina diventa nascosta, la musica si ferma subito e la partita va in
// pausa; tornando la musica riparte solo con Riprendi (la pausa la tiene ferma).
const hide = hidden => page.evaluate(h => { Object.defineProperty(document, 'hidden', { value: h, configurable: true }); document.dispatchEvent(new Event('visibilitychange')); }, hidden);
await hide(true);
assert.ok(await page.evaluate(() => music.current.audio.paused), 'nascosta la pagina, la musica è ferma');
assert.ok(await page.isVisible('#pause'), 'e la partita è in pausa');
await hide(false);
await page.click('#resume');
await page.waitForFunction(() => !music.current.audio.paused, null, { timeout: 5000 });
for (const [verb, target, item] of solution) {
if (verb === 'choose') {