@vuemap/vue-amap
Version:
高德地图vue3版本封装
1 lines • 7.53 kB
Source Map (JSON)
{"version":3,"file":"VideoLayer.mjs","sources":["../../../../../../packages/layer/data/Video/VideoLayer.ts"],"sourcesContent":["interface VideoOption {\r\n url: string\r\n zooms: number[]\r\n bounds: any\r\n opacity: number\r\n loop: boolean\r\n}\r\n\r\nclass VideoLayer {\r\n\r\n canvas: HTMLCanvasElement | null;\r\n context: CanvasRenderingContext2D | null;\r\n video: HTMLVideoElement | null;\r\n layer: any;\r\n canPlay = false;\r\n frame = -1;\r\n\r\n constructor (options: VideoOption, video: HTMLVideoElement) {\r\n const canvas = document.createElement('canvas');\r\n this.video = video;\r\n video.src = options.url;\r\n video.autoplay = true;\r\n video.muted = true;\r\n video.crossOrigin= \"anonymous\";\r\n video.loop = options.loop;\r\n const layerOptions: any = {\r\n ...options,\r\n canvas\r\n };\r\n this.canvas = canvas;\r\n this.context = canvas.getContext('2d') as CanvasRenderingContext2D;\r\n this.layer = new AMap.CanvasLayer(layerOptions);\r\n this.initVideoEvents();\r\n this.load();\r\n }\r\n\r\n getLayer () {\r\n return this.layer;\r\n }\r\n\r\n initVideoEvents () {\r\n this.video?.addEventListener('canplaythrough', () => {\r\n if (this.canvas) {\r\n this.canvas.width = this.video?.videoWidth as number;\r\n this.canvas.height = this.video?.videoHeight as number;\r\n }\r\n this.canPlay = true;\r\n this.play();\r\n });\r\n }\r\n\r\n load () {\r\n this.video?.load();\r\n }\r\n\r\n play () {\r\n if (this.canPlay) {\r\n this.video?.play();\r\n this.stopRender();\r\n this.render();\r\n }\r\n }\r\n\r\n pause () {\r\n this.stopRender();\r\n this.video?.pause();\r\n }\r\n\r\n stopRender () {\r\n if (this.frame) {\r\n cancelAnimationFrame(this.frame);\r\n }\r\n }\r\n\r\n render () {\r\n this.frame = window.requestAnimationFrame(() => {\r\n this.render();\r\n });\r\n if (this.video?.paused) {\r\n this.video?.play();\r\n } else {\r\n this.context?.clearRect(0, 0, this.canvas?.width as number, this.canvas?.height as number);\r\n this.context?.drawImage(this.video as any, 0, 0, this.canvas?.width as number, this.canvas?.height as number); //绘制视频\r\n this.layer.reFresh();\r\n }\r\n }\r\n\r\n destroy () {\r\n this.stopRender();\r\n if (this.video) {\r\n this.video.pause();\r\n }\r\n this.video = null;\r\n }\r\n\r\n setUrl (url: string) {\r\n this.stopRender();\r\n this.canPlay = false;\r\n if (this.video) {\r\n this.video.src = url;\r\n this.load();\r\n }\r\n }\r\n\r\n setZooms (zooms) {\r\n this.getLayer().setZoom(zooms);\r\n }\r\n\r\n setOpacity (opacity) {\r\n this.getLayer().setOpacity(opacity);\r\n }\r\n\r\n setBounds (bounds) {\r\n this.getLayer().setBounds(bounds);\r\n }\r\n\r\n setzIndex (zIndex) {\r\n this.getLayer().setzIndex(zIndex);\r\n }\r\n\r\n show () {\r\n this.getLayer().show();\r\n }\r\n\r\n hide () {\r\n this.getLayer().hide();\r\n }\r\n}\r\n\r\nexport default VideoLayer;\r\n"],"names":["_a"],"mappings":"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"}