Skip to content

Duetto 1.0.1

Latest

Choose a tag to compare

@avisforevelyn avisforevelyn released this 04 Jul 19:35

listen together, in tune.

A playback-robustness release — background listening on iOS is now solid.

Fixed

  • Background auto-advance rebuilt — track advancement and prefetch now live in a plain module cursor (window.__lsAdv), mutated synchronously inside the ended handler. React state is frozen in a backgrounded iOS tab, so the old React-driven advance died after one hop.
  • The real culprit of silent background playback: preload='auto' — the audio element eagerly downloaded the whole file the moment src was set, and iOS cuts that network off in the background. Now preload='none': the address is set instantly, bytes load on play(), which iOS allows.
  • "Advances but pauses" — a track finishing naturally fires a pause event that used to knock the just-advanced next track back into pause. Now guarded (internal-load window + ended check).
  • Personal FM keeps flowing — the module cursor stays in sync when FM batches extend the queue, and switching from FM to a playlist properly escapes the FM queue kind.
  • Updates actually reach installed PWAsindex.html and the web manifest are served with no-cache.

Upgrade: git pull and restart the service — no schema or config changes.