video-ad-sdk
Version:
VAST/VPAID SDK that allows video ads to be played on top of any player
39 lines (32 loc) • 903 B
text/typescript
import {VideoAdContainer} from '../../../../adContainer'
import type {CancelFunction} from '../../../../types'
import {linearEvents} from '../../../../tracker'
const {pause, resume} = linearEvents
export const onPlayPause = (
{videoElement}: VideoAdContainer,
callback: (event: string) => void
): CancelFunction => {
let started = false
let paused = true
const playHandler = (): void => {
if (!started) {
started = true
paused = false
} else if (paused) {
paused = false
callback(resume)
}
}
const pauseHandler = (): void => {
if (!paused) {
paused = true
callback(pause)
}
}
videoElement.addEventListener('play', playHandler)
videoElement.addEventListener('pause', pauseHandler)
return () => {
videoElement.removeEventListener('play', playHandler)
videoElement.removeEventListener('pause', pauseHandler)
}
}