@capgo/capacitor-video-player 8.2.10 → 8.2.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web-utils/video-types.js","esm/web-utils/videoplayer.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst VideoPlayer = registerPlugin('VideoPlayer', {\n web: () => import('./web').then((m) => new m.VideoPlayerWeb()),\n});\nexport * from './definitions';\nexport { VideoPlayer };\n//# sourceMappingURL=index.js.map","export const possibleQueryParameterExtensions = ['file', 'extension', 'filetype', 'type', 'ext'];\nexport const videoTypes = {\n mp4: 'video/mp4',\n webm: 'video/mp4',\n cmaf: 'video/mp4',\n cmfv: 'video/mp4',\n m3u8: 'application/x-mpegURL',\n};\n//# sourceMappingURL=video-types.js.map","import Hls from 'hls.js';\nimport { videoTypes, possibleQueryParameterExtensions } from './video-types';\nexport class VideoPlayer {\n constructor(mode, url, playerId, rate, exitOnEnd, loopOnEnd, container, zIndex, width, height) {\n this.pipMode = false;\n this.isHidden = false;\n this._videoType = null;\n this._videoContainer = null;\n this._firstReadyToPlay = true;\n this._isEnded = false;\n this._videoRate = 1.0;\n this._videoExitOnEnd = true;\n this._videoLoopOnEnd = false;\n this._previousContainerDisplay = null;\n this._url = url;\n this._container = container;\n this._mode = mode;\n this._width = width ? width : 320;\n this._height = height ? height : 180;\n this._mode = mode;\n this._videoRate = rate;\n this._zIndex = zIndex ? zIndex : 1;\n this._playerId = playerId;\n this._videoExitOnEnd = exitOnEnd;\n this._videoLoopOnEnd = loopOnEnd;\n }\n async initialize() {\n // get the video type\n const urlVideoType = this._getVideoType();\n if (urlVideoType) {\n // style the container\n if (this._mode === 'fullscreen') {\n this._container.style.position = 'absolute';\n this._container.style.width = '100vw';\n this._container.style.height = '100vh';\n }\n if (this._mode === 'embedded') {\n this._container.style.position = 'relative';\n this._container.style.width = this._width.toString() + 'px';\n this._container.style.height = this._height.toString() + 'px';\n }\n this._container.style.left = '0';\n this._container.style.top = '0';\n this._container.style.display = 'flex';\n this._container.style.alignItems = 'center';\n this._container.style.justifyContent = 'center';\n this._container.style.backgroundColor = '#000000';\n this._container.style.zIndex = this._zIndex.toString();\n const width = this._mode === 'fullscreen' ? window.innerWidth /*this._container.offsetWidth*/ : this._width;\n const height = this._mode === 'fullscreen' ? window.innerHeight /*this._container.offsetHeight*/ : this._height;\n const xmlns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(xmlns, 'svg');\n svg.setAttributeNS(null, 'width', width.toString());\n svg.setAttributeNS(null, 'height', height.toString());\n const viewbox = '0 0 ' + width.toString() + ' ' + height.toString();\n svg.setAttributeNS(null, 'viewBox', viewbox);\n svg.style.zIndex = (this._zIndex + 1).toString();\n const rect = document.createElementNS(xmlns, 'rect');\n rect.setAttributeNS(null, 'x', '0');\n rect.setAttributeNS(null, 'y', '0');\n rect.setAttributeNS(null, 'width', width.toString());\n rect.setAttributeNS(null, 'height', height.toString());\n rect.setAttributeNS(null, 'fill', '#000000');\n svg.appendChild(rect);\n this._container.appendChild(svg);\n const heightVideo = (width * this._height) / this._width;\n this._videoContainer = document.createElement('div');\n this._videoContainer.style.position = 'absolute';\n this._videoContainer.style.left = '0';\n this._videoContainer.style.width = width.toString() + 'px';\n this._videoContainer.style.height = heightVideo.toString() + 'px';\n this._videoContainer.style.zIndex = (this._zIndex + 2).toString();\n this._container.appendChild(this._videoContainer);\n /* Create Video Element */\n const isCreated = await this.createVideoElement(width, heightVideo);\n if (!isCreated) {\n this._createEvent('Exit', this._playerId, 'Video Error: failed to create the Video Element');\n }\n }\n else {\n this._createEvent('Exit', this._playerId, 'Url Error: type not supported');\n }\n return;\n }\n hide() {\n var _a, _b, _c, _d;\n if (this.isHidden)\n return;\n this.isHidden = true;\n if (this._mode === 'fullscreen') {\n this._closeFullscreen();\n }\n if (this._previousContainerDisplay == null) {\n this._previousContainerDisplay = (_c = (_b = (_a = this._container) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.display) !== null && _c !== void 0 ? _c : '';\n }\n if ((_d = this._container) === null || _d === void 0 ? void 0 : _d.style) {\n this._container.style.display = 'none';\n }\n }\n show() {\n var _a, _b;\n if (!this.isHidden)\n return;\n this.isHidden = false;\n if ((_a = this._container) === null || _a === void 0 ? void 0 : _a.style) {\n this._container.style.display = (_b = this._previousContainerDisplay) !== null && _b !== void 0 ? _b : 'flex';\n }\n if (this._mode === 'fullscreen') {\n void this._goFullscreen();\n }\n }\n async createVideoElement(width, height) {\n this.videoEl = document.createElement('video');\n this.videoEl.controls = true;\n this.videoEl.style.zIndex = (this._zIndex + 3).toString();\n this.videoEl.style.width = `${width.toString()}px`;\n this.videoEl.style.height = `${height.toString()}px`;\n this.videoEl.playbackRate = this._videoRate;\n this._videoContainer.appendChild(this.videoEl);\n // set the player\n const isSet = await this._setPlayer();\n if (isSet) {\n this.videoEl.onended = async () => {\n this._isEnded = true;\n this.isPlaying = false;\n if (this.videoEl) {\n this.videoEl.currentTime = 0;\n }\n if (this._videoExitOnEnd) {\n if (this._mode === 'fullscreen') {\n this._closeFullscreen();\n }\n this._createEvent('Ended', this._playerId);\n }\n else {\n if (this._videoLoopOnEnd && this.videoEl != null) {\n await this.videoEl.play();\n }\n }\n };\n this.videoEl.oncanplay = async () => {\n if (this._firstReadyToPlay) {\n this._createEvent('Ready', this._playerId);\n if (this.videoEl != null) {\n this.videoEl.muted = false;\n if (this._mode === 'fullscreen')\n await this.videoEl.play();\n this._firstReadyToPlay = false;\n }\n }\n };\n this.videoEl.onplay = () => {\n this.isPlaying = true;\n if (this._firstReadyToPlay)\n this._firstReadyToPlay = false;\n this._createEvent('Play', this._playerId);\n };\n this.videoEl.onplaying = () => {\n this._createEvent('Playing', this._playerId);\n };\n this.videoEl.onpause = () => {\n this.isPlaying = false;\n this._createEvent('Pause', this._playerId);\n };\n if (this._mode === 'fullscreen') {\n // create the video player exit button\n const exitEl = document.createElement('button');\n exitEl.textContent = 'X';\n exitEl.style.position = 'absolute';\n exitEl.style.left = '1%';\n exitEl.style.top = '5%';\n exitEl.style.width = '5vmin';\n exitEl.style.padding = '0.5%';\n exitEl.style.fontSize = '1.2rem';\n exitEl.style.background = 'rgba(51,51,51,.4)';\n exitEl.style.color = '#fff';\n exitEl.style.visibility = 'hidden';\n exitEl.style.zIndex = (this._zIndex + 4).toString();\n exitEl.style.border = '1px solid rgba(51,51,51,.4)';\n exitEl.style.borderRadius = '20px';\n this._videoContainer.onclick = async () => {\n this._initial = await this._doHide(exitEl, 3000);\n };\n this._videoContainer.ontouchstart = async () => {\n this._initial = await this._doHide(exitEl, 3000);\n };\n this._videoContainer.onmousemove = async () => {\n this._initial = await this._doHide(exitEl, 3000);\n };\n exitEl.onclick = () => {\n this._createEvent('Exit', this._playerId);\n };\n exitEl.ontouchstart = () => {\n this._createEvent('Exit', this._playerId);\n };\n this._videoContainer.appendChild(exitEl);\n this._initial = await this._doHide(exitEl, 3000);\n this._goFullscreen();\n }\n }\n return isSet;\n }\n async _goFullscreen() {\n if (this._container.mozRequestFullScreen) {\n /* Firefox */\n this._container.mozRequestFullScreen();\n }\n else if (this._container.webkitRequestFullscreen) {\n /* Chrome, Safari & Opera */\n this._container.webkitRequestFullscreen();\n }\n else if (this._container.msRequestFullscreen) {\n /* IE/Edge */\n this._container.msRequestFullscreen();\n }\n else if (this._container.requestFullscreen) {\n this._container.requestFullscreen();\n }\n return;\n }\n async _setPlayer() {\n return new Promise((resolve) => {\n if (this.videoEl != null) {\n if (Hls.isSupported() && this._videoType === 'application/x-mpegURL') {\n const hls = new Hls();\n hls.loadSource(this._url);\n hls.attachMedia(this.videoEl);\n hls.once(Hls.Events.FRAG_PARSED, () => {\n if (this.videoEl != null) {\n this.videoEl.muted = true;\n this.videoEl.crossOrigin = 'anonymous';\n resolve(true);\n }\n else {\n resolve(false);\n }\n });\n }\n else if (this._videoType === 'video/mp4') {\n // CMAF (fMP4) && MP4\n this.videoEl.src = this._url;\n if (this._url.substring(0, 5) != 'https' && this._url.substring(0, 4) === 'http')\n this.videoEl.crossOrigin = 'anonymous';\n if (this._url.substring(0, 5) === 'https' || this._url.substring(0, 4) === 'http')\n this.videoEl.muted = true;\n resolve(true);\n }\n else {\n // Not Supported\n resolve(false);\n }\n this.videoEl.addEventListener('enterpictureinpicture', (event) => {\n this.pipWindow = event.pictureInPictureWindow;\n this.pipMode = true;\n this._closeFullscreen();\n });\n this.videoEl.addEventListener('leavepictureinpicture', () => {\n this.pipMode = false;\n if (!this._isEnded) {\n this._goFullscreen();\n if (this.videoEl != null)\n this.videoEl.play();\n }\n });\n }\n else {\n resolve(false);\n }\n });\n }\n _getVideoType() {\n const sUrl = this._url ? this._url : '';\n if (sUrl != null && sUrl.length > 0) {\n for (const [extension, mimeType] of Object.entries(videoTypes)) {\n // we search for dot + extension (e.g. `.mp4`) for URLs that have the extension in the filename\n // e.g. https://vimeo.com/?file=my-video.mp4\n const hasDotExtension = sUrl.match(new RegExp(`\\\\.(${extension})(?=[?&#]|$)`, 'i'));\n if (hasDotExtension) {\n return (this._videoType = mimeType);\n }\n }\n for (const [extension, mimeType] of Object.entries(videoTypes)) {\n // we search for the extension (e.g. `m3u8`) for URLs that might have the extension as a query parameter\n // e.g. https://youtube.com/?v=7894289374&type=m3u8\n const hasExtensionInUrl = sUrl.match(new RegExp(`(${extension})`, 'i'));\n if (hasExtensionInUrl) {\n return (this._videoType = mimeType);\n }\n }\n // we check for not supported extensions for URLs that have the extension in the filename\n // e.g. https://vimeo.com/?file=not-supported-extension-video.mkv\n const hasNotSupportedDotExtension = sUrl.match(/\\.(.*)/i);\n if (hasNotSupportedDotExtension) {\n return (this._videoType = null);\n }\n // we check for not supported extensions for URLs that might have the extension as a query parameter\n // e.g. https://youtube.com/?v=3982748927&filetype=mkv\n const hasNotSupportedExtensionInUrl = sUrl.match(new RegExp(`(${possibleQueryParameterExtensions.join('|')})=+(.*)&?(?=&|$)`, 'i'));\n if (hasNotSupportedExtensionInUrl) {\n return (this._videoType = null);\n }\n // No extension found, then we assume it's 'mp4' (Match case for '')\n return 'video/mp4';\n }\n // URL was not defined, we return null\n return null;\n }\n async _doHide(exitEl, duration) {\n clearTimeout(this._initial);\n exitEl.style.visibility = 'visible';\n const initial = setTimeout(() => {\n exitEl.style.visibility = 'hidden';\n }, duration);\n return initial;\n }\n _createEvent(ev, playerId, msg) {\n const message = msg ? msg : null;\n let event;\n if (message != null) {\n event = new CustomEvent(`videoPlayer${ev}`, {\n detail: { fromPlayerId: playerId, message: message },\n });\n }\n else {\n const currentTime = this.videoEl ? this.videoEl.currentTime : 0;\n event = new CustomEvent(`videoPlayer${ev}`, {\n detail: { fromPlayerId: playerId, currentTime: currentTime },\n });\n }\n document.dispatchEvent(event);\n }\n _closeFullscreen() {\n const mydoc = document;\n const isInFullScreen = (mydoc.fullscreenElement && mydoc.fullscreenElement !== null) ||\n (mydoc.webkitFullscreenElement && mydoc.webkitFullscreenElement !== null) ||\n (mydoc.mozFullScreenElement && mydoc.mozFullScreenElement !== null) ||\n (mydoc.msFullscreenElement && mydoc.msFullscreenElement !== null);\n if (isInFullScreen) {\n if (mydoc.mozCancelFullScreen) {\n mydoc.mozCancelFullScreen();\n }\n else if (mydoc.webkitExitFullscreen) {\n mydoc.webkitExitFullscreen();\n }\n else if (mydoc.msExitFullscreen) {\n mydoc.msExitFullscreen();\n }\n else if (mydoc.exitFullscreen) {\n mydoc.exitFullscreen();\n }\n }\n }\n}\n//# sourceMappingURL=videoplayer.js.map","import { WebPlugin } from '@capacitor/core';\nimport { VideoPlayer } from './web-utils/videoplayer';\nexport class VideoPlayerWeb extends WebPlugin {\n constructor() {\n super();\n this._players = [];\n this.addListeners();\n }\n /**\n * Player initialization\n *\n * @param options\n */\n async initPlayer(options) {\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'initPlayer',\n message: 'Must provide a capVideoPlayerOptions object',\n });\n }\n this.mode = options.mode ? options.mode : '';\n if (this.mode == null || this.mode.length === 0) {\n return Promise.resolve({\n result: false,\n method: 'initPlayer',\n message: 'Must provide a Mode (fullscreen/embedded)',\n });\n }\n if (this.mode === 'fullscreen' || this.mode === 'embedded') {\n const url = options.url ? options.url : '';\n if (url == null || url.length === 0) {\n return Promise.resolve({\n result: false,\n method: 'initPlayer',\n message: 'Must provide a Video Url',\n });\n }\n if (url == 'internal') {\n return Promise.resolve({\n result: false,\n method: 'initPlayer',\n message: 'Internal Videos not supported on Web Platform',\n });\n }\n const playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n return Promise.resolve({\n result: false,\n method: 'initPlayer',\n message: 'Must provide a Player Id',\n });\n }\n const rate = options.rate ? options.rate : 1.0;\n let exitOnEnd = true;\n if (Object.keys(options).includes('exitOnEnd')) {\n const exitRet = options.exitOnEnd;\n exitOnEnd = exitRet != null ? exitRet : true;\n }\n let loopOnEnd = false;\n if (Object.keys(options).includes('loopOnEnd') && !exitOnEnd) {\n const loopRet = options.loopOnEnd;\n loopOnEnd = loopRet != null ? loopRet : false;\n }\n const componentTag = options.componentTag ? options.componentTag : '';\n if (componentTag == null || componentTag.length === 0) {\n return Promise.resolve({\n result: false,\n method: 'initPlayer',\n message: 'Must provide a Component Tag',\n });\n }\n let playerSize = null;\n if (this.mode === 'embedded') {\n playerSize = this.checkSize(options);\n }\n const result = await this._initializeVideoPlayer(url, playerId, this.mode, rate, exitOnEnd, loopOnEnd, componentTag, playerSize);\n return Promise.resolve({ result: result });\n }\n else {\n return Promise.resolve({\n result: false,\n method: 'initPlayer',\n message: 'Must provide a Mode either fullscreen or embedded)',\n });\n }\n }\n /**\n * Return if a given playerId is playing\n *\n * @param options\n */\n async isPlaying(options) {\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'isPlaying',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n const playing = this._players[playerId].isPlaying;\n return Promise.resolve({\n method: 'isPlaying',\n result: true,\n value: playing,\n });\n }\n else {\n return Promise.resolve({\n method: 'isPlaying',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Play the current video from a given playerId\n *\n * @param options\n */\n async play(options) {\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'play',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n if (!this._players[playerId].videoEl) {\n return Promise.resolve({\n method: 'play',\n result: false,\n message: 'Video element is not initialized for given PlayerId',\n });\n }\n await this._players[playerId].videoEl.play();\n return Promise.resolve({ method: 'play', result: true, value: true });\n }\n else {\n return Promise.resolve({\n method: 'play',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Pause the current video from a given playerId\n *\n * @param options\n */\n async pause(options) {\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'pause',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n if (this._players[playerId].isPlaying && this._players[playerId].videoEl)\n await this._players[playerId].videoEl.pause();\n return Promise.resolve({ method: 'pause', result: true, value: true });\n }\n else {\n return Promise.resolve({\n method: 'pause',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Get the duration of the current video from a given playerId\n *\n * @param options\n */\n async getDuration(options) {\n var _a, _b;\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'getDuration',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n const duration = (_b = (_a = this._players[playerId].videoEl) === null || _a === void 0 ? void 0 : _a.duration) !== null && _b !== void 0 ? _b : 0;\n return Promise.resolve({\n method: 'getDuration',\n result: true,\n value: duration,\n });\n }\n else {\n return Promise.resolve({\n method: 'getDuration',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Set the rate of the current video from a given playerId\n *\n * @param options\n */\n async setRate(options) {\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'setRate',\n message: 'Must provide a capVideoRateOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n const rateList = [0.25, 0.5, 0.75, 1.0, 2.0, 4.0];\n const rate = options.rate && rateList.includes(options.rate) ? options.rate : 1.0;\n if (this._players[playerId]) {\n if (this._players[playerId].videoEl)\n this._players[playerId].videoEl.playbackRate = rate;\n return Promise.resolve({\n method: 'setRate',\n result: true,\n value: rate,\n });\n }\n else {\n return Promise.resolve({\n method: 'setRate',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Get the volume of the current video from a given playerId\n *\n * @param options\n */\n async getRate(options) {\n var _a, _b;\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'getRate',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n const rate = (_b = (_a = this._players[playerId].videoEl) === null || _a === void 0 ? void 0 : _a.playbackRate) !== null && _b !== void 0 ? _b : 1.0;\n return Promise.resolve({\n method: 'getRate',\n result: true,\n value: rate,\n });\n }\n else {\n return Promise.resolve({\n method: 'getRate',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Set the volume of the current video from a given playerId\n *\n * @param options\n */\n async setVolume(options) {\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'setVolume',\n message: 'Must provide a capVideoVolumeOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n const volume = options.volume ? options.volume : 0.5;\n if (this._players[playerId]) {\n if (this._players[playerId].videoEl)\n this._players[playerId].videoEl.volume = volume;\n return Promise.resolve({\n method: 'setVolume',\n result: true,\n value: volume,\n });\n }\n else {\n return Promise.resolve({\n method: 'setVolume',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Get the volume of the current video from a given playerId\n *\n * @param options\n */\n async getVolume(options) {\n var _a, _b;\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'getVolume',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n const volume = (_b = (_a = this._players[playerId].videoEl) === null || _a === void 0 ? void 0 : _a.volume) !== null && _b !== void 0 ? _b : 1.0;\n return Promise.resolve({\n method: 'getVolume',\n result: true,\n value: volume,\n });\n }\n else {\n return Promise.resolve({\n method: 'getVolume',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Set the muted property of the current video from a given playerId\n *\n * @param options\n */\n async setMuted(options) {\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'setMuted',\n message: 'Must provide a capVideoMutedOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n const muted = options.muted ? options.muted : false;\n if (this._players[playerId]) {\n if (this._players[playerId].videoEl)\n this._players[playerId].videoEl.muted = muted;\n return Promise.resolve({\n method: 'setMuted',\n result: true,\n value: muted,\n });\n }\n else {\n return Promise.resolve({\n method: 'setMuted',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Get the muted property of the current video from a given playerId\n *\n * @param options\n */\n async getMuted(options) {\n var _a, _b;\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'getMuted',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n const muted = (_b = (_a = this._players[playerId].videoEl) === null || _a === void 0 ? void 0 : _a.muted) !== null && _b !== void 0 ? _b : false;\n return Promise.resolve({\n method: 'getMuted',\n result: true,\n value: muted,\n });\n }\n else {\n return Promise.resolve({\n method: 'getMuted',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Set the current time of the current video from a given playerId\n *\n * @param options\n */\n async setCurrentTime(options) {\n var _a, _b;\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'setCurrentTime',\n message: 'Must provide a capVideoTimeOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n let seekTime = options.seektime ? options.seektime : 0;\n if (this._players[playerId]) {\n const duration = (_b = (_a = this._players[playerId].videoEl) === null || _a === void 0 ? void 0 : _a.duration) !== null && _b !== void 0 ? _b : 0;\n seekTime = seekTime <= duration && seekTime >= 0 ? seekTime : duration / 2;\n if (this._players[playerId].videoEl)\n this._players[playerId].videoEl.currentTime = seekTime;\n return Promise.resolve({\n method: 'setCurrentTime',\n result: true,\n value: seekTime,\n });\n }\n else {\n return Promise.resolve({\n method: 'setCurrentTime',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Get the current time of the current video from a given playerId\n *\n * @param options\n */\n async getCurrentTime(options) {\n var _a, _b;\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'getCurrentTime',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n const seekTime = (_b = (_a = this._players[playerId].videoEl) === null || _a === void 0 ? void 0 : _a.currentTime) !== null && _b !== void 0 ? _b : 0;\n return Promise.resolve({\n method: 'getCurrentTime',\n result: true,\n value: seekTime,\n });\n }\n else {\n return Promise.resolve({\n method: 'getCurrentTime',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Get the current time of the current video from a given playerId\n *\n */\n async stopAllPlayers() {\n for (const i in this._players) {\n if (this._players[i].pipMode) {\n const doc = document;\n if (doc.pictureInPictureElement) {\n await doc.exitPictureInPicture();\n }\n }\n if (this._players[i].videoEl && !this._players[i].videoEl.paused)\n this._players[i].videoEl.pause();\n }\n return Promise.resolve({\n method: 'stopAllPlayers',\n result: true,\n value: true,\n });\n }\n /**\n * Show controller\n *\n */\n async showController() {\n return Promise.resolve({\n method: 'showController',\n result: true,\n value: true,\n });\n }\n /**\n * isControllerIsFullyVisible\n *\n */\n async isControllerIsFullyVisible() {\n return Promise.resolve({\n method: 'isControllerIsFullyVisible',\n result: true,\n value: true,\n });\n }\n /**\n * Exit the current player\n *\n */\n async exitPlayer() {\n return Promise.resolve({\n method: 'exitPlayer',\n result: true,\n value: true,\n });\n }\n async hidePlayer() {\n const playerId = this._players['fullscreen'] ? 'fullscreen' : Object.keys(this._players)[0];\n if (!playerId || !this._players[playerId]) {\n return Promise.resolve({\n method: 'hidePlayer',\n result: false,\n message: 'No active player',\n });\n }\n if (typeof this._players[playerId].hide === 'function') {\n this._players[playerId].hide();\n }\n return Promise.resolve({\n method: 'hidePlayer',\n result: true,\n value: true,\n });\n }\n async showPlayer() {\n const playerId = this._players['fullscreen'] ? 'fullscreen' : Object.keys(this._players)[0];\n if (!playerId || !this._players[playerId]) {\n return Promise.resolve({\n method: 'showPlayer',\n result: false,\n message: 'No active player',\n });\n }\n if (typeof this._players[playerId].show === 'function') {\n this._players[playerId].show();\n }\n return Promise.resolve({\n method: 'showPlayer',\n result: true,\n value: true,\n });\n }\n checkSize(options) {\n const playerSize = {\n width: options.width ? options.width : 320,\n height: options.height ? options.height : 180,\n };\n const ratio = playerSize.height / playerSize.width;\n if (playerSize.width > window.innerWidth) {\n playerSize.width = window.innerWidth;\n playerSize.height = Math.floor(playerSize.width * ratio);\n }\n if (playerSize.height > window.innerHeight) {\n playerSize.height = window.innerHeight;\n playerSize.width = Math.floor(playerSize.height / ratio);\n }\n return playerSize;\n }\n async _initializeVideoPlayer(url, playerId, mode, rate, exitOnEnd, loopOnEnd, componentTag, playerSize) {\n const videoURL = url ? (url.indexOf('%2F') == -1 ? encodeURI(url) : url) : null;\n if (videoURL === null)\n return Promise.resolve(false);\n this.videoContainer = await this._getContainerElement(playerId, componentTag);\n if (this.videoContainer === null)\n return Promise.resolve({\n method: 'initPlayer',\n result: false,\n message: 'componentTag or divContainerElement must be provided',\n });\n if (mode === 'embedded' && playerSize == null)\n return Promise.resolve({\n method: 'initPlayer',\n result: false,\n message: 'playerSize must be defined in embedded mode',\n });\n if (mode === 'embedded') {\n this._players[playerId] = new VideoPlayer('embedded', videoURL, playerId, rate, exitOnEnd, loopOnEnd, this.videoContainer, 2, playerSize.width, playerSize.height);\n await this._players[playerId].initialize();\n }\n else if (mode === 'fullscreen') {\n this._players['fullscreen'] = new VideoPlayer('fullscreen', videoURL, 'fullscreen', rate, exitOnEnd, loopOnEnd, this.videoContainer, 99995);\n await this._players['fullscreen'].initialize();\n }\n else {\n return Promise.resolve({\n method: 'initPlayer',\n result: false,\n message: 'mode not supported',\n });\n }\n return Promise.resolve({ method: 'initPlayer', result: true, value: true });\n }\n async _getContainerElement(playerId, componentTag) {\n const videoContainer = document.createElement('div');\n videoContainer.id = `vc_${playerId}`;\n if (componentTag != null && componentTag.length > 0) {\n const cmpTagEl = document.querySelector(`${componentTag}`);\n if (cmpTagEl === null)\n return Promise.resolve(null);\n const shadowRoot = cmpTagEl.shadowRoot ? cmpTagEl.shadowRoot : null;\n const container = shadowRoot != null\n ? shadowRoot.querySelector(`[id='${playerId}']`)\n : cmpTagEl.querySelector(`[id='${playerId}']`);\n if (container != null)\n container.appendChild(videoContainer);\n return Promise.resolve(videoContainer);\n }\n else {\n return Promise.resolve(null);\n }\n }\n handlePlayerPlay(data) {\n this.notifyListeners('jeepCapVideoPlayerPlay', data);\n }\n handlePlayerPause(data) {\n this.notifyListeners('jeepCapVideoPlayerPause', data);\n }\n handlePlayerEnded(data) {\n var _a;\n if (this.mode === 'fullscreen') {\n (_a = this.videoContainer) === null || _a === void 0 ? void 0 : _a.remove();\n }\n this.removeListeners();\n this.notifyListeners('jeepCapVideoPlayerEnded', data);\n }\n handlePlayerExit() {\n var _a;\n if (this.mode === 'fullscreen') {\n (_a = this.videoContainer) === null || _a === void 0 ? void 0 : _a.remove();\n }\n const retData = { dismiss: true };\n this.removeListeners();\n this.notifyListeners('jeepCapVideoPlayerExit', retData);\n }\n handlePlayerReady(data) {\n this.notifyListeners('jeepCapVideoPlayerReady', data);\n }\n addListeners() {\n document.addEventListener('videoPlayerPlay', (ev) => {\n this.handlePlayerPlay(ev.detail);\n }, false);\n document.addEventListener('videoPlayerPause', (ev) => {\n this.handlePlayerPause(ev.detail);\n }, false);\n document.addEventListener('videoPlayerEnded', (ev) => {\n this.handlePlayerEnded(ev.detail);\n }, false);\n document.addEventListener('videoPlayerReady', (ev) => {\n this.handlePlayerReady(ev.detail);\n }, false);\n document.addEventListener('videoPlayerExit', () => {\n this.handlePlayerExit();\n }, false);\n }\n removeListeners() {\n document.removeEventListener('videoPlayerPlay', (ev) => {\n this.handlePlayerPlay(ev.detail);\n }, false);\n document.removeEventListener('videoPlayerPause', (ev) => {\n this.handlePlayerPause(ev.detail);\n }, false);\n document.removeEventListener('videoPlayerEnded', (ev) => {\n this.handlePlayerEnded(ev.detail);\n }, false);\n document.removeEventListener('videoPlayerReady', (ev) => {\n this.handlePlayerReady(ev.detail);\n }, false);\n document.removeEventListener('videoPlayerExit', () => {\n this.handlePlayerExit();\n }, false);\n }\n async getPluginVersion() {\n return { version: 'web' };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["VideoPlayer","registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web-utils/video-types.js","esm/web-utils/videoplayer.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst VideoPlayer = registerPlugin('VideoPlayer', {\n web: () => import('./web').then((m) => new m.VideoPlayerWeb()),\n});\nexport * from './definitions';\nexport { VideoPlayer };\n//# sourceMappingURL=index.js.map","export const possibleQueryParameterExtensions = ['file', 'extension', 'filetype', 'type', 'ext'];\nexport const videoTypes = {\n mp4: 'video/mp4',\n webm: 'video/mp4',\n cmaf: 'video/mp4',\n cmfv: 'video/mp4',\n m3u8: 'application/x-mpegURL',\n};\n//# sourceMappingURL=video-types.js.map","import Hls from 'hls.js';\nimport { videoTypes, possibleQueryParameterExtensions } from './video-types';\nexport class VideoPlayer {\n constructor(mode, url, playerId, rate, exitOnEnd, loopOnEnd, container, zIndex, width, height) {\n this.pipMode = false;\n this.isHidden = false;\n this._videoType = null;\n this._videoContainer = null;\n this._firstReadyToPlay = true;\n this._isEnded = false;\n this._videoRate = 1.0;\n this._videoExitOnEnd = true;\n this._videoLoopOnEnd = false;\n this._previousContainerDisplay = null;\n this._url = url;\n this._container = container;\n this._mode = mode;\n this._width = width ? width : 320;\n this._height = height ? height : 180;\n this._mode = mode;\n this._videoRate = rate;\n this._zIndex = zIndex ? zIndex : 1;\n this._playerId = playerId;\n this._videoExitOnEnd = exitOnEnd;\n this._videoLoopOnEnd = loopOnEnd;\n }\n async initialize() {\n // get the video type\n const urlVideoType = this._getVideoType();\n if (urlVideoType) {\n // style the container\n if (this._mode === 'fullscreen') {\n this._container.style.position = 'absolute';\n this._container.style.width = '100vw';\n this._container.style.height = '100vh';\n }\n if (this._mode === 'embedded') {\n this._container.style.position = 'relative';\n this._container.style.width = this._width.toString() + 'px';\n this._container.style.height = this._height.toString() + 'px';\n }\n this._container.style.left = '0';\n this._container.style.top = '0';\n this._container.style.display = 'flex';\n this._container.style.alignItems = 'center';\n this._container.style.justifyContent = 'center';\n this._container.style.backgroundColor = '#000000';\n this._container.style.zIndex = this._zIndex.toString();\n const width = this._mode === 'fullscreen' ? window.innerWidth /*this._container.offsetWidth*/ : this._width;\n const height = this._mode === 'fullscreen' ? window.innerHeight /*this._container.offsetHeight*/ : this._height;\n const xmlns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(xmlns, 'svg');\n svg.setAttributeNS(null, 'width', width.toString());\n svg.setAttributeNS(null, 'height', height.toString());\n const viewbox = '0 0 ' + width.toString() + ' ' + height.toString();\n svg.setAttributeNS(null, 'viewBox', viewbox);\n svg.style.zIndex = (this._zIndex + 1).toString();\n const rect = document.createElementNS(xmlns, 'rect');\n rect.setAttributeNS(null, 'x', '0');\n rect.setAttributeNS(null, 'y', '0');\n rect.setAttributeNS(null, 'width', width.toString());\n rect.setAttributeNS(null, 'height', height.toString());\n rect.setAttributeNS(null, 'fill', '#000000');\n svg.appendChild(rect);\n this._container.appendChild(svg);\n const heightVideo = (width * this._height) / this._width;\n this._videoContainer = document.createElement('div');\n this._videoContainer.style.position = 'absolute';\n this._videoContainer.style.left = '0';\n this._videoContainer.style.width = width.toString() + 'px';\n this._videoContainer.style.height = heightVideo.toString() + 'px';\n this._videoContainer.style.zIndex = (this._zIndex + 2).toString();\n this._container.appendChild(this._videoContainer);\n /* Create Video Element */\n const isCreated = await this.createVideoElement(width, heightVideo);\n if (!isCreated) {\n this._createEvent('Exit', this._playerId, 'Video Error: failed to create the Video Element');\n }\n }\n else {\n this._createEvent('Exit', this._playerId, 'Url Error: type not supported');\n }\n return;\n }\n hide() {\n var _a, _b, _c, _d;\n if (this.isHidden)\n return;\n this.isHidden = true;\n if (this._mode === 'fullscreen') {\n this._closeFullscreen();\n }\n if (this._previousContainerDisplay == null) {\n this._previousContainerDisplay = (_c = (_b = (_a = this._container) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.display) !== null && _c !== void 0 ? _c : '';\n }\n if ((_d = this._container) === null || _d === void 0 ? void 0 : _d.style) {\n this._container.style.display = 'none';\n }\n }\n show() {\n var _a, _b;\n if (!this.isHidden)\n return;\n this.isHidden = false;\n if ((_a = this._container) === null || _a === void 0 ? void 0 : _a.style) {\n this._container.style.display = (_b = this._previousContainerDisplay) !== null && _b !== void 0 ? _b : 'flex';\n }\n if (this._mode === 'fullscreen') {\n void this._goFullscreen();\n }\n }\n async createVideoElement(width, height) {\n this.videoEl = document.createElement('video');\n this.videoEl.controls = true;\n this.videoEl.style.zIndex = (this._zIndex + 3).toString();\n this.videoEl.style.width = `${width.toString()}px`;\n this.videoEl.style.height = `${height.toString()}px`;\n this.videoEl.playbackRate = this._videoRate;\n this._videoContainer.appendChild(this.videoEl);\n // set the player\n const isSet = await this._setPlayer();\n if (isSet) {\n this.videoEl.onended = async () => {\n this._isEnded = true;\n this.isPlaying = false;\n if (this.videoEl) {\n this.videoEl.currentTime = 0;\n }\n if (this._videoExitOnEnd) {\n if (this._mode === 'fullscreen') {\n this._closeFullscreen();\n }\n this._createEvent('Ended', this._playerId);\n }\n else {\n if (this._videoLoopOnEnd && this.videoEl != null) {\n await this.videoEl.play();\n }\n }\n };\n this.videoEl.oncanplay = async () => {\n if (this._firstReadyToPlay) {\n this._createEvent('Ready', this._playerId);\n if (this.videoEl != null) {\n this.videoEl.muted = false;\n if (this._mode === 'fullscreen')\n await this.videoEl.play();\n this._firstReadyToPlay = false;\n }\n }\n };\n this.videoEl.onplay = () => {\n this.isPlaying = true;\n if (this._firstReadyToPlay)\n this._firstReadyToPlay = false;\n this._createEvent('Play', this._playerId);\n };\n this.videoEl.onplaying = () => {\n this._createEvent('Playing', this._playerId);\n };\n this.videoEl.onpause = () => {\n this.isPlaying = false;\n this._createEvent('Pause', this._playerId);\n };\n if (this._mode === 'fullscreen') {\n // create the video player exit button\n const exitEl = document.createElement('button');\n exitEl.textContent = 'X';\n exitEl.style.position = 'absolute';\n exitEl.style.left = '1%';\n exitEl.style.top = '5%';\n exitEl.style.width = '5vmin';\n exitEl.style.padding = '0.5%';\n exitEl.style.fontSize = '1.2rem';\n exitEl.style.background = 'rgba(51,51,51,.4)';\n exitEl.style.color = '#fff';\n exitEl.style.visibility = 'hidden';\n exitEl.style.zIndex = (this._zIndex + 4).toString();\n exitEl.style.border = '1px solid rgba(51,51,51,.4)';\n exitEl.style.borderRadius = '20px';\n this._videoContainer.onclick = async () => {\n this._initial = await this._doHide(exitEl, 3000);\n };\n this._videoContainer.ontouchstart = async () => {\n this._initial = await this._doHide(exitEl, 3000);\n };\n this._videoContainer.onmousemove = async () => {\n this._initial = await this._doHide(exitEl, 3000);\n };\n exitEl.onclick = () => {\n this._createEvent('Exit', this._playerId);\n };\n exitEl.ontouchstart = () => {\n this._createEvent('Exit', this._playerId);\n };\n this._videoContainer.appendChild(exitEl);\n this._initial = await this._doHide(exitEl, 3000);\n this._goFullscreen();\n }\n }\n return isSet;\n }\n async _goFullscreen() {\n if (this._container.mozRequestFullScreen) {\n /* Firefox */\n this._container.mozRequestFullScreen();\n }\n else if (this._container.webkitRequestFullscreen) {\n /* Chrome, Safari & Opera */\n this._container.webkitRequestFullscreen();\n }\n else if (this._container.msRequestFullscreen) {\n /* IE/Edge */\n this._container.msRequestFullscreen();\n }\n else if (this._container.requestFullscreen) {\n this._container.requestFullscreen();\n }\n return;\n }\n async _setPlayer() {\n return new Promise((resolve) => {\n if (this.videoEl != null) {\n if (Hls.isSupported() && this._videoType === 'application/x-mpegURL') {\n const hls = new Hls();\n hls.loadSource(this._url);\n hls.attachMedia(this.videoEl);\n hls.once(Hls.Events.FRAG_PARSED, () => {\n if (this.videoEl != null) {\n this.videoEl.muted = true;\n this.videoEl.crossOrigin = 'anonymous';\n resolve(true);\n }\n else {\n resolve(false);\n }\n });\n }\n else if (this._videoType === 'video/mp4') {\n // CMAF (fMP4) && MP4\n this.videoEl.src = this._url;\n if (this._url.substring(0, 5) != 'https' && this._url.substring(0, 4) === 'http')\n this.videoEl.crossOrigin = 'anonymous';\n if (this._url.substring(0, 5) === 'https' || this._url.substring(0, 4) === 'http')\n this.videoEl.muted = true;\n resolve(true);\n }\n else {\n // Not Supported\n resolve(false);\n }\n this.videoEl.addEventListener('enterpictureinpicture', (event) => {\n this.pipWindow = event.pictureInPictureWindow;\n this.pipMode = true;\n this._closeFullscreen();\n });\n this.videoEl.addEventListener('leavepictureinpicture', () => {\n this.pipMode = false;\n if (!this._isEnded) {\n this._goFullscreen();\n if (this.videoEl != null)\n this.videoEl.play();\n }\n });\n }\n else {\n resolve(false);\n }\n });\n }\n _getVideoType() {\n const sUrl = this._url ? this._url : '';\n if (sUrl != null && sUrl.length > 0) {\n for (const [extension, mimeType] of Object.entries(videoTypes)) {\n // we search for dot + extension (e.g. `.mp4`) for URLs that have the extension in the filename\n // e.g. https://vimeo.com/?file=my-video.mp4\n const hasDotExtension = sUrl.match(new RegExp(`\\\\.(${extension})(?=[?&#]|$)`, 'i'));\n if (hasDotExtension) {\n return (this._videoType = mimeType);\n }\n }\n for (const [extension, mimeType] of Object.entries(videoTypes)) {\n // we search for the extension (e.g. `m3u8`) for URLs that might have the extension as a query parameter\n // e.g. https://youtube.com/?v=7894289374&type=m3u8\n const hasExtensionInUrl = sUrl.match(new RegExp(`(${extension})`, 'i'));\n if (hasExtensionInUrl) {\n return (this._videoType = mimeType);\n }\n }\n // we check for not supported extensions for URLs that have the extension in the filename\n // e.g. https://vimeo.com/?file=not-supported-extension-video.mkv\n const hasNotSupportedDotExtension = sUrl.match(/\\.(.*)/i);\n if (hasNotSupportedDotExtension) {\n return (this._videoType = null);\n }\n // we check for not supported extensions for URLs that might have the extension as a query parameter\n // e.g. https://youtube.com/?v=3982748927&filetype=mkv\n const hasNotSupportedExtensionInUrl = sUrl.match(new RegExp(`(${possibleQueryParameterExtensions.join('|')})=+(.*)&?(?=&|$)`, 'i'));\n if (hasNotSupportedExtensionInUrl) {\n return (this._videoType = null);\n }\n // No extension found, then we assume it's 'mp4' (Match case for '')\n return 'video/mp4';\n }\n // URL was not defined, we return null\n return null;\n }\n async _doHide(exitEl, duration) {\n clearTimeout(this._initial);\n exitEl.style.visibility = 'visible';\n const initial = setTimeout(() => {\n exitEl.style.visibility = 'hidden';\n }, duration);\n return initial;\n }\n _createEvent(ev, playerId, msg) {\n const message = msg ? msg : null;\n let event;\n if (message != null) {\n event = new CustomEvent(`videoPlayer${ev}`, {\n detail: { fromPlayerId: playerId, message: message },\n });\n }\n else {\n const currentTime = this.videoEl ? this.videoEl.currentTime : 0;\n event = new CustomEvent(`videoPlayer${ev}`, {\n detail: { fromPlayerId: playerId, currentTime: currentTime },\n });\n }\n document.dispatchEvent(event);\n }\n _closeFullscreen() {\n const mydoc = document;\n const isInFullScreen = (mydoc.fullscreenElement && mydoc.fullscreenElement !== null) ||\n (mydoc.webkitFullscreenElement && mydoc.webkitFullscreenElement !== null) ||\n (mydoc.mozFullScreenElement && mydoc.mozFullScreenElement !== null) ||\n (mydoc.msFullscreenElement && mydoc.msFullscreenElement !== null);\n if (isInFullScreen) {\n if (mydoc.mozCancelFullScreen) {\n mydoc.mozCancelFullScreen();\n }\n else if (mydoc.webkitExitFullscreen) {\n mydoc.webkitExitFullscreen();\n }\n else if (mydoc.msExitFullscreen) {\n mydoc.msExitFullscreen();\n }\n else if (mydoc.exitFullscreen) {\n mydoc.exitFullscreen();\n }\n }\n }\n}\n//# sourceMappingURL=videoplayer.js.map","import { WebPlugin } from '@capacitor/core';\nimport { VideoPlayer } from './web-utils/videoplayer';\nexport class VideoPlayerWeb extends WebPlugin {\n constructor() {\n super();\n this._players = [];\n this.addListeners();\n }\n /**\n * Player initialization\n *\n * @param options\n */\n async initPlayer(options) {\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'initPlayer',\n message: 'Must provide a capVideoPlayerOptions object',\n });\n }\n this.mode = options.mode ? options.mode : '';\n if (this.mode == null || this.mode.length === 0) {\n return Promise.resolve({\n result: false,\n method: 'initPlayer',\n message: 'Must provide a Mode (fullscreen/embedded)',\n });\n }\n if (this.mode === 'fullscreen' || this.mode === 'embedded') {\n const url = options.url ? options.url : '';\n if (url == null || url.length === 0) {\n return Promise.resolve({\n result: false,\n method: 'initPlayer',\n message: 'Must provide a Video Url',\n });\n }\n if (url == 'internal') {\n return Promise.resolve({\n result: false,\n method: 'initPlayer',\n message: 'Internal Videos not supported on Web Platform',\n });\n }\n const playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n return Promise.resolve({\n result: false,\n method: 'initPlayer',\n message: 'Must provide a Player Id',\n });\n }\n const rate = options.rate ? options.rate : 1.0;\n let exitOnEnd = true;\n if (Object.keys(options).includes('exitOnEnd')) {\n const exitRet = options.exitOnEnd;\n exitOnEnd = exitRet != null ? exitRet : true;\n }\n let loopOnEnd = false;\n if (Object.keys(options).includes('loopOnEnd') && !exitOnEnd) {\n const loopRet = options.loopOnEnd;\n loopOnEnd = loopRet != null ? loopRet : false;\n }\n const componentTag = options.componentTag ? options.componentTag : '';\n if (componentTag == null || componentTag.length === 0) {\n return Promise.resolve({\n result: false,\n method: 'initPlayer',\n message: 'Must provide a Component Tag',\n });\n }\n let playerSize = null;\n if (this.mode === 'embedded') {\n playerSize = this.checkSize(options);\n }\n const result = await this._initializeVideoPlayer(url, playerId, this.mode, rate, exitOnEnd, loopOnEnd, componentTag, playerSize);\n return Promise.resolve({ result: result });\n }\n else {\n return Promise.resolve({\n result: false,\n method: 'initPlayer',\n message: 'Must provide a Mode either fullscreen or embedded)',\n });\n }\n }\n /**\n * Return if a given playerId is playing\n *\n * @param options\n */\n async isPlaying(options) {\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'isPlaying',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n const playing = this._players[playerId].isPlaying;\n return Promise.resolve({\n method: 'isPlaying',\n result: true,\n value: playing,\n });\n }\n else {\n return Promise.resolve({\n method: 'isPlaying',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Play the current video from a given playerId\n *\n * @param options\n */\n async play(options) {\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'play',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n if (!this._players[playerId].videoEl) {\n return Promise.resolve({\n method: 'play',\n result: false,\n message: 'Video element is not initialized for given PlayerId',\n });\n }\n await this._players[playerId].videoEl.play();\n return Promise.resolve({ method: 'play', result: true, value: true });\n }\n else {\n return Promise.resolve({\n method: 'play',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Pause the current video from a given playerId\n *\n * @param options\n */\n async pause(options) {\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'pause',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n if (this._players[playerId].isPlaying && this._players[playerId].videoEl)\n await this._players[playerId].videoEl.pause();\n return Promise.resolve({ method: 'pause', result: true, value: true });\n }\n else {\n return Promise.resolve({\n method: 'pause',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Get the duration of the current video from a given playerId\n *\n * @param options\n */\n async getDuration(options) {\n var _a, _b;\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'getDuration',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n const duration = (_b = (_a = this._players[playerId].videoEl) === null || _a === void 0 ? void 0 : _a.duration) !== null && _b !== void 0 ? _b : 0;\n return Promise.resolve({\n method: 'getDuration',\n result: true,\n value: duration,\n });\n }\n else {\n return Promise.resolve({\n method: 'getDuration',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Set the rate of the current video from a given playerId\n *\n * @param options\n */\n async setRate(options) {\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'setRate',\n message: 'Must provide a capVideoRateOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n const rateList = [0.25, 0.5, 0.75, 1.0, 2.0, 4.0];\n const rate = options.rate && rateList.includes(options.rate) ? options.rate : 1.0;\n if (this._players[playerId]) {\n if (this._players[playerId].videoEl)\n this._players[playerId].videoEl.playbackRate = rate;\n return Promise.resolve({\n method: 'setRate',\n result: true,\n value: rate,\n });\n }\n else {\n return Promise.resolve({\n method: 'setRate',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Get the volume of the current video from a given playerId\n *\n * @param options\n */\n async getRate(options) {\n var _a, _b;\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'getRate',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n const rate = (_b = (_a = this._players[playerId].videoEl) === null || _a === void 0 ? void 0 : _a.playbackRate) !== null && _b !== void 0 ? _b : 1.0;\n return Promise.resolve({\n method: 'getRate',\n result: true,\n value: rate,\n });\n }\n else {\n return Promise.resolve({\n method: 'getRate',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Set the volume of the current video from a given playerId\n *\n * @param options\n */\n async setVolume(options) {\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'setVolume',\n message: 'Must provide a capVideoVolumeOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n const volume = options.volume ? options.volume : 0.5;\n if (this._players[playerId]) {\n if (this._players[playerId].videoEl)\n this._players[playerId].videoEl.volume = volume;\n return Promise.resolve({\n method: 'setVolume',\n result: true,\n value: volume,\n });\n }\n else {\n return Promise.resolve({\n method: 'setVolume',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Get the volume of the current video from a given playerId\n *\n * @param options\n */\n async getVolume(options) {\n var _a, _b;\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'getVolume',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n const volume = (_b = (_a = this._players[playerId].videoEl) === null || _a === void 0 ? void 0 : _a.volume) !== null && _b !== void 0 ? _b : 1.0;\n return Promise.resolve({\n method: 'getVolume',\n result: true,\n value: volume,\n });\n }\n else {\n return Promise.resolve({\n method: 'getVolume',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Set the muted property of the current video from a given playerId\n *\n * @param options\n */\n async setMuted(options) {\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'setMuted',\n message: 'Must provide a capVideoMutedOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n const muted = options.muted ? options.muted : false;\n if (this._players[playerId]) {\n if (this._players[playerId].videoEl)\n this._players[playerId].videoEl.muted = muted;\n return Promise.resolve({\n method: 'setMuted',\n result: true,\n value: muted,\n });\n }\n else {\n return Promise.resolve({\n method: 'setMuted',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Get the muted property of the current video from a given playerId\n *\n * @param options\n */\n async getMuted(options) {\n var _a, _b;\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'getMuted',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n const muted = (_b = (_a = this._players[playerId].videoEl) === null || _a === void 0 ? void 0 : _a.muted) !== null && _b !== void 0 ? _b : false;\n return Promise.resolve({\n method: 'getMuted',\n result: true,\n value: muted,\n });\n }\n else {\n return Promise.resolve({\n method: 'getMuted',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Set the current time of the current video from a given playerId\n *\n * @param options\n */\n async setCurrentTime(options) {\n var _a, _b;\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'setCurrentTime',\n message: 'Must provide a capVideoTimeOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n let seekTime = options.seektime ? options.seektime : 0;\n if (this._players[playerId]) {\n const duration = (_b = (_a = this._players[playerId].videoEl) === null || _a === void 0 ? void 0 : _a.duration) !== null && _b !== void 0 ? _b : 0;\n seekTime = seekTime <= duration && seekTime >= 0 ? seekTime : duration / 2;\n if (this._players[playerId].videoEl)\n this._players[playerId].videoEl.currentTime = seekTime;\n return Promise.resolve({\n method: 'setCurrentTime',\n result: true,\n value: seekTime,\n });\n }\n else {\n return Promise.resolve({\n method: 'setCurrentTime',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Get the current time of the current video from a given playerId\n *\n * @param options\n */\n async getCurrentTime(options) {\n var _a, _b;\n if (options == null) {\n return Promise.resolve({\n result: false,\n method: 'getCurrentTime',\n message: 'Must provide a capVideoPlayerIdOptions object',\n });\n }\n let playerId = options.playerId ? options.playerId : '';\n if (playerId == null || playerId.length === 0) {\n playerId = 'fullscreen';\n }\n if (this._players[playerId]) {\n const seekTime = (_b = (_a = this._players[playerId].videoEl) === null || _a === void 0 ? void 0 : _a.currentTime) !== null && _b !== void 0 ? _b : 0;\n return Promise.resolve({\n method: 'getCurrentTime',\n result: true,\n value: seekTime,\n });\n }\n else {\n return Promise.resolve({\n method: 'getCurrentTime',\n result: false,\n message: 'Given PlayerId does not exist)',\n });\n }\n }\n /**\n * Get the current time of the current video from a given playerId\n *\n */\n async stopAllPlayers() {\n for (const i in this._players) {\n if (this._players[i].pipMode) {\n const doc = document;\n if (doc.pictureInPictureElement) {\n await doc.exitPictureInPicture();\n }\n }\n if (this._players[i].videoEl && !this._players[i].videoEl.paused)\n this._players[i].videoEl.pause();\n }\n return Promise.resolve({\n method: 'stopAllPlayers',\n result: true,\n value: true,\n });\n }\n /**\n * Show controller\n *\n */\n async showController() {\n return Promise.resolve({\n method: 'showController',\n result: true,\n value: true,\n });\n }\n /**\n * isControllerIsFullyVisible\n *\n */\n async isControllerIsFullyVisible() {\n return Promise.resolve({\n method: 'isControllerIsFullyVisible',\n result: true,\n value: true,\n });\n }\n /**\n * Exit the current player\n *\n */\n async exitPlayer() {\n return Promise.resolve({\n method: 'exitPlayer',\n result: true,\n value: true,\n });\n }\n async hidePlayer() {\n const playerId = this._players['fullscreen'] ? 'fullscreen' : Object.keys(this._players)[0];\n if (!playerId || !this._players[playerId]) {\n return Promise.resolve({\n method: 'hidePlayer',\n result: false,\n message: 'No active player',\n });\n }\n if (typeof this._players[playerId].hide === 'function') {\n this._players[playerId].hide();\n }\n return Promise.resolve({\n method: 'hidePlayer',\n result: true,\n value: true,\n });\n }\n async showPlayer() {\n const playerId = this._players['fullscreen'] ? 'fullscreen' : Object.keys(this._players)[0];\n if (!playerId || !this._players[playerId]) {\n return Promise.resolve({\n method: 'showPlayer',\n result: false,\n message: 'No active player',\n });\n }\n if (typeof this._players[playerId].show === 'function') {\n this._players[playerId].show();\n }\n return Promise.resolve({\n method: 'showPlayer',\n result: true,\n value: true,\n });\n }\n checkSize(options) {\n const playerSize = {\n width: options.width ? options.width : 320,\n height: options.height ? options.height : 180,\n };\n const ratio = playerSize.height / playerSize.width;\n if (playerSize.width > window.innerWidth) {\n playerSize.width = window.innerWidth;\n playerSize.height = Math.floor(playerSize.width * ratio);\n }\n if (playerSize.height > window.innerHeight) {\n playerSize.height = window.innerHeight;\n playerSize.width = Math.floor(playerSize.height / ratio);\n }\n return playerSize;\n }\n async _initializeVideoPlayer(url, playerId, mode, rate, exitOnEnd, loopOnEnd, componentTag, playerSize) {\n const videoURL = url ? (url.indexOf('%2F') == -1 ? encodeURI(url) : url) : null;\n if (videoURL === null)\n return Promise.resolve(false);\n this.videoContainer = await this._getContainerElement(playerId, componentTag);\n if (this.videoContainer === null)\n return Promise.resolve({\n method: 'initPlayer',\n result: false,\n message: 'componentTag or divContainerElement must be provided',\n });\n if (mode === 'embedded' && playerSize == null)\n return Promise.resolve({\n method: 'initPlayer',\n result: false,\n message: 'playerSize must be defined in embedded mode',\n });\n if (mode === 'embedded') {\n this._players[playerId] = new VideoPlayer('embedded', videoURL, playerId, rate, exitOnEnd, loopOnEnd, this.videoContainer, 2, playerSize.width, playerSize.height);\n await this._players[playerId].initialize();\n }\n else if (mode === 'fullscreen') {\n this._players['fullscreen'] = new VideoPlayer('fullscreen', videoURL, 'fullscreen', rate, exitOnEnd, loopOnEnd, this.videoContainer, 99995);\n await this._players['fullscreen'].initialize();\n }\n else {\n return Promise.resolve({\n method: 'initPlayer',\n result: false,\n message: 'mode not supported',\n });\n }\n return Promise.resolve({ method: 'initPlayer', result: true, value: true });\n }\n async _getContainerElement(playerId, componentTag) {\n const videoContainer = document.createElement('div');\n videoContainer.id = `vc_${playerId}`;\n if (componentTag != null && componentTag.length > 0) {\n const cmpTagEl = document.querySelector(`${componentTag}`);\n if (cmpTagEl === null)\n return Promise.resolve(null);\n const shadowRoot = cmpTagEl.shadowRoot ? cmpTagEl.shadowRoot : null;\n const container = shadowRoot != null\n ? shadowRoot.querySelector(`[id='${playerId}']`)\n : cmpTagEl.querySelector(`[id='${playerId}']`);\n if (container != null)\n container.appendChild(videoContainer);\n return Promise.resolve(videoContainer);\n }\n else {\n return Promise.resolve(null);\n }\n }\n handlePlayerPlay(data) {\n this.notifyListeners('jeepCapVideoPlayerPlay', data);\n }\n handlePlayerPause(data) {\n this.notifyListeners('jeepCapVideoPlayerPause', data);\n }\n handlePlayerEnded(data) {\n var _a;\n if (this.mode === 'fullscreen') {\n (_a = this.videoContainer) === null || _a === void 0 ? void 0 : _a.remove();\n }\n this.removeListeners();\n this.notifyListeners('jeepCapVideoPlayerEnded', data);\n }\n handlePlayerExit() {\n var _a;\n if (this.mode === 'fullscreen') {\n (_a = this.videoContainer) === null || _a === void 0 ? void 0 : _a.remove();\n }\n const retData = { dismiss: true };\n this.removeListeners();\n this.notifyListeners('jeepCapVideoPlayerExit', retData);\n }\n handlePlayerReady(data) {\n this.notifyListeners('jeepCapVideoPlayerReady', data);\n }\n addListeners() {\n document.addEventListener('videoPlayerPlay', (ev) => {\n this.handlePlayerPlay(ev.detail);\n }, false);\n document.addEventListener('videoPlayerPause', (ev) => {\n this.handlePlayerPause(ev.detail);\n }, false);\n document.addEventListener('videoPlayerEnded', (ev) => {\n this.handlePlayerEnded(ev.detail);\n }, false);\n document.addEventListener('videoPlayerReady', (ev) => {\n this.handlePlayerReady(ev.detail);\n }, false);\n document.addEventListener('videoPlayerExit', () => {\n this.handlePlayerExit();\n }, false);\n }\n removeListeners() {\n document.removeEventListener('videoPlayerPlay', (ev) => {\n this.handlePlayerPlay(ev.detail);\n }, false);\n document.removeEventListener('videoPlayerPause', (ev) => {\n this.handlePlayerPause(ev.detail);\n }, false);\n document.removeEventListener('videoPlayerEnded', (ev) => {\n this.handlePlayerEnded(ev.detail);\n }, false);\n document.removeEventListener('videoPlayerReady', (ev) => {\n this.handlePlayerReady(ev.detail);\n }, false);\n document.removeEventListener('videoPlayerExit', () => {\n this.handlePlayerExit();\n }, false);\n }\n async getPluginVersion() {\n return { version: 'web' };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["VideoPlayer","registerPlugin","WebPlugin"],"mappings":"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"}
@@ -8,7 +8,7 @@ import AVKit
8
8
  */
9
9
  @objc(VideoPlayerPlugin)
10
10
  public class VideoPlayerPlugin: CAPPlugin, CAPBridgedPlugin {
11
- private let pluginVersion: String = "8.2.10"
11
+ private let pluginVersion: String = "8.2.12"
12
12
  public let identifier = "VideoPlayerPlugin"
13
13
  public let jsName = "VideoPlayer"
14
14
  public let pluginMethods: [CAPPluginMethod] = [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capgo/capacitor-video-player",
3
- "version": "8.2.10",
3
+ "version": "8.2.12",
4
4
  "description": "Capacitor plugin to play video in native player",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",
@@ -63,7 +63,7 @@
63
63
  "@ionic/eslint-config": "^0.5.0",
64
64
  "@ionic/prettier-config": "^4.0.0",
65
65
  "@ionic/swiftlint-config": "^2.0.0",
66
- "@types/node": "^24.10.1",
66
+ "@types/node": "^26.0.0",
67
67
  "@typescript-eslint/eslint-plugin": "^8.70.0",
68
68
  "@typescript-eslint/parser": "^8.70.0",
69
69
  "eslint": "^10.0.0",