31 lines
734 B
TypeScript

import type { Video } from '../types/state'
export function register(el: HTMLVideoElement, state: Video) {
el.addEventListener('canplaythrough', () => {
state.playable = true
})
el.addEventListener('playing', () => {
state.playing = true
})
el.addEventListener('pause', () => {
state.playing = false
})
el.addEventListener('emptied', () => {
state.playable = false
state.playing = false
})
el.addEventListener('error', () => {
state.playable = false
state.playing = false
})
el.addEventListener('volumechange', () => {
state.muted = el.muted
state.volume = el.volume
})
// Initial state
state.muted = el.muted
state.volume = el.volume
state.playing = !el.paused
}