mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-23 05:41:20 -08:00
30 lines
1.0 KiB
TypeScript
30 lines
1.0 KiB
TypeScript
import type { SubtitleOffsetHost } from '../subtitle/types'
|
|
import { clamp, def } from '../utils'
|
|
|
|
export default function subtitleOffsetMix(art: SubtitleOffsetHost): void {
|
|
const { notice, i18n, template } = art
|
|
|
|
def(art, 'subtitleOffset', {
|
|
get() {
|
|
return template.$track?.offset || 0
|
|
},
|
|
set(value: number) {
|
|
const { cues } = art.subtitle
|
|
if (!template.$track || cues.length === 0)
|
|
return
|
|
const offset = clamp(value, -10, 10)
|
|
template.$track.offset = offset
|
|
for (let index = 0; index < cues.length; index++) {
|
|
const cue = cues[index]!
|
|
cue.originalStartTime = cue.originalStartTime ?? cue.startTime
|
|
cue.originalEndTime = cue.originalEndTime ?? cue.endTime
|
|
cue.startTime = clamp(cue.originalStartTime + offset, 0, art.duration)
|
|
cue.endTime = clamp(cue.originalEndTime + offset, 0, art.duration)
|
|
}
|
|
art.subtitle.update()
|
|
notice.show = `${i18n.get('Subtitle Offset')}: ${value}s`
|
|
art.emit('subtitleOffset', value)
|
|
},
|
|
})
|
|
}
|