add artplayer-plugin-vtt-thumbnail

This commit is contained in:
Harvey Zack committed 2023-01-14 14:41:50 +08:00
1 parent 20a4252955
commit 4028a46195
22 files changed
+660 -140

No files matched your search

+1 -1
View File
@@ -125,7 +125,7 @@ img {
z-index: 9;
top: 45px;
left: 0;
width: 200px;
width: 250px;
padding: 0 10px;
background: #2b2b2b;
}
+9
View File
@@ -0,0 +1,9 @@
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/bbb-video.mp4',
plugins: [
artplayerPluginVttThumbnail({
vtt: '/assets/sample/bbb-thumbnails.vtt',
})
]
});
File renamed without changes.
+120 -120
View File
@@ -1,361 +1,361 @@
WEBVTT
00:00.000 --> 00:05.000
../img/bbb-sprite.jpg#xywh=0,0,128,72
bbb-sprite.jpg#xywh=0,0,128,72
00:05.000 --> 00:10.000
../img/bbb-sprite.jpg#xywh=128,0,128,72
bbb-sprite.jpg#xywh=128,0,128,72
00:10.000 --> 00:15.000
../img/bbb-sprite.jpg#xywh=256,0,128,72
bbb-sprite.jpg#xywh=256,0,128,72
00:15.000 --> 00:20.000
../img/bbb-sprite.jpg#xywh=384,0,128,72
bbb-sprite.jpg#xywh=384,0,128,72
00:20.000 --> 00:25.000
../img/bbb-sprite.jpg#xywh=512,0,128,72
bbb-sprite.jpg#xywh=512,0,128,72
00:25.000 --> 00:30.000
../img/bbb-sprite.jpg#xywh=640,0,128,72
bbb-sprite.jpg#xywh=640,0,128,72
00:30.000 --> 00:35.000
../img/bbb-sprite.jpg#xywh=768,0,128,72
bbb-sprite.jpg#xywh=768,0,128,72
00:35.000 --> 00:40.000
../img/bbb-sprite.jpg#xywh=896,0,128,72
bbb-sprite.jpg#xywh=896,0,128,72
00:40.000 --> 00:45.000
../img/bbb-sprite.jpg#xywh=1024,0,128,72
bbb-sprite.jpg#xywh=1024,0,128,72
00:45.000 --> 00:50.000
../img/bbb-sprite.jpg#xywh=1152,0,128,72
bbb-sprite.jpg#xywh=1152,0,128,72
00:50.000 --> 00:55.000
../img/bbb-sprite.jpg#xywh=1280,0,128,72
bbb-sprite.jpg#xywh=1280,0,128,72
00:55.000 --> 01:00.000
../img/bbb-sprite.jpg#xywh=0,72,128,72
bbb-sprite.jpg#xywh=0,72,128,72
01:00.000 --> 01:05.000
../img/bbb-sprite.jpg#xywh=128,72,128,72
bbb-sprite.jpg#xywh=128,72,128,72
01:05.000 --> 01:10.000
../img/bbb-sprite.jpg#xywh=256,72,128,72
bbb-sprite.jpg#xywh=256,72,128,72
01:10.000 --> 01:15.000
../img/bbb-sprite.jpg#xywh=384,72,128,72
bbb-sprite.jpg#xywh=384,72,128,72
01:15.000 --> 01:20.000
../img/bbb-sprite.jpg#xywh=512,72,128,72
bbb-sprite.jpg#xywh=512,72,128,72
01:20.000 --> 01:25.000
../img/bbb-sprite.jpg#xywh=640,72,128,72
bbb-sprite.jpg#xywh=640,72,128,72
01:25.000 --> 01:30.000
../img/bbb-sprite.jpg#xywh=768,72,128,72
bbb-sprite.jpg#xywh=768,72,128,72
01:30.000 --> 01:35.000
../img/bbb-sprite.jpg#xywh=896,72,128,72
bbb-sprite.jpg#xywh=896,72,128,72
01:35.000 --> 01:40.000
../img/bbb-sprite.jpg#xywh=1024,72,128,72
bbb-sprite.jpg#xywh=1024,72,128,72
01:40.000 --> 01:45.000
../img/bbb-sprite.jpg#xywh=1152,72,128,72
bbb-sprite.jpg#xywh=1152,72,128,72
01:45.000 --> 01:50.000
../img/bbb-sprite.jpg#xywh=1280,72,128,72
bbb-sprite.jpg#xywh=1280,72,128,72
01:50.000 --> 01:55.000
../img/bbb-sprite.jpg#xywh=0,144,128,72
bbb-sprite.jpg#xywh=0,144,128,72
01:55.000 --> 02:00.000
../img/bbb-sprite.jpg#xywh=128,144,128,72
bbb-sprite.jpg#xywh=128,144,128,72
02:00.000 --> 02:05.000
../img/bbb-sprite.jpg#xywh=256,144,128,72
bbb-sprite.jpg#xywh=256,144,128,72
02:05.000 --> 02:10.000
../img/bbb-sprite.jpg#xywh=384,144,128,72
bbb-sprite.jpg#xywh=384,144,128,72
02:10.000 --> 02:15.000
../img/bbb-sprite.jpg#xywh=512,144,128,72
bbb-sprite.jpg#xywh=512,144,128,72
02:15.000 --> 02:20.000
../img/bbb-sprite.jpg#xywh=640,144,128,72
bbb-sprite.jpg#xywh=640,144,128,72
02:20.000 --> 02:25.000
../img/bbb-sprite.jpg#xywh=768,144,128,72
bbb-sprite.jpg#xywh=768,144,128,72
02:25.000 --> 02:30.000
../img/bbb-sprite.jpg#xywh=896,144,128,72
bbb-sprite.jpg#xywh=896,144,128,72
02:30.000 --> 02:35.000
../img/bbb-sprite.jpg#xywh=1024,144,128,72
bbb-sprite.jpg#xywh=1024,144,128,72
02:35.000 --> 02:40.000
../img/bbb-sprite.jpg#xywh=1152,144,128,72
bbb-sprite.jpg#xywh=1152,144,128,72
02:40.000 --> 02:45.000
../img/bbb-sprite.jpg#xywh=1280,144,128,72
bbb-sprite.jpg#xywh=1280,144,128,72
02:45.000 --> 02:50.000
../img/bbb-sprite.jpg#xywh=0,216,128,72
bbb-sprite.jpg#xywh=0,216,128,72
02:50.000 --> 02:55.000
../img/bbb-sprite.jpg#xywh=128,216,128,72
bbb-sprite.jpg#xywh=128,216,128,72
02:55.000 --> 03:00.000
../img/bbb-sprite.jpg#xywh=256,216,128,72
bbb-sprite.jpg#xywh=256,216,128,72
03:00.000 --> 03:05.000
../img/bbb-sprite.jpg#xywh=384,216,128,72
bbb-sprite.jpg#xywh=384,216,128,72
03:05.000 --> 03:10.000
../img/bbb-sprite.jpg#xywh=512,216,128,72
bbb-sprite.jpg#xywh=512,216,128,72
03:10.000 --> 03:15.000
../img/bbb-sprite.jpg#xywh=640,216,128,72
bbb-sprite.jpg#xywh=640,216,128,72
03:15.000 --> 03:20.000
../img/bbb-sprite.jpg#xywh=768,216,128,72
bbb-sprite.jpg#xywh=768,216,128,72
03:20.000 --> 03:25.000
../img/bbb-sprite.jpg#xywh=896,216,128,72
bbb-sprite.jpg#xywh=896,216,128,72
03:25.000 --> 03:30.000
../img/bbb-sprite.jpg#xywh=1024,216,128,72
bbb-sprite.jpg#xywh=1024,216,128,72
03:30.000 --> 03:35.000
../img/bbb-sprite.jpg#xywh=1152,216,128,72
bbb-sprite.jpg#xywh=1152,216,128,72
03:35.000 --> 03:40.000
../img/bbb-sprite.jpg#xywh=1280,216,128,72
bbb-sprite.jpg#xywh=1280,216,128,72
03:40.000 --> 03:45.000
../img/bbb-sprite.jpg#xywh=0,288,128,72
bbb-sprite.jpg#xywh=0,288,128,72
03:45.000 --> 03:50.000
../img/bbb-sprite.jpg#xywh=128,288,128,72
bbb-sprite.jpg#xywh=128,288,128,72
03:50.000 --> 03:55.000
../img/bbb-sprite.jpg#xywh=256,288,128,72
bbb-sprite.jpg#xywh=256,288,128,72
03:55.000 --> 04:00.000
../img/bbb-sprite.jpg#xywh=384,288,128,72
bbb-sprite.jpg#xywh=384,288,128,72
04:00.000 --> 04:05.000
../img/bbb-sprite.jpg#xywh=512,288,128,72
bbb-sprite.jpg#xywh=512,288,128,72
04:05.000 --> 04:10.000
../img/bbb-sprite.jpg#xywh=640,288,128,72
bbb-sprite.jpg#xywh=640,288,128,72
04:10.000 --> 04:15.000
../img/bbb-sprite.jpg#xywh=768,288,128,72
bbb-sprite.jpg#xywh=768,288,128,72
04:15.000 --> 04:20.000
../img/bbb-sprite.jpg#xywh=896,288,128,72
bbb-sprite.jpg#xywh=896,288,128,72
04:20.000 --> 04:25.000
../img/bbb-sprite.jpg#xywh=1024,288,128,72
bbb-sprite.jpg#xywh=1024,288,128,72
04:25.000 --> 04:30.000
../img/bbb-sprite.jpg#xywh=1152,288,128,72
bbb-sprite.jpg#xywh=1152,288,128,72
04:30.000 --> 04:35.000
../img/bbb-sprite.jpg#xywh=1280,288,128,72
bbb-sprite.jpg#xywh=1280,288,128,72
04:35.000 --> 04:40.000
../img/bbb-sprite.jpg#xywh=0,360,128,72
bbb-sprite.jpg#xywh=0,360,128,72
04:40.000 --> 04:45.000
../img/bbb-sprite.jpg#xywh=128,360,128,72
bbb-sprite.jpg#xywh=128,360,128,72
04:45.000 --> 04:50.000
../img/bbb-sprite.jpg#xywh=256,360,128,72
bbb-sprite.jpg#xywh=256,360,128,72
04:50.000 --> 04:55.000
../img/bbb-sprite.jpg#xywh=384,360,128,72
bbb-sprite.jpg#xywh=384,360,128,72
04:55.000 --> 05:00.000
../img/bbb-sprite.jpg#xywh=512,360,128,72
bbb-sprite.jpg#xywh=512,360,128,72
05:00.000 --> 05:05.000
../img/bbb-sprite.jpg#xywh=640,360,128,72
bbb-sprite.jpg#xywh=640,360,128,72
05:05.000 --> 05:10.000
../img/bbb-sprite.jpg#xywh=768,360,128,72
bbb-sprite.jpg#xywh=768,360,128,72
05:10.000 --> 05:15.000
../img/bbb-sprite.jpg#xywh=896,360,128,72
bbb-sprite.jpg#xywh=896,360,128,72
05:15.000 --> 05:20.000
../img/bbb-sprite.jpg#xywh=1024,360,128,72
bbb-sprite.jpg#xywh=1024,360,128,72
05:20.000 --> 05:25.000
../img/bbb-sprite.jpg#xywh=1152,360,128,72
bbb-sprite.jpg#xywh=1152,360,128,72
05:25.000 --> 05:30.000
../img/bbb-sprite.jpg#xywh=1280,360,128,72
bbb-sprite.jpg#xywh=1280,360,128,72
05:30.000 --> 05:35.000
../img/bbb-sprite.jpg#xywh=0,432,128,72
bbb-sprite.jpg#xywh=0,432,128,72
05:35.000 --> 05:40.000
../img/bbb-sprite.jpg#xywh=128,432,128,72
bbb-sprite.jpg#xywh=128,432,128,72
05:40.000 --> 05:45.000
../img/bbb-sprite.jpg#xywh=256,432,128,72
bbb-sprite.jpg#xywh=256,432,128,72
05:45.000 --> 05:50.000
../img/bbb-sprite.jpg#xywh=384,432,128,72
bbb-sprite.jpg#xywh=384,432,128,72
05:50.000 --> 05:55.000
../img/bbb-sprite.jpg#xywh=512,432,128,72
bbb-sprite.jpg#xywh=512,432,128,72
05:55.000 --> 06:00.000
../img/bbb-sprite.jpg#xywh=640,432,128,72
bbb-sprite.jpg#xywh=640,432,128,72
06:00.000 --> 06:05.000
../img/bbb-sprite.jpg#xywh=768,432,128,72
bbb-sprite.jpg#xywh=768,432,128,72
06:05.000 --> 06:10.000
../img/bbb-sprite.jpg#xywh=896,432,128,72
bbb-sprite.jpg#xywh=896,432,128,72
06:10.000 --> 06:15.000
../img/bbb-sprite.jpg#xywh=1024,432,128,72
bbb-sprite.jpg#xywh=1024,432,128,72
06:15.000 --> 06:20.000
../img/bbb-sprite.jpg#xywh=1152,432,128,72
bbb-sprite.jpg#xywh=1152,432,128,72
06:20.000 --> 06:25.000
../img/bbb-sprite.jpg#xywh=1280,432,128,72
bbb-sprite.jpg#xywh=1280,432,128,72
06:25.000 --> 06:30.000
../img/bbb-sprite.jpg#xywh=0,504,128,72
bbb-sprite.jpg#xywh=0,504,128,72
06:30.000 --> 06:35.000
../img/bbb-sprite.jpg#xywh=128,504,128,72
bbb-sprite.jpg#xywh=128,504,128,72
06:35.000 --> 06:40.000
../img/bbb-sprite.jpg#xywh=256,504,128,72
bbb-sprite.jpg#xywh=256,504,128,72
06:40.000 --> 06:45.000
../img/bbb-sprite.jpg#xywh=384,504,128,72
bbb-sprite.jpg#xywh=384,504,128,72
06:45.000 --> 06:50.000
../img/bbb-sprite.jpg#xywh=512,504,128,72
bbb-sprite.jpg#xywh=512,504,128,72
06:50.000 --> 06:55.000
../img/bbb-sprite.jpg#xywh=640,504,128,72
bbb-sprite.jpg#xywh=640,504,128,72
06:55.000 --> 07:00.000
../img/bbb-sprite.jpg#xywh=768,504,128,72
bbb-sprite.jpg#xywh=768,504,128,72
07:00.000 --> 07:05.000
../img/bbb-sprite.jpg#xywh=896,504,128,72
bbb-sprite.jpg#xywh=896,504,128,72
07:05.000 --> 07:10.000
../img/bbb-sprite.jpg#xywh=1024,504,128,72
bbb-sprite.jpg#xywh=1024,504,128,72
07:10.000 --> 07:15.000
../img/bbb-sprite.jpg#xywh=1152,504,128,72
bbb-sprite.jpg#xywh=1152,504,128,72
07:15.000 --> 07:20.000
../img/bbb-sprite.jpg#xywh=1280,504,128,72
bbb-sprite.jpg#xywh=1280,504,128,72
07:20.000 --> 07:25.000
../img/bbb-sprite.jpg#xywh=0,576,128,72
bbb-sprite.jpg#xywh=0,576,128,72
07:25.000 --> 07:30.000
../img/bbb-sprite.jpg#xywh=128,576,128,72
bbb-sprite.jpg#xywh=128,576,128,72
07:30.000 --> 07:35.000
../img/bbb-sprite.jpg#xywh=256,576,128,72
bbb-sprite.jpg#xywh=256,576,128,72
07:35.000 --> 07:40.000
../img/bbb-sprite.jpg#xywh=384,576,128,72
bbb-sprite.jpg#xywh=384,576,128,72
07:40.000 --> 07:45.000
../img/bbb-sprite.jpg#xywh=512,576,128,72
bbb-sprite.jpg#xywh=512,576,128,72
07:45.000 --> 07:50.000
../img/bbb-sprite.jpg#xywh=640,576,128,72
bbb-sprite.jpg#xywh=640,576,128,72
07:50.000 --> 07:55.000
../img/bbb-sprite.jpg#xywh=768,576,128,72
bbb-sprite.jpg#xywh=768,576,128,72
07:55.000 --> 08:00.000
../img/bbb-sprite.jpg#xywh=896,576,128,72
bbb-sprite.jpg#xywh=896,576,128,72
08:00.000 --> 08:05.000
../img/bbb-sprite.jpg#xywh=1024,576,128,72
bbb-sprite.jpg#xywh=1024,576,128,72
08:05.000 --> 08:10.000
../img/bbb-sprite.jpg#xywh=1152,576,128,72
bbb-sprite.jpg#xywh=1152,576,128,72
08:10.000 --> 08:15.000
../img/bbb-sprite.jpg#xywh=1280,576,128,72
bbb-sprite.jpg#xywh=1280,576,128,72
08:15.000 --> 08:20.000
../img/bbb-sprite.jpg#xywh=0,648,128,72
bbb-sprite.jpg#xywh=0,648,128,72
08:20.000 --> 08:25.000
../img/bbb-sprite.jpg#xywh=128,648,128,72
bbb-sprite.jpg#xywh=128,648,128,72
08:25.000 --> 08:30.000
../img/bbb-sprite.jpg#xywh=256,648,128,72
bbb-sprite.jpg#xywh=256,648,128,72
08:30.000 --> 08:35.000
../img/bbb-sprite.jpg#xywh=384,648,128,72
bbb-sprite.jpg#xywh=384,648,128,72
08:35.000 --> 08:40.000
../img/bbb-sprite.jpg#xywh=512,648,128,72
bbb-sprite.jpg#xywh=512,648,128,72
08:40.000 --> 08:45.000
../img/bbb-sprite.jpg#xywh=640,648,128,72
bbb-sprite.jpg#xywh=640,648,128,72
08:45.000 --> 08:50.000
../img/bbb-sprite.jpg#xywh=768,648,128,72
bbb-sprite.jpg#xywh=768,648,128,72
08:50.000 --> 08:55.000
../img/bbb-sprite.jpg#xywh=896,648,128,72
bbb-sprite.jpg#xywh=896,648,128,72
08:55.000 --> 09:00.000
../img/bbb-sprite.jpg#xywh=1024,648,128,72
bbb-sprite.jpg#xywh=1024,648,128,72
09:00.000 --> 09:05.000
../img/bbb-sprite.jpg#xywh=1152,648,128,72
bbb-sprite.jpg#xywh=1152,648,128,72
09:05.000 --> 09:10.000
../img/bbb-sprite.jpg#xywh=1280,648,128,72
bbb-sprite.jpg#xywh=1280,648,128,72
09:10.000 --> 09:15.000
../img/bbb-sprite.jpg#xywh=0,720,128,72
bbb-sprite.jpg#xywh=0,720,128,72
09:15.000 --> 09:20.000
../img/bbb-sprite.jpg#xywh=128,720,128,72
bbb-sprite.jpg#xywh=128,720,128,72
09:20.000 --> 09:25.000
../img/bbb-sprite.jpg#xywh=256,720,128,72
bbb-sprite.jpg#xywh=256,720,128,72
09:25.000 --> 09:30.000
../img/bbb-sprite.jpg#xywh=384,720,128,72
bbb-sprite.jpg#xywh=384,720,128,72
09:30.000 --> 09:35.000
../img/bbb-sprite.jpg#xywh=512,720,128,72
bbb-sprite.jpg#xywh=512,720,128,72
09:35.000 --> 09:40.000
../img/bbb-sprite.jpg#xywh=640,720,128,72
bbb-sprite.jpg#xywh=640,720,128,72
09:40.000 --> 09:45.000
../img/bbb-sprite.jpg#xywh=768,720,128,72
bbb-sprite.jpg#xywh=768,720,128,72
09:45.000 --> 09:50.000
../img/bbb-sprite.jpg#xywh=896,720,128,72
bbb-sprite.jpg#xywh=896,720,128,72
09:50.000 --> 09:55.000
../img/bbb-sprite.jpg#xywh=1024,720,128,72
bbb-sprite.jpg#xywh=1024,720,128,72
09:55.000 --> 10:00.000
../img/bbb-sprite.jpg#xywh=1152,720,128,72
bbb-sprite.jpg#xywh=1152,720,128,72
Binary file not shown.
@@ -0,0 +1,7 @@
/*!
* artplayer-plugin-vtt-thumbnail.js v1.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2023 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,r,o){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof i[r]&&i[r],u=l.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,n){if(!u[t]){if(!e[t]){var o="function"==typeof i[r]&&i[r];if(!n&&o)return o(t,!0);if(l)return l(t,!0);if(s&&"string"==typeof t)return s(t);var a=new Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}d.resolve=function(n){var r=e[t][1][n];return null!=r?r:n},d.cache={};var c=u[t]=new f.Module(t);e[t][0].call(c.exports,d,c,c.exports,this)}return u[t].exports;function d(e){var t=d.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=u,f.parent=l,f.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(f,"root",{get:function(){return i[r]}}),i[r]=f;for(var a=0;a<t.length;a++)f(t[a]);if(n){var c=f(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=c:"function"==typeof define&&define.amd&&define((function(){return c}))}}({YTqB2:[function(e,t,n){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(n);var o=e("./getVttArray"),i=r.interopDefault(o);function l(e){return async t=>{const{constructor:{utils:{setStyle:n,clamp:r}},template:{$progress:o},events:{proxy:l}}=t,u=await(0,i.default)(e.vtt);return t.controls.add({name:"thumbnails",position:"top",index:20,style:e.style||{},mounted(e){l(o,"mousemove",(async i=>{n(e,"display","block");const{second:l,width:s}=function(e,t){const{$progress:n}=e.template,{left:o}=n.getBoundingClientRect(),i=r(t.pageX-o,0,n.clientWidth);return{width:i,second:i/n.clientWidth*e.duration}}(t,i),f=u.find((e=>l>=e.start&&l<=e.end));if(!f)return n(e,"display","none");n(e,"backgroundImage",`url(${f.url})`),n(e,"height",`${f.h}px`),n(e,"width",`${f.w}px`),n(e,"backgroundPosition",`-${f.x}px -${f.y}px`),s<=f.w/2?n(e,"left",0):s>o.clientWidth-f.w/2?n(e,"left",o.clientWidth-f.w+"px"):n(e,"left",s-f.w/2+"px")})),l(o,"mouseleave",(()=>{n(e,"display","none")})),t.on("hover",(t=>{n(e,"display",t?"block":"none")}))}}),{name:"artplayerPluginVttThumbnail"}}}n.default=l,l.env="production",l.version="1.0.0",l.build="2023-01-14 14:41:14","undefined"!=typeof window&&(window.artplayerPluginVttThumbnail=l)},{"./getVttArray":"4IFMi","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4IFMi":[function(e,t,n){function r(e){var t,n,r,o=e.split("."),i=o[0].split(":")||[],l=(t=o[1]||"0",n=3,r="0",t.length>n?String(t):((n-=t.length)>r.length&&(r+=r.repeat(n/r.length)),String(t)+r.slice(0,n))),u=Number(l)/1e3;return 3600*Number(i[i.length-3]||0)+60*Number(i[i.length-2]||0)+Number(i[i.length-1]||0)+u}e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=async function(e=""){const t=(await(await fetch(e)).text()).split(/[\n\r]/gm).filter((e=>e.trim())),n=[];for(let o=1;o<t.length;o+=2){const i=t[o],l=t[o+1];if(!l.trim())continue;const u=/((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)(?: ?--> ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/,s=i.match(u),f=/(.*)#(\w{4})=(.*)/i,a=l.match(f),c=Math.floor(r(s[1])),d=Math.floor(r(s[2])),p=e.split("/");p.pop(),p.push(a[1]);const h={start:c,end:d,url:p.join("/")},m=a[2].split(""),g=a[3].split(",");for(let e=0;e<m.length;e++)h[m[e]]=g[e];n.push(h)}return n}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9pCYc":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["YTqB2"],"YTqB2","parcelRequire4dc0");
@@ -0,0 +1,7 @@
/*!
* artplayer-plugin-vtt-thumbnail.js v1.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2023 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,r,o){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof i[r]&&i[r],u=l.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(t,n){if(!u[t]){if(!e[t]){var o="function"==typeof i[r]&&i[r];if(!n&&o)return o(t,!0);if(l)return l(t,!0);if(f&&"string"==typeof t)return f(t);var a=new Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}d.resolve=function(n){var r=e[t][1][n];return null!=r?r:n},d.cache={};var c=u[t]=new s.Module(t);e[t][0].call(c.exports,d,c,c.exports,this)}return u[t].exports;function d(e){var t=d.resolve(e);return!1===t?{}:s(t)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.exports={}},s.modules=e,s.cache=u,s.parent=l,s.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(s,"root",{get:function(){return i[r]}}),i[r]=s;for(var a=0;a<t.length;a++)s(t[a]);if(n){var c=s(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=c:"function"==typeof define&&define.amd&&define((function(){return c}))}}({flifo:[function(e,t,n){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(n);var o=e("./getVttArray"),i=r.interopDefault(o);function l(e){return async t=>{const{constructor:{utils:{setStyle:n,clamp:r}},template:{$progress:o},events:{proxy:l}}=t,u=await(0,i.default)(e.vtt);return t.controls.add({name:"thumbnails",position:"top",index:20,style:e.style||{},mounted(e){l(o,"mousemove",(async i=>{n(e,"display","block");const{second:l,width:f}=function(e,t){const{$progress:n}=e.template,{left:o}=n.getBoundingClientRect(),i=r(t.pageX-o,0,n.clientWidth);return{width:i,second:i/n.clientWidth*e.duration}}(t,i),s=u.find((e=>l>=e.start&&l<=e.end));if(!s)return n(e,"display","none");n(e,"backgroundImage",`url(${s.url})`),n(e,"height",`${s.h}px`),n(e,"width",`${s.w}px`),n(e,"backgroundPosition",`-${s.x}px -${s.y}px`),f<=s.w/2?n(e,"left",0):f>o.clientWidth-s.w/2?n(e,"left",o.clientWidth-s.w+"px"):n(e,"left",f-s.w/2+"px")})),l(o,"mouseleave",(()=>{n(e,"display","none")})),t.on("hover",(t=>{n(e,"display",t?"block":"none")}))}}),{name:"artplayerPluginVttThumbnail"}}}n.default=l,l.env="production",l.version="1.0.0",l.build="2023-01-14 14:41:16","undefined"!=typeof window&&(window.artplayerPluginVttThumbnail=l)},{"./getVttArray":"5fcbX","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5fcbX":[function(e,t,n){function r(e){var t,n,r,o=e.split("."),i=o[0].split(":")||[],l=(t=o[1]||"0",n=3,r="0",t.length>n?String(t):((n-=t.length)>r.length&&(r+=r.repeat(n/r.length)),String(t)+r.slice(0,n))),u=Number(l)/1e3;return 3600*Number(i[i.length-3]||0)+60*Number(i[i.length-2]||0)+Number(i[i.length-1]||0)+u}e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=async function(e=""){const t=(await(await fetch(e)).text()).split(/[\n\r]/gm).filter((e=>e.trim())),n=[];for(let o=1;o<t.length;o+=2){const i=t[o],l=t[o+1];if(!l.trim())continue;const u=/((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)(?: ?--> ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/,f=i.match(u),s=/(.*)#(\w{4})=(.*)/i,a=l.match(s),c=Math.floor(r(f[1])),d=Math.floor(r(f[2])),p=e.split("/");p.pop(),p.push(a[1]);const h={start:c,end:d,url:p.join("/")},m=a[2].split(""),g=a[3].split(",");for(let e=0;e<m.length;e++)h[m[e]]=g[e];n.push(h)}return n}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"47PTV":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["flifo"],"flifo","parcelRequire4dc0");
+4
View File
@@ -47,6 +47,10 @@
<a
href="/?libs=https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js%0A./uncompiled/artplayer-plugin-hls-quality/index.js&example=hls.quality">artplayer-plugin-hls-quality</a>
</li>
<li>
<a
href="/?libs=./uncompiled/artplayer-plugin-vtt-thumbnail/index.js&example=vtt.thumbnail">artplayer-plugin-vtt-thumbnail</a>
</li>
</ul>
<ul>
<li class="title">Tools</li>
@@ -0,0 +1,287 @@
// modules are defined as an array
// [ module function, map of requires ]
//
// map of requires is short require name -> numeric require
//
// anything defined in a previous bundle is accessed via the
// orig method which is the require for previous bundles
(function (modules, entry, mainEntry, parcelRequireName, globalName) {
/* eslint-disable no-undef */
var globalObject =
typeof globalThis !== 'undefined'
? globalThis
: typeof self !== 'undefined'
? self
: typeof window !== 'undefined'
? window
: typeof global !== 'undefined'
? global
: {};
/* eslint-enable no-undef */
// Save the require from previous bundle to this closure if any
var previousRequire =
typeof globalObject[parcelRequireName] === 'function' &&
globalObject[parcelRequireName];
var cache = previousRequire.cache || {};
// Do not use `require` to prevent Webpack from trying to bundle this call
var nodeRequire =
typeof module !== 'undefined' &&
typeof module.require === 'function' &&
module.require.bind(module);
function newRequire(name, jumped) {
if (!cache[name]) {
if (!modules[name]) {
// if we cannot find the module within our internal map or
// cache jump to the current global require ie. the last bundle
// that was added to the page.
var currentRequire =
typeof globalObject[parcelRequireName] === 'function' &&
globalObject[parcelRequireName];
if (!jumped && currentRequire) {
return currentRequire(name, true);
}
// If there are other bundles on this page the require from the
// previous one is saved to 'previousRequire'. Repeat this as
// many times as there are bundles until the module is found or
// we exhaust the require chain.
if (previousRequire) {
return previousRequire(name, true);
}
// Try the node require function if it exists.
if (nodeRequire && typeof name === 'string') {
return nodeRequire(name);
}
var err = new Error("Cannot find module '" + name + "'");
err.code = 'MODULE_NOT_FOUND';
throw err;
}
localRequire.resolve = resolve;
localRequire.cache = {};
var module = (cache[name] = new newRequire.Module(name));
modules[name][0].call(
module.exports,
localRequire,
module,
module.exports,
this
);
}
return cache[name].exports;
function localRequire(x) {
var res = localRequire.resolve(x);
return res === false ? {} : newRequire(res);
}
function resolve(x) {
var id = modules[name][1][x];
return id != null ? id : x;
}
}
function Module(moduleName) {
this.id = moduleName;
this.bundle = newRequire;
this.exports = {};
}
newRequire.isParcelRequire = true;
newRequire.Module = Module;
newRequire.modules = modules;
newRequire.cache = cache;
newRequire.parent = previousRequire;
newRequire.register = function (id, exports) {
modules[id] = [
function (require, module) {
module.exports = exports;
},
{},
];
};
Object.defineProperty(newRequire, 'root', {
get: function () {
return globalObject[parcelRequireName];
},
});
globalObject[parcelRequireName] = newRequire;
for (var i = 0; i < entry.length; i++) {
newRequire(entry[i]);
}
if (mainEntry) {
// Expose entry point to Node, AMD or browser globals
// Based on https://github.com/ForbesLindesay/umd/blob/master/template.js
var mainExports = newRequire(mainEntry);
// CommonJS
if (typeof exports === 'object' && typeof module !== 'undefined') {
module.exports = mainExports;
// RequireJS
} else if (typeof define === 'function' && define.amd) {
define(function () {
return mainExports;
});
// <script>
} else if (globalName) {
this[globalName] = mainExports;
}
}
})({"1gq8W":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
var _getVttArray = require("./getVttArray");
var _getVttArrayDefault = parcelHelpers.interopDefault(_getVttArray);
function artplayerPluginVttThumbnail(option) {
return async (art)=>{
const { constructor: { utils: { setStyle , clamp } } , template: { $progress } , events: { proxy } } = art;
const vttArray = await (0, _getVttArrayDefault.default)(option.vtt);
function getPosFromEvent(art, event) {
const { $progress } = art.template;
const { left } = $progress.getBoundingClientRect();
const width = clamp(event.pageX - left, 0, $progress.clientWidth);
const second = width / $progress.clientWidth * art.duration;
return {
width,
second
};
}
art.controls.add({
name: "thumbnails",
position: "top",
index: 20,
style: option.style || {},
mounted ($control) {
proxy($progress, "mousemove", async (event)=>{
setStyle($control, "display", "block");
const { second , width } = getPosFromEvent(art, event);
const find = vttArray.find((item)=>second >= item.start && second <= item.end);
if (!find) return setStyle($control, "display", "none");
setStyle($control, "backgroundImage", `url(${find.url})`);
setStyle($control, "height", `${find.h}px`);
setStyle($control, "width", `${find.w}px`);
setStyle($control, "backgroundPosition", `-${find.x}px -${find.y}px`);
if (width <= find.w / 2) setStyle($control, "left", 0);
else if (width > $progress.clientWidth - find.w / 2) setStyle($control, "left", `${$progress.clientWidth - find.w}px`);
else setStyle($control, "left", `${width - find.w / 2}px`);
});
proxy($progress, "mouseleave", ()=>{
setStyle($control, "display", "none");
});
art.on("hover", (state)=>{
setStyle($control, "display", state ? "block" : "none");
});
}
});
return {
name: "artplayerPluginVttThumbnail"
};
};
}
exports.default = artplayerPluginVttThumbnail;
artplayerPluginVttThumbnail.env = "development";
artplayerPluginVttThumbnail.version = "1.0.0";
artplayerPluginVttThumbnail.build = "2023-01-14 13:32:26";
if (typeof window !== "undefined") window["artplayerPluginVttThumbnail"] = artplayerPluginVttThumbnail;
},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6","./getVttArray":"gSM1I"}],"5dUr6":[function(require,module,exports) {
exports.interopDefault = function(a) {
return a && a.__esModule ? a : {
default: a
};
};
exports.defineInteropFlag = function(a) {
Object.defineProperty(a, "__esModule", {
value: true
});
};
exports.exportAll = function(source, dest) {
Object.keys(source).forEach(function(key) {
if (key === "default" || key === "__esModule" || dest.hasOwnProperty(key)) return;
Object.defineProperty(dest, key, {
enumerable: true,
get: function() {
return source[key];
}
});
});
return dest;
};
exports.export = function(dest, destName, get) {
Object.defineProperty(dest, destName, {
enumerable: true,
get: get
});
};
},{}],"gSM1I":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
function padEnd(str, targetLength, padString) {
if (str.length > targetLength) return String(str);
else {
targetLength = targetLength - str.length;
if (targetLength > padString.length) padString += padString.repeat(targetLength / padString.length);
return String(str) + padString.slice(0, targetLength);
}
}
function t2d(time) {
var arr = time.split(".");
var left = arr[0].split(":") || [];
var right = padEnd(arr[1] || "0", 3, "0");
var ms = Number(right) / 1000;
var h = Number(left[left.length - 3] || 0) * 3600;
var m = Number(left[left.length - 2] || 0) * 60;
var s = Number(left[left.length - 1] || 0);
return h + m + s + ms;
}
async function getVttArray(vttUrl = "") {
const vttString = await (await fetch(vttUrl)).text();
const lines = vttString.split(/[\n\r]/gm).filter((item)=>item.trim());
const vttArray = [];
for(let i = 1; i < lines.length; i += 2){
const time = lines[i];
const text = lines[i + 1];
if (!text.trim()) continue;
const timeReg = /((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)(?: ?--> ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/;
const timeMatch = time.match(timeReg);
const textReg = /(.*)#(\w{4})=(.*)/i;
const textMatch = text.match(textReg);
const start = Math.floor(t2d(timeMatch[1]));
const end = Math.floor(t2d(timeMatch[2]));
const urlArr = vttUrl.split("/");
urlArr.pop();
urlArr.push(textMatch[1]);
const url = urlArr.join("/");
const result = {
start,
end,
url
};
const keys = textMatch[2].split("");
const values = textMatch[3].split(",");
for(let j = 0; j < keys.length; j++)result[keys[j]] = values[j];
vttArray.push(result);
}
return vttArray;
}
exports.default = getVttArray;
},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}]},["1gq8W"], "1gq8W", "parcelRequire4dc0")
//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
{"mappings":"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","sources":["packages/artplayer-plugin-vtt-thumbnail/src/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","packages/artplayer-plugin-vtt-thumbnail/src/getVttArray.js"],"sourcesContent":["import getVttArray from './getVttArray';\n\nexport default function artplayerPluginVttThumbnail(option) {\n return async (art) => {\n const {\n constructor: {\n utils: { setStyle, clamp },\n },\n template: { $progress },\n events: { proxy },\n } = art;\n\n const vttArray = await getVttArray(option.vtt);\n\n function getPosFromEvent(art, event) {\n const { $progress } = art.template;\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.pageX - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * art.duration;\n return { width, second };\n }\n\n art.controls.add({\n name: 'thumbLine truncated
+5 -5
View File
@@ -248,7 +248,7 @@ class Artplayer extends (0, _emitterDefault.default) {
return "development";
}
static get build() {
return "2023-01-08 17:38:33";
return "2023-01-14 12:27:04";
}
static get config() {
return 0, _configDefault.default;
@@ -3981,12 +3981,12 @@ parcelHelpers.defineInteropFlag(exports);
var _utils = require("../utils");
function hoverInit(art, events) {
const { $player } = art.template;
events.hover($player, ()=>{
events.hover($player, (event)=>{
(0, _utils.addClass)($player, "art-hover");
art.emit("hover", true);
}, ()=>{
art.emit("hover", true, event);
}, (event)=>{
(0, _utils.removeClass)($player, "art-hover");
art.emit("hover", false);
art.emit("hover", false, event);
});
}
exports.default = hoverInit;
+1 -1
View File
@@ -1 +1 @@
{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAAA;;AACA;;AACA;;AACA;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAI,KAAK;AACT,MAAM,YAAY,EAAE;AACL,MAAM,kBAAkB,CAAA,GAAA,uBAAO,AAAD;IACzC,YAAY,MAAM,EAAE,aAAa,CAAE;QAC/B,KAAK;QAEL,IAAI,CAAC,EAAE,GAAG,EAAE;QAEZ,MAAM,cAAc,OAAM,SAAS,CAAC,UAAU,MAAM,EAAE;QACtD,IAAI,CAAC,MAAM,GAAG,CAAA,GAAA,+BAAS,AAAD,EAAE,aAAa,CAAA,GAAA,sBAAM,AAAD;QAE1C,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,IAAI,CAAC,OAAO,GAAG,KAAK;QACpB,IAAI,CAAC,OAAO,GAAG,KAAK;QACpB,IAAI,CAAC,OAAO,GAAG,KAAK;QACpB,IAAI,CAAC,QAAQ,GAAG,KAAK;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK;QAEtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA,GAAA,yBAAS,AAAD,EAAE,IAAI;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA,GAAA,wBAAQ,AAAD,EAAE,IAAI;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA,GAAA,sBAAM,AAAD,EAAE,IAAI;QAE7B,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA,GAAA,uBAAO,AAAD,EAAE,IAAI;YAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA,GAAA,qBAAK,AAAD,EAAE,IAAI;YAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA,GAAA,oBAAI,AAAD,EAAE,IAAI;YACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA,GAAA,sBAAM,AAAD,EAAE,IAAI;YAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA,GAAA,sBAAM,AAAD,EAAE,IAAI;YAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA,GAAA,qBAAK,AAAD,EAAE,IAAI;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA,GAAA,uBAAO,AAAD,EAAE,IAAI;YAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA,GAAA,2BAAW,AAAD,EAAE,IAAI;YACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA,GAAA,wBAAQ,AAAD,EAAE,IAAI;YACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA,GAAA,oBAAI,AAAD,EAAE,IAAI;YACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA,GAAA,uBAAO,AAAD,EAAE,IAAI;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA,GAAA,sBAAM,AAAD,EAAE,IAAI;YAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA,GAAA,oBAAI,AAAD,EAAE,IAAI;YACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA,GAAA,uBAAO,AAAD,EAAE,IAAI;YAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA,GAAA,uBAAO,AAAD,EAAE,IAAI;QACnC,OACI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA,GAAA,sBAAM,AAAD,EAAE,IAAI;QAGjC,IAAI,OAAO,kBAAkB,YACzB,IAAI,CAAC,EAAE,CAAC,SAAS,IAAM,cAAc,IAAI,CAAC,IAAI,EAAE,IAAI;QAGxD,IAAI,UAAU,KAAK,EAAE;YACjB,MAAM,MAAM,CAAC,MAAQ,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;YAC7D,IAAI,aAAa,UAAU,OAAO;YAClC,IAAI,SAAS,UAAU,GAAG;YAC1B,IAAI,WAAW,UAAU,KAAK;YAC9B,IAAK,IAAI,QAAQ,GAAG,QAAQ,CAAA,GAAA,sBAAM,AAAD,EAAE,MAAM,CAAC,MAAM,EAAE,QAC9C,IAAI,CAAC,EAAE,CAAC,WAAW,CAAA,GAAA,sBAAM,AAAD,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,QAAU,IAAI,WAAW,MAAM,IAAI;QAErF,CAAC;QAED,UAAU,IAAI,CAAC,IAAI;IACvB;IAEA,WAAW,YAAY;QACnB,OAAO;IACX;IAEA,WAAW,UAAU;QACjB;IACJ;IAEA,WAAW,MAAM;QACb;IACJ;IAEA,WAAW,QAAQ;QACf;IACJ;IAEA,WAAW,SAAS;QAChB,OAAO,GAAA,sBAAM;IACjB;IAEA,WAAW,QAAQ;QACf,OAAO;IACX;IAEA,WAAW,SAAS;QAChB,OAAO,GAAA,sBAAM;IACjB;IAEA,WAAW,UAAU;QACjB,OAAO,GAAA,uBAAO;IAClB;IAEA,WAAW,YAAY;QACnB,OAAO,GAAA,+BAAS;IACpB;IAEA,WAAW,SAAS;QAChB,OAAO,CAAA,GAAA,+BAAS,AAAD,EAAE,MAAM;IAC3B;IAEA,WAAW,OAAO;QACd,OAAO,CAAA,GAAA,wBAAQ,AAAD,EAAE,IAAI;IACxB;IAEA,WAAW,SAAS;QAChB,OAAO;YACH,IAAI;YACJ,WAAW;YACX,KAAK;YACL,QAAQ;YACR,OAAO;YACP,MAAM;YACN,OAAO;YACP,QAAQ;YACR,QAAQ,KAAK;YACb,OAAO,KAAK;YACZ,UAAU,KAAK;YACf,UAAU,KAAK;YACf,UAAU,KAAK;YACf,MAAM,KAAK;YACX,MAAM,KAAK;YACX,cAAc,KAAK;YACnB,aAAa,KAAK;YAClB,YAAY,KAAK;YACjB,SAAS,KAAK;YACd,QAAQ,IAAI;YACZ,KAAK,KAAK;YACV,OAAO,IAAI;YACX,UAAU,IAAI;YACd,YAAY,KAAK;YACjB,eAAe,KAAK;YACpB,gBAAgB,KAAK;YACrB,iBAAiB,KAAK;YACtB,QAAQ,KAAK;YACb,aAAa,IAAI;YACjB,MAAM,KAAK;YACX,aAAa,KAAK;YAClB,cAAc,KAAK;YACnB,iBAAiB,KAAK;YACtB,SAAS,KAAK;YACd,QAAQ,EAAE;YACV,aAAa,EAAE;YACf,UAAU,EAAE;YACZ,UAAU,EAAE;YACZ,SAAS,EAAE;YACX,WAAW,EAAE;YACb,SAAS,EAAE;YACX,WAAW,EAAE;YACb,YAAY;gBACR,KAAK;gBACL,QAAQ;gBACR,QAAQ;gBACR,OAAO;gBACP,QAAQ;YACZ;YACA,UAAU;gBACN,KAAK;gBACL,MAAM;gBACN,OAAO,CAAC;gBACR,UAAU;YACd;YACA,eAAe;gBACX,UAAU,KAAK;gBACf,SAAS,OAAM,QAAQ,GAAG,SAAS,UAAU;YACjD;YACA,MAAM,CAAC;YACP,OAAO,CAAC;YACR,YAAY,CAAC;YACb,MAAM,UAAU,QAAQ,CAAC,WAAW;QACxC;IACJ;IAEA,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK;IAC5B;IAEA,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK;IAC9B;IAEA,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM;IAC/B;IAEA,QAAQ,aAAa,IAAI,EAAE;QACvB,IAAI,CAAC,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtB,UAAU,MAAM,CAAC,UAAU,OAAO,CAAC,IAAI,GAAG;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,IAAI,CAAC,IAAI,CAAC;IACd;AACJ;kBA5LqB;AA8LrB,UAAU,KAAK,GAAG,KAAK;AACvB,UAAU,WAAW,GAAG,IAAI;AAC5B,UAAU,WAAW,GAAG;AACxB,UAAU,aAAa,GAAG;AAC1B,UAAU,kBAAkB,GAAG;AAC/B,UAAU,mBAAmB,GAAG;AAChC,UAAU,cAAc,GAAG;AAC3B,UAAU,mBAAmB,GAAG;AAChC,UAAU,qBAAqB,GAAG;AAClC,UAAU,0BAA0B,GAAG;AACvC,UAAU,kBAAkB,GAAG;AAC/B,UAAU,mBAAmB,GAAG;AAChC,UAAU,WAAW,GAAG;AACxB,UAAU,WAAW,GAAG;AACxB,UAAU,UAAU,GAAG;AACvB,UAAU,iBAAiB,GAAG;AAC9B,UAAU,iBAAiB,GAAG;AAC9B,UAAU,qBAAqB,GAAG;AAClC,UAAU,kBAAkB,GAAG;AAC/B,UAAU,oBAAoB,GAAG;AACjC,UAAU,iBAAiB,GAAG;AAC9B,UAAU,aAAa,GAAG;AAC1B,UAAU,wBAAwB,GAAG;AACrC,UAAU,6BAA6B,GAAG;AAC1C,UAAU,4BAA4B,GAAG;AACzC,UAAU,cAAc,GAAG;AAC3B,UAAU,kBAAkB,GAAG;AAC/B,UAAU,iBAAiB,GAAG;AAC9B,UAAU,gBAAgB,GAAG;AAC7B,UAAU,WAAW,GAAG;AACxB,UAAU,SAAS,GAAG;AACtB,UAAU,eAAe,GAAG;AAC5B,UAAU,aAAa,GAAG;IAAC;IAAK;IAAM;Line truncated
{"mappings":"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 truncated
+13 -13
View File
@@ -34,25 +34,25 @@
"dependencies": {
"@babel/eslint-parser": "^7.19.1",
"@babel/preset-react": "^7.18.6",
"@parcel/config-default": "^2.7.0",
"@parcel/core": "^2.7.0",
"@parcel/optimizer-data-url": "^2.7.0",
"@parcel/reporter-cli": "^2.7.0",
"@parcel/transformer-inline-string": "^2.7.0",
"@parcel/transformer-less": "^2.7.0",
"@parcel/transformer-vue": "^2.7.0",
"@parcel/config-default": "^2.8.2",
"@parcel/core": "^2.8.2",
"@parcel/optimizer-data-url": "^2.8.2",
"@parcel/reporter-cli": "^2.8.2",
"@parcel/transformer-inline-string": "^2.8.2",
"@parcel/transformer-less": "^2.8.2",
"@parcel/transformer-vue": "^2.8.2",
"artplayer": "latest",
"chai": "^4.3.6",
"chai": "^4.3.7",
"cpy": "^9.0.1",
"cross-env": "^7.0.3",
"cross-spawn": "^7.0.3",
"eslint": "^8.26.0",
"eslint": "^8.31.0",
"glob": "^8.0.3",
"lerna": "^6.0.1",
"mocha": "^10.1.0",
"lerna": "^6.4.1",
"mocha": "^10.2.0",
"mocha-chrome": "^2.2.0",
"pre-commit": "^1.2.2",
"prettier": "^2.7.1",
"prettier": "^2.8.3",
"prompts": "^2.4.2",
"servor": "^4.0.2",
"workbox-build": "^6.5.4"
@@ -64,4 +64,4 @@
"prettier"
],
"__npminstall_done": false
}
}
@@ -0,0 +1,10 @@
node_modules
.DS_Store
yarn.lock
package-lock.json
test
coverage
.nyc_output
.parcel-cache
.cache
docs
@@ -0,0 +1 @@
package-lock=false
@@ -0,0 +1,11 @@
# artplayer-plugin-vtt-thumbnail
vtt thumbnail plugin for ArtPlayer
## Demo
[https://artplayer.org](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-vtt-thumbnail/index.js&example=vtt.thumbnail)
## License
MIT © Harvey Zack
@@ -0,0 +1,7 @@
/*!
* artplayer-plugin-vtt-thumbnail.js v1.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2023 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,r,o){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof i[r]&&i[r],u=l.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,n){if(!u[t]){if(!e[t]){var o="function"==typeof i[r]&&i[r];if(!n&&o)return o(t,!0);if(l)return l(t,!0);if(s&&"string"==typeof t)return s(t);var a=new Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}d.resolve=function(n){var r=e[t][1][n];return null!=r?r:n},d.cache={};var c=u[t]=new f.Module(t);e[t][0].call(c.exports,d,c,c.exports,this)}return u[t].exports;function d(e){var t=d.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=u,f.parent=l,f.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(f,"root",{get:function(){return i[r]}}),i[r]=f;for(var a=0;a<t.length;a++)f(t[a]);if(n){var c=f(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=c:"function"==typeof define&&define.amd&&define((function(){return c}))}}({YTqB2:[function(e,t,n){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(n);var o=e("./getVttArray"),i=r.interopDefault(o);function l(e){return async t=>{const{constructor:{utils:{setStyle:n,clamp:r}},template:{$progress:o},events:{proxy:l}}=t,u=await(0,i.default)(e.vtt);return t.controls.add({name:"thumbnails",position:"top",index:20,style:e.style||{},mounted(e){l(o,"mousemove",(async i=>{n(e,"display","block");const{second:l,width:s}=function(e,t){const{$progress:n}=e.template,{left:o}=n.getBoundingClientRect(),i=r(t.pageX-o,0,n.clientWidth);return{width:i,second:i/n.clientWidth*e.duration}}(t,i),f=u.find((e=>l>=e.start&&l<=e.end));if(!f)return n(e,"display","none");n(e,"backgroundImage",`url(${f.url})`),n(e,"height",`${f.h}px`),n(e,"width",`${f.w}px`),n(e,"backgroundPosition",`-${f.x}px -${f.y}px`),s<=f.w/2?n(e,"left",0):s>o.clientWidth-f.w/2?n(e,"left",o.clientWidth-f.w+"px"):n(e,"left",s-f.w/2+"px")})),l(o,"mouseleave",(()=>{n(e,"display","none")})),t.on("hover",(t=>{n(e,"display",t?"block":"none")}))}}),{name:"artplayerPluginVttThumbnail"}}}n.default=l,l.env="production",l.version="1.0.0",l.build="2023-01-14 14:41:14","undefined"!=typeof window&&(window.artplayerPluginVttThumbnail=l)},{"./getVttArray":"4IFMi","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"4IFMi":[function(e,t,n){function r(e){var t,n,r,o=e.split("."),i=o[0].split(":")||[],l=(t=o[1]||"0",n=3,r="0",t.length>n?String(t):((n-=t.length)>r.length&&(r+=r.repeat(n/r.length)),String(t)+r.slice(0,n))),u=Number(l)/1e3;return 3600*Number(i[i.length-3]||0)+60*Number(i[i.length-2]||0)+Number(i[i.length-1]||0)+u}e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=async function(e=""){const t=(await(await fetch(e)).text()).split(/[\n\r]/gm).filter((e=>e.trim())),n=[];for(let o=1;o<t.length;o+=2){const i=t[o],l=t[o+1];if(!l.trim())continue;const u=/((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)(?: ?--> ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/,s=i.match(u),f=/(.*)#(\w{4})=(.*)/i,a=l.match(f),c=Math.floor(r(s[1])),d=Math.floor(r(s[2])),p=e.split("/");p.pop(),p.push(a[1]);const h={start:c,end:d,url:p.join("/")},m=a[2].split(""),g=a[3].split(",");for(let e=0;e<m.length;e++)h[m[e]]=g[e];n.push(h)}return n}},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9pCYc":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["YTqB2"],"YTqB2","parcelRequire4dc0");
@@ -0,0 +1,7 @@
/*!
* artplayer-plugin-vtt-thumbnail.js v1.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2023 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,r,o){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof i[r]&&i[r],u=l.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(t,n){if(!u[t]){if(!e[t]){var o="function"==typeof i[r]&&i[r];if(!n&&o)return o(t,!0);if(l)return l(t,!0);if(f&&"string"==typeof t)return f(t);var a=new Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}d.resolve=function(n){var r=e[t][1][n];return null!=r?r:n},d.cache={};var c=u[t]=new s.Module(t);e[t][0].call(c.exports,d,c,c.exports,this)}return u[t].exports;function d(e){var t=d.resolve(e);return!1===t?{}:s(t)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.exports={}},s.modules=e,s.cache=u,s.parent=l,s.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(s,"root",{get:function(){return i[r]}}),i[r]=s;for(var a=0;a<t.length;a++)s(t[a]);if(n){var c=s(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=c:"function"==typeof define&&define.amd&&define((function(){return c}))}}({flifo:[function(e,t,n){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(n);var o=e("./getVttArray"),i=r.interopDefault(o);function l(e){return async t=>{const{constructor:{utils:{setStyle:n,clamp:r}},template:{$progress:o},events:{proxy:l}}=t,u=await(0,i.default)(e.vtt);return t.controls.add({name:"thumbnails",position:"top",index:20,style:e.style||{},mounted(e){l(o,"mousemove",(async i=>{n(e,"display","block");const{second:l,width:f}=function(e,t){const{$progress:n}=e.template,{left:o}=n.getBoundingClientRect(),i=r(t.pageX-o,0,n.clientWidth);return{width:i,second:i/n.clientWidth*e.duration}}(t,i),s=u.find((e=>l>=e.start&&l<=e.end));if(!s)return n(e,"display","none");n(e,"backgroundImage",`url(${s.url})`),n(e,"height",`${s.h}px`),n(e,"width",`${s.w}px`),n(e,"backgroundPosition",`-${s.x}px -${s.y}px`),f<=s.w/2?n(e,"left",0):f>o.clientWidth-s.w/2?n(e,"left",o.clientWidth-s.w+"px"):n(e,"left",f-s.w/2+"px")})),l(o,"mouseleave",(()=>{n(e,"display","none")})),t.on("hover",(t=>{n(e,"display",t?"block":"none")}))}}),{name:"artplayerPluginVttThumbnail"}}}n.default=l,l.env="production",l.version="1.0.0",l.build="2023-01-14 14:41:16","undefined"!=typeof window&&(window.artplayerPluginVttThumbnail=l)},{"./getVttArray":"5fcbX","@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"5fcbX":[function(e,t,n){function r(e){var t,n,r,o=e.split("."),i=o[0].split(":")||[],l=(t=o[1]||"0",n=3,r="0",t.length>n?String(t):((n-=t.length)>r.length&&(r+=r.repeat(n/r.length)),String(t)+r.slice(0,n))),u=Number(l)/1e3;return 3600*Number(i[i.length-3]||0)+60*Number(i[i.length-2]||0)+Number(i[i.length-1]||0)+u}e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(n),n.default=async function(e=""){const t=(await(await fetch(e)).text()).split(/[\n\r]/gm).filter((e=>e.trim())),n=[];for(let o=1;o<t.length;o+=2){const i=t[o],l=t[o+1];if(!l.trim())continue;const u=/((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)(?: ?--> ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/,f=i.match(u),s=/(.*)#(\w{4})=(.*)/i,a=l.match(s),c=Math.floor(r(f[1])),d=Math.floor(r(f[2])),p=e.split("/");p.pop(),p.push(a[1]);const h={start:c,end:d,url:p.join("/")},m=a[2].split(""),g=a[3].split(",");for(let e=0;e<m.length;e++)h[m[e]]=g[e];n.push(h)}return n}},{"@parcel/transformer-js/src/esmodule-helpers.js":"47PTV"}],"47PTV":[function(e,t,n){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach((function(n){"default"===n||"__esModule"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["flifo"],"flifo","parcelRequire4dc0");
@@ -0,0 +1,24 @@
{
"license": "MIT",
"version": "1.0.0",
"name": "artplayer-plugin-vtt-thumbnail",
"types": "types/artplayer-plugin-vtt-thumbnail.d.ts",
"description": "vtt thumbnail plugin for ArtPlayer",
"main": "dist/artplayer-plugin-vtt-thumbnail.js",
"legacy": "dist/artplayer-plugin-vtt-thumbnail.legacy.js",
"author": "Harvey Zack <laozhaochaguan@gmail.com>",
"browserslist": "> 0.5%, last 2 versions, not dead",
"homepage": "https://artplayer.org",
"repository": {
"type": "git",
"url": "git+https://github.com/zhw2590582/ArtPlayer.git"
},
"bugs": {
"url": "https://github.com/zhw2590582/ArtPlayer/issues"
},
"keywords": [
"html5",
"video",
"player"
]
}
@@ -0,0 +1,64 @@
function padEnd(str, targetLength, padString) {
if (str.length > targetLength) {
return String(str);
} else {
targetLength = targetLength - str.length;
if (targetLength > padString.length) {
padString += padString.repeat(targetLength / padString.length);
}
return String(str) + padString.slice(0, targetLength);
}
}
function t2d(time) {
var arr = time.split('.');
var left = arr[0].split(':') || [];
var right = padEnd(arr[1] || '0', 3, '0');
var ms = Number(right) / 1000;
var h = Number(left[left.length - 3] || 0) * 3600;
var m = Number(left[left.length - 2] || 0) * 60;
var s = Number(left[left.length - 1] || 0);
return h + m + s + ms;
}
export default async function getVttArray(vttUrl = '') {
const vttString = await (await fetch(vttUrl)).text();
const lines = vttString.split(/[\n\r]/gm).filter((item) => item.trim());
const vttArray = [];
for (let i = 1; i < lines.length; i += 2) {
const time = lines[i];
const text = lines[i + 1];
if (!text.trim()) continue;
const timeReg =
/((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)(?: ?--> ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/;
const timeMatch = time.match(timeReg);
const textReg = /(.*)#(\w{4})=(.*)/i;
const textMatch = text.match(textReg);
const start = Math.floor(t2d(timeMatch[1]));
const end = Math.floor(t2d(timeMatch[2]));
const urlArr = vttUrl.split('/');
urlArr.pop();
urlArr.push(textMatch[1]);
const url = urlArr.join('/');
const result = { start, end, url };
const keys = textMatch[2].split('');
const values = textMatch[3].split(',');
for (let j = 0; j < keys.length; j++) {
result[keys[j]] = values[j];
}
vttArray.push(result);
}
return vttArray;
}
@@ -0,0 +1,71 @@
import getVttArray from './getVttArray';
export default function artplayerPluginVttThumbnail(option) {
return async (art) => {
const {
constructor: {
utils: { setStyle, clamp },
},
template: { $progress },
events: { proxy },
} = art;
const vttArray = await getVttArray(option.vtt);
function getPosFromEvent(art, event) {
const { $progress } = art.template;
const { left } = $progress.getBoundingClientRect();
const width = clamp(event.pageX - left, 0, $progress.clientWidth);
const second = (width / $progress.clientWidth) * art.duration;
return { width, second };
}
art.controls.add({
name: 'thumbnails',
position: 'top',
index: 20,
style: option.style || {},
mounted($control) {
proxy($progress, 'mousemove', async (event) => {
setStyle($control, 'display', 'block');
const { second, width } = getPosFromEvent(art, event);
const find = vttArray.find((item) => second >= item.start && second <= item.end);
if (!find) return setStyle($control, 'display', 'none');
setStyle($control, 'backgroundImage', `url(${find.url})`);
setStyle($control, 'height', `${find.h}px`);
setStyle($control, 'width', `${find.w}px`);
setStyle($control, 'backgroundPosition', `-${find.x}px -${find.y}px`);
if (width <= find.w / 2) {
setStyle($control, 'left', 0);
} else if (width > $progress.clientWidth - find.w / 2) {
setStyle($control, 'left', `${$progress.clientWidth - find.w}px`);
} else {
setStyle($control, 'left', `${width - find.w / 2}px`);
}
});
proxy($progress, 'mouseleave', () => {
setStyle($control, 'display', 'none');
});
art.on('hover', (state) => {
setStyle($control, 'display', state ? 'block' : 'none');
});
},
});
return {
name: 'artplayerPluginVttThumbnail',
};
};
}
artplayerPluginVttThumbnail.env = process.env.NODE_ENV;
artplayerPluginVttThumbnail.version = process.env.APP_VER;
artplayerPluginVttThumbnail.build = process.env.BUILD_DATE;
if (typeof window !== 'undefined') {
window['artplayerPluginVttThumbnail'] = artplayerPluginVttThumbnail;
}
@@ -0,0 +1,10 @@
import type Artplayer from 'artplayer';
export = artplayerPluginVttThumbnail;
export as namespace artplayerPluginVttThumbnail;
declare const artplayerPluginVttThumbnail: (option: { vtt?: string; style?: Partial<CSSStyleDeclaration> }) => (
art: Artplayer,
) => {
name: 'artplayerPluginVttThumbnail';
};