Musica su iPhone e iPad: il volume lì è di sola lettura, la dissolvenza non arrivava mai a zero e il brano vecchio restava sotto quello nuovo (organo e paese insieme nella Pieve). Il livello si tiene a parte e lo zero diventa muto; test che simula iOS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
This commit is contained in:
@@ -83,3 +83,20 @@ test('passando a un\'altra app la musica si ferma subito, e tornando riparte', (
|
||||
m.update('b.mp3', 0.1);
|
||||
assert.ok(now.paused, 'con la pausa aperta resta ferma');
|
||||
});
|
||||
|
||||
test('su iPhone (volume di sola lettura, sempre 1) il brano vecchio si ferma lo stesso: niente organo sopra il paese', () => {
|
||||
globalThis.Audio = class { constructor(src) { this.src = src; this.paused = true; this.muted = false; }
|
||||
get volume() { return 1; } set volume(v) {}
|
||||
play() { this.paused = false; return Promise.resolve(); } pause() { this.paused = true; } };
|
||||
const m = new Music({ volume: 0.6 });
|
||||
for (let i = 0; i < 20; i++) m.update('paese.mp3', 0.1);
|
||||
const paese = m.current.audio;
|
||||
for (let i = 0; i < 20; i++) m.update('pieve.mp3', 0.1);
|
||||
assert.ok(paese.paused, 'il brano del paese, sfumato, si è fermato');
|
||||
assert.deepEqual(m.old, []);
|
||||
assert.ok(!m.current.audio.paused && !m.current.audio.muted, 'suona solo l\'organo');
|
||||
m.muted = true;
|
||||
for (let i = 0; i < 20; i++) m.update('pieve.mp3', 0.1);
|
||||
assert.ok(m.current.audio.muted, 'il muto funziona anche dove il volume no');
|
||||
delete globalThis.Audio;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user