jaedb / Iris

Discover, explore and manage your music library across multiple sources with this beautiful web-based interface. Iris is a Mopidy frontend extension.
Apache License 2.0
1.13k stars 130 forks source link

More mature in-browser playback for Icecast streams #511

Closed jaedb closed 4 years ago

jaedb commented 4 years ago

Is your feature request related to a problem? Please describe. The Icecast implementation uses a simple HTML canvas wrapper, so the audio control is quite lacking. Skipping tracks can regularly start the audio stream from the beginning.

Describe the solution you'd like Using a plugin that handles the complex audio side of things (like HowlerJS) would make things a lot more seamless and avoid audio buffering/lag issues, and mean we can ditch the cachebuster workaround.

Describe alternatives you've considered None yet.

DDriggs00 commented 4 years ago

With the new in-browser playback, I think it would be nice to have the playback time bar synchronized with the music, because right now, it is about 5 sec ahead.

jaedb commented 4 years ago

@DDriggs00 I don't think that is something that can be fixed easily.

The delay between what Mopidy is playing vs Icecast vs your browser is variable. Your buffer settings in Icecast would also have an impact. There isn't any reliable way we can match Mopidy's play position with your browser's stream from Icecast (at best it could be inferred).

The other thing is that if you have multiple audio outputs (ie Snapcast and Icecast) then delaying by 5 seconds for Icecast would make Snapcast 5 seconds ahead.

I'm going to close this issue (the original work has been completed), but you are welcome to create a feature request (or better yet, a pull request with a suggestion of the approach) to address this if you wish.