mirror of
https://github.com/kilyabin/psysonic.git
synced 2026-07-22 06:25:41 +00:00
feat(playback): stream buffering UI, M4A moov-at-end streaming, hot-cache spill (#737)
* feat(playback): stream buffering UI, ranged M4A tail prefetch, demuxer fix Defer seekbar/progress until HTTP stream is armed for both legacy and RangedHttpSource; show buffering overlay on cover art. Add MP4 tail prefetch and Symphonia isomp4 bounded-mdat/moov-at-EOF probing so moov-at-end M4A can start without reading the full mdat. * feat(hot-cache): spill large ranged streams to disk for promote When a ranged HTTP download completes above the 64 MiB RAM promote cap, write the existing buffer once to app-data stream-spill/ and register it for hot-cache promote (rename) and replay via fetch_data. Analysis seeds from the spill file up to the local-file cap (512 MiB). * fix(ui): stream buffering — grayscale cover and static clock icon Desaturate player and queue cover art while isPlaybackBuffering; keep a non-animated clock overlay for visibility without the spinning animation. * fix(playback): review follow-up — tests, i18n, spill cleanup, changelog Clippy and test layout fixes; stream spill orphan cleanup on startup; buffering flag guard in progress handler; bufferingStream in all player locales; CHANGELOG and contributor credits for stream/M4A work. * docs: attribute stream buffering and M4A streaming to PR #737 * test(audio): avoid create_engine in stream spill unit test CI runners have no audio output device; test spill take/consume via the Mutex slot only, matching install_stream_completed_spill tests.
This commit is contained in:
@@ -9,6 +9,7 @@ export const player = {
|
||||
prev: 'Vorheriger Titel',
|
||||
play: 'Play',
|
||||
pause: 'Pause',
|
||||
bufferingStream: 'Loading track from server',
|
||||
previewActive: 'Vorschau läuft',
|
||||
previewLabel: 'Vorschau',
|
||||
delayModalTitle: 'Timer',
|
||||
|
||||
@@ -9,6 +9,7 @@ export const player = {
|
||||
prev: 'Previous Track',
|
||||
play: 'Play',
|
||||
pause: 'Pause',
|
||||
bufferingStream: 'Loading track from server',
|
||||
previewActive: 'Preview playing',
|
||||
previewLabel: 'Preview',
|
||||
delayModalTitle: 'Timer',
|
||||
|
||||
@@ -9,6 +9,7 @@ export const player = {
|
||||
prev: 'Pista Anterior',
|
||||
play: 'Reproducir',
|
||||
pause: 'Pausa',
|
||||
bufferingStream: 'Loading track from server',
|
||||
previewActive: 'Vista previa activa',
|
||||
previewLabel: 'Vista previa',
|
||||
delayModalTitle: 'Temporizador',
|
||||
|
||||
@@ -9,6 +9,7 @@ export const player = {
|
||||
prev: 'Piste précédente',
|
||||
play: 'Lecture',
|
||||
pause: 'Pause',
|
||||
bufferingStream: 'Loading track from server',
|
||||
previewActive: 'Aperçu en cours',
|
||||
previewLabel: 'Aperçu',
|
||||
delayModalTitle: 'Minuteur',
|
||||
|
||||
@@ -9,6 +9,7 @@ export const player = {
|
||||
prev: 'Forrige spor',
|
||||
play: 'Spill av',
|
||||
pause: 'Pause',
|
||||
bufferingStream: 'Loading track from server',
|
||||
previewActive: 'Forhåndsvisning spilles av',
|
||||
previewLabel: 'Forhåndsvisning',
|
||||
delayModalTitle: 'Tidsur',
|
||||
|
||||
@@ -9,6 +9,7 @@ export const player = {
|
||||
prev: 'Vorig nummer',
|
||||
play: 'Afspelen',
|
||||
pause: 'Pauzeren',
|
||||
bufferingStream: 'Loading track from server',
|
||||
previewActive: 'Voorbeeld speelt af',
|
||||
previewLabel: 'Voorbeeld',
|
||||
delayModalTitle: 'Timer',
|
||||
|
||||
@@ -9,6 +9,7 @@ export const player = {
|
||||
prev: 'Piesa anterioară',
|
||||
play: 'Redă',
|
||||
pause: 'Pauză',
|
||||
bufferingStream: 'Loading track from server',
|
||||
previewActive: 'Previzualizează redarea',
|
||||
previewLabel: 'Previzualizare',
|
||||
delayModalTitle: 'Temporizator',
|
||||
|
||||
@@ -9,6 +9,7 @@ export const player = {
|
||||
prev: 'Предыдущий трек',
|
||||
play: 'Играть',
|
||||
pause: 'Пауза',
|
||||
bufferingStream: 'Загрузка трека с сервера',
|
||||
previewActive: 'Превью воспроизводится',
|
||||
previewLabel: 'Превью',
|
||||
delayModalTitle: 'Таймер',
|
||||
|
||||
@@ -9,6 +9,7 @@ export const player = {
|
||||
prev: '上一首',
|
||||
play: '播放',
|
||||
pause: '暂停',
|
||||
bufferingStream: 'Loading track from server',
|
||||
previewActive: '正在试听',
|
||||
previewLabel: '试听',
|
||||
delayModalTitle: '定时',
|
||||
|
||||
Reference in New Issue
Block a user