diff --git a/packages/artplayer-plugin-vast/package.json b/packages/artplayer-plugin-vast/package.json index a8b370c7e..fda5f77b7 100644 --- a/packages/artplayer-plugin-vast/package.json +++ b/packages/artplayer-plugin-vast/package.json @@ -1,6 +1,6 @@ { "name": "artplayer-plugin-vast", - "version": "1.0.1", + "version": "1.0.2", "description": "VAST plugin for ArtPlayer", "author": "Harvey Zack ", "license": "MIT", diff --git a/packages/artplayer-plugin-vast/src/index.js b/packages/artplayer-plugin-vast/src/index.js index a2c8058fd..561afc201 100644 --- a/packages/artplayer-plugin-vast/src/index.js +++ b/packages/artplayer-plugin-vast/src/index.js @@ -37,35 +37,38 @@ export default function artplayerPluginVast(callback) { } function initPlayer() { + if (imaPlayer) + return imaPlayer + $container = createContainer() $player.appendChild($container) + imaPlayer = new Player(ima, $video, $container, adsRenderingSettings, playerOptions) - // ✅ 事件绑定 - imaPlayer.onAdStarted = () => { + imaPlayer.addEventListener('AdStarted', () => { isAdPlaying = true $container.style.display = 'block' - art.pause() - } + }) - imaPlayer.onAdEnd = () => { + imaPlayer.addEventListener('AdComplete', () => { isAdPlaying = false $container.style.display = 'none' - art.play() - } + }) - imaPlayer.onAdError = (error) => { - console.error('VAST Ad Error:', error) + imaPlayer.addEventListener('AdError', (event) => { + console.error('VAST Ad Error:', event.detail) isAdPlaying = false $container.style.display = 'none' - art.play() - } + }) + + return imaPlayer } function destroyPlayer() { - if ($container && $container.parentNode) { + if (imaPlayer?.destroy) + imaPlayer.destroy() + if ($container?.parentNode) $container.parentNode.removeChild($container) - } $container = null imaPlayer = null }