mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 23:05:46 +00:00
6ea0acede5
* 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.
58 lines
1.9 KiB
TypeScript
58 lines
1.9 KiB
TypeScript
export const player = {
|
|
regionLabel: 'Muziekspeler',
|
|
openFullscreen: 'Volledig-schermspeler openen',
|
|
fullscreen: 'Volledig-schermspeler',
|
|
closeFullscreen: 'Volledig scherm sluiten',
|
|
closeTooltip: 'Sluiten (Escape)',
|
|
noTitle: 'Geen titel',
|
|
stop: 'Stoppen',
|
|
prev: 'Vorig nummer',
|
|
play: 'Afspelen',
|
|
pause: 'Pauzeren',
|
|
bufferingStream: 'Loading track from server',
|
|
previewActive: 'Voorbeeld speelt af',
|
|
previewLabel: 'Voorbeeld',
|
|
delayModalTitle: 'Timer',
|
|
delayPauseSection: 'Pauzeren na',
|
|
delayStartSection: 'Starten na',
|
|
delayPreviewPause: 'Pauze om',
|
|
delayPreviewStart: 'Start om',
|
|
delaySchedulePause: 'Pauze plannen',
|
|
delayScheduleStart: 'Start plannen',
|
|
delayCancelPause: 'Pauze-timer annuleren',
|
|
delayCancelStart: 'Start-timer annuleren',
|
|
delayInactivePause: 'Alleen beschikbaar tijdens afspelen.',
|
|
delayInactiveStart: 'Alleen in pauze met een geladen nummer of radio.',
|
|
delayCustomMinutes: 'Aangepaste vertraging (minuten)',
|
|
delayCustomPlaceholder: 'bijv. 2,5',
|
|
closeDelayModal: 'Sluiten',
|
|
delayIn: 'over',
|
|
delayFmtSec: '{{n}} s',
|
|
delayFmtMin: '{{n}} min',
|
|
delayFmtHr: '{{n}} u',
|
|
delayCancel: 'Annuleren',
|
|
delayApply: 'Toepassen',
|
|
next: 'Volgend nummer',
|
|
repeat: 'Herhalen',
|
|
repeatOff: 'Uit',
|
|
repeatAll: 'Alles',
|
|
repeatOne: 'Één',
|
|
progress: 'Nummervoortgang',
|
|
volume: 'Volume',
|
|
toggleQueue: 'Wachtrij in-/uitschakelen',
|
|
collapseQueueResize: 'Wachtrij inklappen, breedte wijzigen',
|
|
moreOptions: 'Meer opties',
|
|
equalizer: 'Equalizer',
|
|
miniPlayer: 'Minispeler',
|
|
lyrics: 'Songtekst',
|
|
fsLyricsToggle: 'Songtekst in volledig scherm',
|
|
lyricsLoading: 'Songtekst laden…',
|
|
lyricsNotFound: 'Geen songtekst gevonden voor dit nummer',
|
|
lyricsSourceServer: 'Bron: Server',
|
|
lyricsSourceLrclib: 'Bron: LRCLIB',
|
|
lyricsSourceNetease: 'Bron: Netease',
|
|
lyricsSourceLyricsplus: 'Bron: YouLyPlus',
|
|
showDuration: 'Toon duur',
|
|
showRemainingTime: 'Toon resterende tijd',
|
|
};
|