mirror of
https://github.com/ThaUnknown/miru.git
synced 2026-05-04 15:48:54 +00:00
fix: hold to FF pointer cancel
This commit is contained in:
parent
ad4ed78b76
commit
71d91d2a8e
2 changed files with 23 additions and 6 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "ui",
|
"name": "ui",
|
||||||
"version": "6.4.68",
|
"version": "6.4.69",
|
||||||
"license": "BUSL-1.1",
|
"license": "BUSL-1.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"packageManager": "pnpm@9.15.5",
|
"packageManager": "pnpm@9.15.5",
|
||||||
|
|
|
||||||
|
|
@ -154,10 +154,10 @@
|
||||||
})
|
})
|
||||||
|
|
||||||
function checkAudio () {
|
function checkAudio () {
|
||||||
if (video.audioTracks) {
|
if ('audioTracks' in HTMLVideoElement.prototype && video.audioTracks) {
|
||||||
if (!video.audioTracks.length) {
|
if (!video.audioTracks.length) {
|
||||||
toast.error('Audio Codec Unsupported', {
|
toast.error('Audio Codec Unsupported', {
|
||||||
description: "This torrent's audio codec is not supported, try a different release by disabling Autoplay Torrents in RSS settings."
|
description: "This torrent's audio codec is not supported, try a different release by disabling Autoplay Torrents in Torrent settings. You can also use external players like MPV."
|
||||||
})
|
})
|
||||||
} else if (video.audioTracks.length > 1) {
|
} else if (video.audioTracks.length > 1) {
|
||||||
const preferredTrack = [...video.audioTracks].find(({ language }) => language === $settings.audioLanguage)
|
const preferredTrack = [...video.audioTracks].find(({ language }) => language === $settings.audioLanguage)
|
||||||
|
|
@ -166,6 +166,15 @@
|
||||||
const japaneseTrack = [...video.audioTracks].find(({ language }) => language === 'jpn')
|
const japaneseTrack = [...video.audioTracks].find(({ language }) => language === 'jpn')
|
||||||
if (japaneseTrack) return selectAudio(japaneseTrack.id)
|
if (japaneseTrack) return selectAudio(japaneseTrack.id)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
video.requestVideoFrameCallback(() => {
|
||||||
|
// using capturestream.getAudioTracks() could work too
|
||||||
|
if ('webkitAudioDecodedByteCount' in video && video.webkitAudioDecodedByteCount === 0) {
|
||||||
|
toast.error('Audio Codec Unsupported', {
|
||||||
|
description: "This torrent's audio codec is not supported, try a different release by disabling Autoplay Torrents in Torrent settings. You can also use external players like MPV."
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function selectAudio (id: string) {
|
function selectAudio (id: string) {
|
||||||
|
|
@ -691,6 +700,7 @@
|
||||||
let timeout = 0
|
let timeout = 0
|
||||||
let oldPlaybackRate = playbackRate
|
let oldPlaybackRate = playbackRate
|
||||||
const startFF = () => {
|
const startFF = () => {
|
||||||
|
clearTimeout(timeout)
|
||||||
timeout = setTimeout(() => {
|
timeout = setTimeout(() => {
|
||||||
paused = false
|
paused = false
|
||||||
fastForwarding = true
|
fastForwarding = true
|
||||||
|
|
@ -706,20 +716,27 @@
|
||||||
paused = true
|
paused = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
document.addEventListener(type + 'down' as 'keydown' | 'pointerdown', (event) => {
|
document.addEventListener(type + 'down' as 'keydown' | 'pointerdown', event => {
|
||||||
if (isMiniplayer) return
|
if (isMiniplayer) return
|
||||||
if ('code' in event && (event.code !== 'Space')) return
|
if ('code' in event && (event.code !== 'Space')) return
|
||||||
if ('button' in event && event.button !== 0) return
|
if ('button' in event && event.button !== 0) return
|
||||||
if ('pointerId' in event) document.setPointerCapture(event.pointerId)
|
if ('pointerId' in event) {
|
||||||
|
document.setPointerCapture(event.pointerId)
|
||||||
|
}
|
||||||
startFF()
|
startFF()
|
||||||
}, { signal: ctrl.signal })
|
}, { signal: ctrl.signal })
|
||||||
document.addEventListener(type + 'up' as 'keyup' | 'pointerup', (event) => {
|
document.addEventListener(type + 'up' as 'keyup' | 'pointerup', event => {
|
||||||
if (isMiniplayer) return
|
if (isMiniplayer) return
|
||||||
if ('code' in event && event.code !== 'Space') return
|
if ('code' in event && event.code !== 'Space') return
|
||||||
if ('pointerId' in event) document.releasePointerCapture(event.pointerId)
|
if ('pointerId' in event) document.releasePointerCapture(event.pointerId)
|
||||||
endFF()
|
endFF()
|
||||||
}, { signal: ctrl.signal })
|
}, { signal: ctrl.signal })
|
||||||
|
|
||||||
|
document.addEventListener('pointercancel', event => {
|
||||||
|
document.releasePointerCapture(event.pointerId)
|
||||||
|
endFF()
|
||||||
|
}, { signal: ctrl.signal })
|
||||||
|
|
||||||
return { destroy: () => ctrl.abort() }
|
return { destroy: () => ctrl.abort() }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue