Media · Audio and controls: player, waveform, spectrum, volume, speed, transport and playlist

AudioPlayer sets a song's cover, title and artist over a scrubber with
the time played and left, the transport and the volume. AudioWaveform
draws peaks gathered to the bars that fit, dark as far as it has played,
and seeks by press, drag and keys, with the time tip the scrubber shares.
AudioSpectrum shows levels by pitch. VolumeControl mutes from its speaker,
and moving its slider while muted unmutes. PlaybackSpeedControl picks from
a menu. MediaControls holds shuffle, back, play, forward and repeat.
Playlist builds on SelectableList: the song under way is lit with moving
bars, and Enter or a double press plays another.

The video player's bar now rests while the stage itself holds focus, a
key it takes wakes the bar, and a press on a resting bar only wakes it.
This commit is contained in:
ZacharyZhang-NY committed 2026-09-26 18:32:45 -04:00
1 parent 1ac50e4002
commit 04f88812dc
24 files changed
+1824 -81

No files matched your search

+2 -1
View File
@@ -91,7 +91,7 @@ Per-component lines live in `tasks/`. Tags there:
- [x] T25f Generative · Data and prompts
- [x] T26a Media · Images
- [x] T26b Media · Crop and annotate
- [ ] T26c Media · Video
- [x] T26c Media · Video
- [ ] T26d Media · Audio and controls
- [ ] T26e Media · Capture and devices
- [ ] T27 Files
@@ -313,3 +313,4 @@ Per-component lines live in `tasks/`. Tags there:
| T26b | 2 | PASS | |
| T26c | 1 | FAIL | the caption faded with the controls; Space on a focused bar button acted twice; Command letters fired the player and the strip; a long caption, cue words and the scrubber's tip ran past their boxes at 280px |
| T26c | 2 | FAIL | the bar's fade restarted an animation id per rest and wake, which rebuilt the scrubber's drag, hover and focus under it |
| T26c | 3 | PASS | |