tamland / airsonic-refix

Modern web UI for Subsonic compatible servers
GNU Affero General Public License v3.0
303 stars 48 forks source link

[Feature Request] Gapless playback #101

Open brian-doherty opened 1 year ago

brian-doherty commented 1 year ago

Gapless playback for live performances would be nice. Recommended implementation would be to replace standard HTML audio with https://github.com/regosen/Gapless-5

brian-doherty commented 1 year ago

Willing to take a stab at this but only if you think you actually might accept the PR.

archekb commented 1 year ago

And if you will do this, change the Queue from Vuex to Pinia, I think it will be better. I suppose we do not need two storages here.

brian-doherty commented 1 year ago

I will have a look but probably not this week as I have a business trip.

archekb commented 1 year ago

I try gapeless player on iphone, for test controls on the lock screen and playing stopped when I push the power button (have no controls on lock screen). I test with this link: https://ccrma.stanford.edu/~regosen/gapless5/

I found another player https://github.com/ableplayer/ableplayer and it works with the iphone. Test link: https://ableplayer.github.io/ableplayer/demos/playlist1-audio.html play / pause / +10 sec / -10 sec all controls are works on lock screen and on unlock mode (on browser page).

Right now for airsonic-refix on the iphone controls not works on the lock screen and in unlock mode in the browser it not works too. I suppose we should test player (which we want implement to airsonic-refix) for support different platforms. Right now i think ableplayer will be better variant than gapless5.

archekb commented 1 year ago

I was a little bit wrong, controls are works on iphone, if it open on browser window, but not works for preview (as in telegram or watsapp etc.). I found another one library https://howlerjs.com/ with the same behavior. ableplayer only one who works on preview. After a few tests, ableplayer show best result for delay of starting play (on ios) and better compatible with ios controls, on Android, all players has the same behavior.