mirror of
https://github.com/ThaUnknown/miru.git
synced 2026-04-20 00:12:19 +00:00
feat: pause on lost focus, autoplaynext
fix: keybinds activating in other windows
This commit is contained in:
parent
ae7744e966
commit
5b97c7f0cb
2 changed files with 79 additions and 62 deletions
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "Miru",
|
||||
"version": "0.2.0",
|
||||
"version": "0.3.1",
|
||||
"author": "ThaUnknown_",
|
||||
"main": "src/index.js",
|
||||
"scripts": {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
<script context="module">
|
||||
import { set } from './Settings.svelte'
|
||||
import { playAnime } from '../RSSView.svelte'
|
||||
export let media = null
|
||||
let fileMedia = null
|
||||
|
|
@ -242,6 +243,19 @@
|
|||
function toggleMute() {
|
||||
muted = !muted
|
||||
}
|
||||
document.addEventListener('visibilitychange', () => {
|
||||
if (!video.ended && set.playerPause) {
|
||||
if (document.visibilityState === 'hidden') {
|
||||
wasPaused = paused
|
||||
paused = true
|
||||
} else {
|
||||
if (wasPaused) paused = false
|
||||
}
|
||||
}
|
||||
})
|
||||
function tryPlayNext() {
|
||||
if (set.playerAutoplay) playNext()
|
||||
}
|
||||
function playNext() {
|
||||
const index = videos.indexOf(current)
|
||||
if (index + 2 < videos.length) {
|
||||
|
|
@ -334,67 +348,69 @@
|
|||
}
|
||||
let showKeybinds = false
|
||||
async function handleKeydown({ key }) {
|
||||
switch (key) {
|
||||
case 'r':
|
||||
seek(-90)
|
||||
break
|
||||
case ',':
|
||||
seek(-1 / (await video.fps) || 0)
|
||||
break
|
||||
case '.':
|
||||
seek(1 / (await video.fps) || 0)
|
||||
break
|
||||
case 'i':
|
||||
toggleStats()
|
||||
break
|
||||
case '`':
|
||||
showKeybinds = !showKeybinds
|
||||
break
|
||||
case ' ':
|
||||
playPause()
|
||||
break
|
||||
case 'n':
|
||||
playNext()
|
||||
break
|
||||
case 'm':
|
||||
muted = !muted
|
||||
break
|
||||
case 'p':
|
||||
togglePopout()
|
||||
break
|
||||
case 'f':
|
||||
toggleFullscreen()
|
||||
break
|
||||
case 's':
|
||||
seek(85)
|
||||
break
|
||||
case 'd':
|
||||
toggleCast()
|
||||
break
|
||||
case 'c':
|
||||
cycleSubtitles()
|
||||
break
|
||||
case 'ArrowLeft':
|
||||
rewind()
|
||||
break
|
||||
case 'ArrowRight':
|
||||
forward()
|
||||
break
|
||||
case 'ArrowUp':
|
||||
volume = Math.min(1, volume + 0.05)
|
||||
break
|
||||
case 'ArrowDown':
|
||||
volume = Math.max(0, volume - 0.05)
|
||||
break
|
||||
case '[':
|
||||
playbackRate -= 0.1
|
||||
break
|
||||
case ']':
|
||||
playbackRate += 0.1
|
||||
break
|
||||
case '\\':
|
||||
playbackRate = 1
|
||||
break
|
||||
if (!miniplayer) {
|
||||
switch (key) {
|
||||
case 'r':
|
||||
seek(-90)
|
||||
break
|
||||
case ',':
|
||||
seek(-1 / (await video.fps) || 0)
|
||||
break
|
||||
case '.':
|
||||
seek(1 / (await video.fps) || 0)
|
||||
break
|
||||
case 'i':
|
||||
toggleStats()
|
||||
break
|
||||
case '`':
|
||||
showKeybinds = !showKeybinds
|
||||
break
|
||||
case ' ':
|
||||
playPause()
|
||||
break
|
||||
case 'n':
|
||||
playNext()
|
||||
break
|
||||
case 'm':
|
||||
muted = !muted
|
||||
break
|
||||
case 'p':
|
||||
togglePopout()
|
||||
break
|
||||
case 'f':
|
||||
toggleFullscreen()
|
||||
break
|
||||
case 's':
|
||||
seek(85)
|
||||
break
|
||||
case 'd':
|
||||
toggleCast()
|
||||
break
|
||||
case 'c':
|
||||
cycleSubtitles()
|
||||
break
|
||||
case 'ArrowLeft':
|
||||
rewind()
|
||||
break
|
||||
case 'ArrowRight':
|
||||
forward()
|
||||
break
|
||||
case 'ArrowUp':
|
||||
volume = Math.min(1, volume + 0.05)
|
||||
break
|
||||
case 'ArrowDown':
|
||||
volume = Math.max(0, volume - 0.05)
|
||||
break
|
||||
case '[':
|
||||
playbackRate -= 0.1
|
||||
break
|
||||
case ']':
|
||||
playbackRate += 0.1
|
||||
break
|
||||
case '\\':
|
||||
playbackRate = 1
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -719,6 +735,7 @@
|
|||
on:loadeddata={hideBuffering}
|
||||
on:canplay={hideBuffering}
|
||||
on:playing={hideBuffering}
|
||||
on:ended={tryPlayNext}
|
||||
on:loadedmetadata={hideBuffering}
|
||||
on:loadedmetadata={getFPS}
|
||||
on:loadedmetadata={initThumbnails}
|
||||
|
|
|
|||
Loading…
Reference in a new issue