-
v2.5.60
StableAll checks were successfulRelease / Test backend (push) Successful in 37sRelease / Check ui (push) Successful in 56sRelease / Docker / caddy (push) Successful in 41sRelease / Docker / backend (push) Successful in 2m53sRelease / Docker / runner (push) Successful in 3m13sRelease / Docker / ui (push) Successful in 2m25sRelease / Gitea Release (push) Successful in 50sreleased this
2026-04-04 18:22:09 +05:00 | -363 commits to main since this releaseWithout explicit setActionHandler('play'/'pause'/...) the browser uses
default handling which on iOS Safari stops working after ~1 min of
pause in background/locked state (AudioSession gets suspended and the
lock screen button can't resume it without a direct user gesture).Registering handlers in the layout (where audioEl lives) ensures:
- play/pause call audioEl directly — iOS treats this as a trusted
gesture and allows .play() even from the lock screen - seekbackward/seekforward map to ±15s / ±30s
- playbackState stays in sync so the lock screen shows the right icon
Downloads
- play/pause call audioEl directly — iOS treats this as a trusted