Compare commits
11 Commits
75d935dd03
...
1be817733d
Author | SHA1 | Date |
---|---|---|
renovate[bot] | 1be817733d | |
github-actions[bot] | e82c2fbf61 | |
Ghost of Sparta | f3e707efd2 | |
0que | 6d80fb42df | |
Matthaiks | 064b7c409a | |
Oğuz Ersen | 3e560bf4ba | |
github-actions[bot] | b9cea6e4cd | |
Priit Jõerüüt | 9727295a16 | |
Matthaiks | debc10a899 | |
Bnyro | a43d56984d | |
Bnyro | cdb9d0188a |
|
@ -31,16 +31,32 @@
|
|||
class="absolute top-8 rounded bg-black/80 p-2 text-lg backdrop-blur-sm"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<ModalComponent v-if="showSpeedModal" @close="showSpeedModal = false">
|
||||
<h2 v-t="'actions.playback_speed'" />
|
||||
<div class="flex flex-col">
|
||||
<input
|
||||
v-model="playbackSpeedInput"
|
||||
class="input my-3"
|
||||
type="text"
|
||||
:placeholder="$t('actions.playback_speed')"
|
||||
@keyup.enter="setSpeedFromInput()"
|
||||
/>
|
||||
<button v-t="'actions.okay'" class="btn ml-auto w-min" @click="setSpeedFromInput()" />
|
||||
</div>
|
||||
</ModalComponent>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import "shaka-player/dist/controls.css";
|
||||
import { parseTimeParam } from "@/utils/Misc";
|
||||
import ModalComponent from "./ModalComponent.vue";
|
||||
|
||||
const shaka = import("shaka-player/dist/shaka-player.ui.js");
|
||||
const hotkeys = import("hotkeys-js");
|
||||
|
||||
export default {
|
||||
components: { ModalComponent },
|
||||
props: {
|
||||
video: {
|
||||
type: Object,
|
||||
|
@ -66,6 +82,8 @@ export default {
|
|||
destroying: false,
|
||||
inSegment: false,
|
||||
isHoveringTimebar: false,
|
||||
showSpeedModal: false,
|
||||
playbackSpeedInput: null,
|
||||
currentTime: 0,
|
||||
seekbarPadding: 2,
|
||||
error: 0,
|
||||
|
@ -106,7 +124,7 @@ export default {
|
|||
this.hotkeysPromise.then(() => {
|
||||
var self = this;
|
||||
this.$hotkeys(
|
||||
"f,m,j,k,l,c,space,up,down,left,right,0,1,2,3,4,5,6,7,8,9,shift+n,shift+,,shift+.,alt+p,return,.,,",
|
||||
"f,m,j,k,l,c,space,up,down,left,right,0,1,2,3,4,5,6,7,8,9,shift+n,shift+s,shift+,,shift+.,alt+p,return,.,,",
|
||||
function (e, handler) {
|
||||
const videoEl = self.$refs.videoEl;
|
||||
switch (handler.key) {
|
||||
|
@ -196,11 +214,14 @@ export default {
|
|||
self.$emit("navigateNext");
|
||||
e.preventDefault();
|
||||
break;
|
||||
case "shift+s":
|
||||
self.showSpeedModal = true;
|
||||
break;
|
||||
case "shift+,":
|
||||
self.$player.trickPlay(Math.max(videoEl.playbackRate - 0.25, 0.25));
|
||||
self.adjustPlaybackSpeed(videoEl.playbackRate - 0.25);
|
||||
break;
|
||||
case "shift+.":
|
||||
self.$player.trickPlay(Math.min(videoEl.playbackRate + 0.25, 2));
|
||||
self.adjustPlaybackSpeed(videoEl.playbackRate + 0.25);
|
||||
break;
|
||||
case "alt+p":
|
||||
document.pictureInPictureElement
|
||||
|
@ -651,7 +672,19 @@ export default {
|
|||
this.$refs.videoEl.currentTime = time;
|
||||
}
|
||||
},
|
||||
|
||||
adjustPlaybackSpeed(newSpeed) {
|
||||
const normalizedSpeed = Math.min(4, Math.max(0.25, newSpeed));
|
||||
this.$player.trickPlay(normalizedSpeed);
|
||||
},
|
||||
setSpeedFromInput() {
|
||||
try {
|
||||
const newSpeed = Number(this.playbackSpeedInput);
|
||||
this.adjustPlaybackSpeed(newSpeed);
|
||||
} catch (err) {
|
||||
alert(this.$t("actions.invalid_input"));
|
||||
}
|
||||
this.showSpeedModal = false;
|
||||
},
|
||||
updateMarkers() {
|
||||
const markers = this.$refs.container.querySelector(".shaka-ad-markers");
|
||||
const array = ["to right"];
|
||||
|
|
|
@ -158,7 +158,9 @@
|
|||
"invalid_url": "Invalid URL!",
|
||||
"add": "Add",
|
||||
"creator_replied": "Creator replied",
|
||||
"creator_liked": "Creator liked"
|
||||
"creator_liked": "Creator liked",
|
||||
"playback_speed": "Playback speed",
|
||||
"invalid_input": "Invalid input"
|
||||
},
|
||||
"comment": {
|
||||
"pinned_by": "Pinned by {author}",
|
||||
|
|
|
@ -156,7 +156,9 @@
|
|||
"customize": "Kohanda",
|
||||
"invalid_url": "Vigane URL!",
|
||||
"add": "Lisa",
|
||||
"delete_group_confirm": "Kas kustutame selle grupi?"
|
||||
"delete_group_confirm": "Kas kustutame selle grupi?",
|
||||
"creator_replied": "Autor vastas",
|
||||
"creator_liked": "Autorile meeldis see"
|
||||
},
|
||||
"preferences": {
|
||||
"has_cdn": "CDN'i olek?",
|
||||
|
|
|
@ -152,7 +152,11 @@
|
|||
"customize": "Testreszab",
|
||||
"invalid_url": "Érvénytelen URL!",
|
||||
"add": "Hozzáadás",
|
||||
"delete_group_confirm": "Törli ezt a csoportot?"
|
||||
"delete_group_confirm": "Törli ezt a csoportot?",
|
||||
"creator_replied": "A készítő válaszolt",
|
||||
"creator_liked": "A készítő kedvelte",
|
||||
"playback_speed": "Visszajátszási sebesség",
|
||||
"invalid_input": "Érvénytelen bevitel"
|
||||
},
|
||||
"video": {
|
||||
"ratings_disabled": "Értékelések Letiltva",
|
||||
|
|
|
@ -156,7 +156,11 @@
|
|||
"customize": "Dostosuj",
|
||||
"invalid_url": "Nieprawidłowy adres URL!",
|
||||
"add": "Dodaj",
|
||||
"delete_group_confirm": "Usunąć tę grupę?"
|
||||
"delete_group_confirm": "Usunąć tę grupę?",
|
||||
"creator_replied": "Twórca odpowiedział",
|
||||
"creator_liked": "Twórca polubił",
|
||||
"invalid_input": "Nieprawidłowe dane wejściowe",
|
||||
"playback_speed": "Szybkość odtwarzania"
|
||||
},
|
||||
"comment": {
|
||||
"pinned_by": "Przypięty przez {author}",
|
||||
|
|
|
@ -155,7 +155,12 @@
|
|||
"concurrent_prefetch_limit": "Предел одновременной предзагрузки трансляций",
|
||||
"customize": "Персонализация",
|
||||
"invalid_url": "Неправильная ссылка!",
|
||||
"add": "Добавить"
|
||||
"add": "Добавить",
|
||||
"creator_replied": "Ответ автора",
|
||||
"creator_liked": "Автор оценил",
|
||||
"playback_speed": "Скорость воспроизведения",
|
||||
"invalid_input": "Некорректный ввод",
|
||||
"delete_group_confirm": "Удалить группу?"
|
||||
},
|
||||
"comment": {
|
||||
"pinned_by": "Закреплено пользователем {author}",
|
||||
|
|
|
@ -132,7 +132,11 @@
|
|||
"invalid_url": "Geçersiz URL!",
|
||||
"customize": "Özelleştir",
|
||||
"add": "Ekle",
|
||||
"delete_group_confirm": "Bu grup silinsin mi?"
|
||||
"delete_group_confirm": "Bu grup silinsin mi?",
|
||||
"creator_replied": "Oluşturan yanıtladı",
|
||||
"creator_liked": "Oluşturan beğendi",
|
||||
"playback_speed": "Oynatma hızı",
|
||||
"invalid_input": "Geçersiz giriş"
|
||||
},
|
||||
"player": {
|
||||
"watch_on": "{0} üzerinde görüntüle",
|
||||
|
|
Loading…
Reference in New Issue