1
8
Fork
You've already forked nup
0

Implement gapless playback in web client #78

Open
opened 2024年02月09日 15:18:31 +01:00 by derat · 1 comment
Owner
Copy link

Right now, audio-wrapper exposes a preloadSrc property that can be set to create an audio element that can be quickly swapped in if src is set to the same URL later. This seems to work well enough, although there's usually a tiny audible hiccup between tracks.

https://dalecurtis.github.io/llama-demo/index.html provides guidance about doing gapless playback using Media Source Extensions, but it requires a lot of work (e.g. parsing LAME or iTunes headers to know how many empty samples there are at the beginnings and ends of song files, and downloading song data and manually copying it into a MediaSource).

I doubt I'll feel inspired to implement proper gapless playback, and I don't even know how much of my music contains the necessary metadata, but I'm filing this to remove a TODO from the code.

Right now, `audio-wrapper` exposes a `preloadSrc` property that can be set to create an `audio` element that can be quickly swapped in if `src` is set to the same URL later. This seems to work well enough, although there's usually a tiny audible hiccup between tracks. https://dalecurtis.github.io/llama-demo/index.html provides guidance about doing gapless playback using Media Source Extensions, but it requires a lot of work (e.g. parsing LAME or iTunes headers to know how many empty samples there are at the beginnings and ends of song files, and downloading song data and manually copying it into a `MediaSource`). I doubt I'll feel inspired to implement proper gapless playback, and I don't even know how much of my music contains the necessary metadata, but I'm filing this to remove a TODO from the code.
Author
Owner
Copy link

Chrome is incapable of decoding an MP3 and streaming it over Bluetooth without occasionally skipping, at least on a Chromebook, so I don't think it's currently worth spending any time on this.

Chrome is incapable of decoding an MP3 and streaming it over Bluetooth without occasionally skipping, at least on a Chromebook, so I don't think it's currently worth spending any time on this.
Sign in to join this conversation.
No Branch/Tag specified
main
headless
picture
datastore
No results found.
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
derat/nup#78
Reference in a new issue
derat/nup
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?