Add detach api method to remove plugin from player

This commit is contained in:
Chris Boustead 2017-11-15 16:05:28 -05:00
parent 4c4f0179c3
commit 53fdf0a0fd
2 changed files with 14 additions and 6 deletions

View file

@ -1,6 +1,6 @@
{ {
"name": "videojs-vtt-thumbnails", "name": "videojs-vtt-thumbnails",
"version": "0.0.2", "version": "0.0.3",
"description": "Display thumnails on progress bar hover, driven by external VTT files.", "description": "Display thumnails on progress bar hover, driven by external VTT files.",
"main": "dist/videojs-vtt-thumbnails.cjs.js", "main": "dist/videojs-vtt-thumbnails.cjs.js",
"module": "dist/videojs-vtt-thumbnails.es.js", "module": "dist/videojs-vtt-thumbnails.es.js",

View file

@ -73,15 +73,23 @@ class vttThumbnailsPlugin {
} }
src(source){ src(source){
delete this.vttData; this.resetPlugin();
delete this.thumbnailHolder; this.options.src = source;
delete this.lastStyle; this.initializeThumbnails();
}
detach() {
this.resetPlugin();
}
resetPlugin() {
this.progressBar.removeEventListener('mouseenter',() => { return this.onBarMouseenter() }); this.progressBar.removeEventListener('mouseenter',() => { return this.onBarMouseenter() });
this.progressBar.removeEventListener('mouseleave',() => { return this.onBarMouseleave() }); this.progressBar.removeEventListener('mouseleave',() => { return this.onBarMouseleave() });
this.progressBar.removeEventListener('mousemove',this.onBarMousemove); this.progressBar.removeEventListener('mousemove',this.onBarMousemove);
delete this.progressBar; delete this.progressBar;
this.options.src = source; delete this.vttData;
this.initializeThumbnails(); delete this.thumbnailHolder;
delete this.lastStyle;
} }
/** /**