If you have the right container/encoding format (my experience is that it works well with mkv) you can even start watching a video file locally with VLC while wget is still downloading it via HTTP... works amazingly well.
Agree - audioserve is now handling this with quite simple trick - just cache ahead couple of tracks/files from current folder (aka audiobook), so responsibility is move to client.
Surprisingly this simple trick did work for me for years (as I'm intensive user of audioserve). It kind of depends on file/chapter duration - but for most common cases - which are beetween 5 mins to say 90 mins it did work fine.
Historically only Android client was using this caching, but with new web client https://github.com/izderadicka/audioserve-web and broad Service Worker support in browsers it is also available in browser.
I mean, you can just serve mp3 files over HTTP. The browser can download the whole file, and load it until whatever mp3 playing library there is.
This is exactly what I did for my first personal project that landed me an internship at FANG. My music player had a pretty nice UI at the time ( Yahoo music days ), but music players from professionals like Yahoo or Spotify ( web player released one year later ) is that they are resilient to network failure, rather than assuming the mp3 file downloaded it one go, that it would be fast, and you can just point your JavaScript library at it, now that it's cached by the browser and can be loaded into memory.