video-ad-sdk
Version:
VAST/VPAID SDK that allows video ads to be played on top of any player
34 lines (26 loc) • 673 B
text/typescript
import type {MediaFile} from '../../../types'
import {once} from '../dom/once'
export const updateMedia = (
videoElement: HTMLVideoElement,
mediaFile: MediaFile
): Promise<void> =>
new Promise<void>((resolve) => {
const state = {
currentTime: videoElement.currentTime,
playing: !videoElement.paused
}
if (state.playing) {
videoElement.pause()
}
if (mediaFile.src) {
videoElement.src = mediaFile.src
}
videoElement.load()
once(videoElement, 'loadeddata', () => {
videoElement.currentTime = state.currentTime
if (state.playing) {
videoElement.play()
}
resolve()
})
})