From 22eba43979a14a682e67d92203bd7125d3346057 Mon Sep 17 00:00:00 2001 From: ward Date: Mon, 9 Jun 2025 15:31:20 +1200 Subject: [PATCH] Added default playback rate --- materialious/electron/package-lock.json | 4 ++-- materialious/src/lib/components/Player.svelte | 10 +++++++-- .../src/lib/components/Settings/Player.svelte | 22 +++++++++++++++++++ materialious/src/lib/const.ts | 1 + materialious/src/lib/externalSettings.ts | 12 ++++++++-- materialious/src/lib/i18n/locales/en.json | 3 ++- materialious/src/lib/store.ts | 1 + 7 files changed, 46 insertions(+), 7 deletions(-) create mode 100644 materialious/src/lib/const.ts diff --git a/materialious/electron/package-lock.json b/materialious/electron/package-lock.json index 77d7bcaf..57dc1239 100644 --- a/materialious/electron/package-lock.json +++ b/materialious/electron/package-lock.json @@ -1,12 +1,12 @@ { "name": "Materialious", - "version": "1.9.4", + "version": "1.9.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "Materialious", - "version": "1.9.4", + "version": "1.9.5", "license": "MIT", "dependencies": { "@capacitor-community/electron": "^5.0.0", diff --git a/materialious/src/lib/components/Player.svelte b/materialious/src/lib/components/Player.svelte index 0356526a..3724477d 100644 --- a/materialious/src/lib/components/Player.svelte +++ b/materialious/src/lib/components/Player.svelte @@ -27,6 +27,7 @@ playerAndroidLockOrientation, playerAutoPlayStore, playerDefaultLanguage, + playerDefaultPlaybackSpeed, playerDefaultQualityStore, playerProxyVideosStore, playerSavePlaybackPositionStore, @@ -41,6 +42,7 @@ import { getDynamicTheme, setStatusBarColor } from '../theme'; import { injectSABR } from '$lib/sabr'; import { patchYoutubeJs } from '$lib/patches/youtubejs'; + import { playbackRates } from '$lib/const'; interface Props { data: { video: VideoPlay; content: PhasedDescription; playlistId: string | null }; @@ -317,9 +319,13 @@ ui('#snackbar-alert'); } - restoreQualityPreference(); + restoreQualityPreference(); restoreDefaultLanguage(); + if ($playerDefaultPlaybackSpeed && playerElement) { + console.log('$playerDefaultPlaybackSpeed', $playerDefaultPlaybackSpeed); + playerElement.playbackRate = $playerDefaultPlaybackSpeed; + } } async function reloadVideo() { @@ -394,7 +400,7 @@ 'language', 'statistics' ], - playbackRates: [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.25, 2.5, 2.75, 3], + playbackRates: playbackRates, enableTooltips: false, seekBarColors: { played: (await getDynamicTheme())['--primary'] diff --git a/materialious/src/lib/components/Settings/Player.svelte b/materialious/src/lib/components/Settings/Player.svelte index d8e381ce..38ecdd61 100644 --- a/materialious/src/lib/components/Settings/Player.svelte +++ b/materialious/src/lib/components/Settings/Player.svelte @@ -10,6 +10,7 @@ playerAutoPlayStore, playerAutoplayNextByDefaultStore, playerDefaultLanguage, + playerDefaultPlaybackSpeed, playerDefaultQualityStore, playerProxyVideosStore, playerSavePlaybackPositionStore, @@ -17,6 +18,7 @@ playerYouTubeJsAlways, playerYouTubeJsFallback } from '../../store'; + import { playbackRates } from '$lib/const'; let defaultLanguage = $state(get(playerDefaultLanguage)); @@ -36,6 +38,11 @@ playerDefaultQualityStore.set(value); } + function onSpeedChange(event: Event) { + const value = (event.target as HTMLSelectElement).value; + playerDefaultPlaybackSpeed.set(Number(value)); + } + function onLocalVideoFallbackChange() { switch (localVideoFallback) { case 'enabled': @@ -90,6 +97,21 @@ arrow_drop_down +
+ + + arrow_drop_down +
+ {#if Capacitor.isNativePlatform()}