diff --git a/frontend/src/components/player/AudioPlayerConfig.vue b/frontend/src/components/player/AudioPlayerConfig.vue
index 89473f2..51cac75 100644
--- a/frontend/src/components/player/AudioPlayerConfig.vue
+++ b/frontend/src/components/player/AudioPlayerConfig.vue
@@ -154,13 +154,16 @@
+
@@ -403,6 +452,8 @@ export default defineComponent({
speeds: [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2],
animStyles: ["gradient", "rainbow", "", "none"],
+ speedNum: Math.floor(this.speed * 100),
+
subtitles: "",
subtitlesSizes: ["s", "m", "l", "xl", "xxl"],
@@ -493,6 +544,16 @@ export default defineComponent({
this.focus();
},
+ goToCustomSpeed: function (e?: Event) {
+ if (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ }
+
+ this.page = "speed-custom";
+ this.focus();
+ },
+
renderSpeed: function (speed: number) {
if (speed > 1) {
return Math.floor(speed * 100) + "%";
@@ -619,6 +680,14 @@ export default defineComponent({
this.saveCustomSubtitleSize();
},
+ updateSpeedNum: function () {
+ if (typeof this.speedNum !== "number" || isNaN(this.speedNum) || this.speedNum < 0.1) {
+ return;
+ }
+
+ this.speedState = this.speedNum / 100;
+ },
+
clickOnEnter: function (event: KeyboardEvent) {
if (event.key === "Enter") {
event.preventDefault();
@@ -666,6 +735,9 @@ export default defineComponent({
}
this.subSizeCustomNum = this.subSizeCustom;
},
+ speed: function () {
+ this.speedNum = Math.floor(this.speed * 100);
+ },
},
});
diff --git a/frontend/src/components/player/VideoPlayerConfig.vue b/frontend/src/components/player/VideoPlayerConfig.vue
index e4edfd6..ecaa2a0 100644
--- a/frontend/src/components/player/VideoPlayerConfig.vue
+++ b/frontend/src/components/player/VideoPlayerConfig.vue
@@ -177,7 +177,9 @@
{{ $t("Playback speed") }}
|
- |
+
+ {{ $t("Custom") }}
+ |
@@ -186,6 +188,51 @@
|
|
+
+
+
+ {{ $t("Custom") }}: {{ renderSpeed(speed) }}
+ |
+ |
+
+
+
+