@mintplayer/vue-video-player 3.0.0 → 3.1.0
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.
- package/README.md +3 -0
- package/api-BPDz2Xi1.js +1 -0
- package/api-CMl9Bi4e.js +1 -0
- package/{api-C2IVrne3.mjs → api-CawTwqXJ.mjs} +17 -10
- package/{api-CqCOtAUb.mjs → api-iuf2ThYe.mjs} +31 -9
- package/index.css +1 -1
- package/index.js +1 -1
- package/index.mjs +105 -50
- package/lib/types.d.ts +4 -2
- package/package.json +1 -1
- package/api-B6qyhEI3.js +0 -1
- package/api-C2TK5P8W.js +0 -1
package/README.md
CHANGED
|
@@ -32,6 +32,9 @@ const playerState = ref(EPlayerState.unstarted);
|
|
|
32
32
|
</template>
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
+
`volume` and `mute` are kept across media, also when the next URL plays on another platform. Leave
|
|
36
|
+
them unbound to start at the first platform's own settings; they no longer default to `0` / `false`.
|
|
37
|
+
|
|
35
38
|
## Building
|
|
36
39
|
|
|
37
40
|
Run `nx build vue-video-player` to bundle the library with Vite.
|
package/api-BPDz2Xi1.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./src-CluKb0O6.js"),t=require("./takeUntil-MRP2QN5v.js"),n=require("./timer-mrjvJwyN.js");var r=require("./src-CYCud0_r.js").t(),i=class{get id(){return`soundcloud`}urlRegexes=[new RegExp(/(?<id>http[s]{0,1}:\/\/(www\.){0,1}soundcloud\.com\/.+)$/,`g`)];loadApi(){return(0,r.loadScript)(`https://w.soundcloud.com/player/api.js`)}prepareHtml(e){let t=encodeURIComponent(e.initialVideoId??``);return`<iframe id="${e.domId}" width="${e.width}" height="${e.height}" style="max-width:100%" src="https://w.soundcloud.com/player/?url=${t}&show_teaser=false&" allow="autoplay"></iframe>`}createPlayer(r,i){return new Promise((a,o)=>{if(!r.element)return o(`The SoundCloud api requires the options.element to be set`);let s=new e.i,c=SC.Widget(r.element.getElementsByTagName(`iframe`)[0]),l=50,u=50,d=!1,f=0,p=()=>{d||(u=l),d=!0},m=e.r({capabilities:[e.t.volume,e.t.mute,e.t.getTitle],loadVideoById:e=>c.load(e,{auto_play:r.autoplay}),setPlayerState:t=>{switch(t){case e.n.playing:c.play();break;case e.n.paused:c.pause();break;case e.n.ended:case e.n.unstarted:}},setMute:e=>{f=Date.now(),e?(p(),c.setVolume(0)):(d=!1,l=u,c.setVolume(u))},setVolume:e=>{d?u=e:(l=e,c.setVolume(e))},setProgress:e=>c.seekTo(e*1e3),setSize:(e,t)=>{if(r.element){let n=r.element.querySelector(`iframe`);n&&(n.width=String(e),n.height=String(t))}},getTitle:()=>new Promise(e=>c.getCurrentSound(t=>e(t.description??t.title))),setFullscreen:e=>{e&&(console.warn(`SoundCloud player doesn't support fullscreen mode`),setTimeout(()=>m.onFullscreenChange(!1),50))},getFullscreen:()=>new Promise(e=>e(!1)),setPip:e=>{e&&(console.warn(`SoundCloud player doesn't support PIP mode`),setTimeout(()=>m.onPipChange(!1),50))},getPip:()=>new Promise(e=>e(!1)),destroy:()=>s.next(!0)});c.bind(SC.Widget.Events.READY,()=>{a(m),typeof window<`u`&&n.t(0,50).pipe(t.t(s),t.t(i)).subscribe(()=>{c.getVolume(e=>{let t=Date.now()-f>150;e>0?(l=e,t&&(d=!1)):t&&p(),m.onVolumeChange(d?u:e),m.onMuteChange(e===0)})})}),c.bind(SC.Widget.Events.PLAY,()=>{m.onStateChange(e.n.playing),c.getDuration(e=>m.onDurationChange(e/1e3))}),c.bind(SC.Widget.Events.PAUSE,()=>m.onStateChange(e.n.paused)),c.bind(SC.Widget.Events.FINISH,()=>m.onStateChange(e.n.ended)),c.bind(SC.Widget.Events.PLAY_PROGRESS,e=>m.onCurrentTimeChange(e.currentPosition/1e3))})}};exports.SoundcloudApiService=i;
|
package/api-CMl9Bi4e.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./src-CluKb0O6.js"),t=require("./takeUntil-MRP2QN5v.js"),n=require("./timer-mrjvJwyN.js");var r=require("./src-CYCud0_r.js").t(),i=class{get id(){return`vimeo`}urlRegexes=[new RegExp(/http[s]{0,1}:\/\/(www\.){0,1}vimeo\.com\/(?<id>[0-9]+)$/,`g`)];loadApi(){return(0,r.loadScript)(`https://player.vimeo.com/api/player.js`)}prepareHtml(e){return`<div id="${e.domId}" style="max-width:100%"></div>`}createPlayer(r,i){return new Promise((a,o)=>{if(!r.domId)return o(`The Vimeo api requires the options.domId to be set`);if(!r.initialVideoId)return o(`Vimeo requires an initial video`);let s=new e.i,c,l=new Vimeo.Player(r.domId,{id:r.initialVideoId,width:r.width,height:r.height,autoplay:r.autoplay,pip:!0}),u=null,d=!1,f=0,p=e=>{u=e;let t=d;return Promise.resolve(l.setVolume(e/100)).then(()=>{t&&d&&l.setMuted(!0)}).catch(()=>void 0)},m=e=>(d=e.muted,f=Date.now(),e.muted&&l.setMuted(!0),e.volume===null?Promise.resolve():p(e.volume));l.ready().then(()=>{c=e.r({capabilities:[e.t.fullscreen,e.t.pictureInPicture,e.t.volume,e.t.mute,e.t.getTitle],loadVideoById:e=>{let t={volume:u,muted:d};Promise.resolve(l.loadVideo(e)).then(()=>m(t)).catch(()=>void 0)},setPlayerState:t=>{switch(t){case e.n.playing:l.play();break;case e.n.paused:l.pause();break;case e.n.ended:case e.n.unstarted:}},setVolume:e=>{p(e)},setMute:e=>{d=e,f=Date.now(),l.setMuted(e)},setProgress:e=>l.setCurrentTime(e),setSize:(e,t)=>{if(r.element){let n=r.element.querySelector(`div iframe`);n&&(n.width=String(e),n.height=String(t))}},getTitle:()=>l.getVideoTitle(),setFullscreen:e=>{e?l.requestFullscreen():l.exitFullscreen()},getFullscreen:()=>l.getFullscreen(),setPip:e=>{e?(l.requestPictureInPicture(),setTimeout(()=>{l.getPictureInPicture().then(t=>{t!==e&&(console.warn(`To enable pip from outside its iframe, you need to first focus the player, then call setPip`),c.onPipChange(t))})},50)):l.exitPictureInPicture()},getPip:()=>l.getPictureInPicture(),destroy:()=>{s.next(!0),l.destroy()}}),a(c)});let h=!1;l.on(`loaded`,()=>{c.onStateChange(e.n.unstarted),typeof window<`u`&&(setTimeout(()=>r.autoplay&&l.play(),600),h||(h=!0,n.t(0,50).pipe(t.t(s),t.t(i)).subscribe(()=>{l.getMuted().then(e=>{Date.now()-f>150&&(d=e),c.onMuteChange(e)})})),l.getVolume().then(e=>c.onVolumeChange(e*100)),l.getDuration().then(e=>c.onDurationChange(e)))}),l.on(`play`,()=>c.onStateChange(e.n.playing)),l.on(`pause`,()=>c.onStateChange(e.n.paused)),l.on(`ended`,()=>c.onStateChange(e.n.ended)),l.on(`volumechange`,e=>{u=e.volume*100,c.onVolumeChange(u)}),l.on(`timeupdate`,e=>c.onCurrentTimeChange(e.seconds)),l.on(`enterpictureinpicture`,()=>c.onPipChange(!0)),l.on(`leavepictureinpicture`,()=>c.onPipChange(!1)),l.on(`fullscreenchange`,e=>c.onFullscreenChange(e.fullscreen))})}};exports.VimeoApiService=i;
|
|
@@ -18,8 +18,14 @@ var s = o(), c = class {
|
|
|
18
18
|
createPlayer(o, s) {
|
|
19
19
|
return new Promise((c, l) => {
|
|
20
20
|
if (!o.element) return l("The SoundCloud api requires the options.element to be set");
|
|
21
|
-
let u = new e(), d = SC.Widget(o.element.getElementsByTagName("iframe")[0]), f = 50, p = 50, m =
|
|
22
|
-
|
|
21
|
+
let u = new e(), d = SC.Widget(o.element.getElementsByTagName("iframe")[0]), f = 50, p = 50, m = !1, h = 0, g = () => {
|
|
22
|
+
m || (p = f), m = !0;
|
|
23
|
+
}, _ = n({
|
|
24
|
+
capabilities: [
|
|
25
|
+
r.volume,
|
|
26
|
+
r.mute,
|
|
27
|
+
r.getTitle
|
|
28
|
+
],
|
|
23
29
|
loadVideoById: (e) => d.load(e, { auto_play: o.autoplay }),
|
|
24
30
|
setPlayerState: (e) => {
|
|
25
31
|
switch (e) {
|
|
@@ -34,10 +40,10 @@ var s = o(), c = class {
|
|
|
34
40
|
}
|
|
35
41
|
},
|
|
36
42
|
setMute: (e) => {
|
|
37
|
-
e ? (
|
|
43
|
+
h = Date.now(), e ? (g(), d.setVolume(0)) : (m = !1, f = p, d.setVolume(p));
|
|
38
44
|
},
|
|
39
45
|
setVolume: (e) => {
|
|
40
|
-
f = e, d.setVolume(e);
|
|
46
|
+
m ? p = e : (f = e, d.setVolume(e));
|
|
41
47
|
},
|
|
42
48
|
setProgress: (e) => d.seekTo(e * 1e3),
|
|
43
49
|
setSize: (e, t) => {
|
|
@@ -48,24 +54,25 @@ var s = o(), c = class {
|
|
|
48
54
|
},
|
|
49
55
|
getTitle: () => new Promise((e) => d.getCurrentSound((t) => e(t.description ?? t.title))),
|
|
50
56
|
setFullscreen: (e) => {
|
|
51
|
-
e && (console.warn("SoundCloud player doesn't support fullscreen mode"), setTimeout(() =>
|
|
57
|
+
e && (console.warn("SoundCloud player doesn't support fullscreen mode"), setTimeout(() => _.onFullscreenChange(!1), 50));
|
|
52
58
|
},
|
|
53
59
|
getFullscreen: () => new Promise((e) => e(!1)),
|
|
54
60
|
setPip: (e) => {
|
|
55
|
-
e && (console.warn("SoundCloud player doesn't support PIP mode"), setTimeout(() =>
|
|
61
|
+
e && (console.warn("SoundCloud player doesn't support PIP mode"), setTimeout(() => _.onPipChange(!1), 50));
|
|
56
62
|
},
|
|
57
63
|
getPip: () => new Promise((e) => e(!1)),
|
|
58
64
|
destroy: () => u.next(!0)
|
|
59
65
|
});
|
|
60
66
|
d.bind(SC.Widget.Events.READY, () => {
|
|
61
|
-
c(
|
|
67
|
+
c(_), typeof window < "u" && a(0, 50).pipe(i(u), i(s)).subscribe(() => {
|
|
62
68
|
d.getVolume((e) => {
|
|
63
|
-
|
|
69
|
+
let t = Date.now() - h > 150;
|
|
70
|
+
e > 0 ? (f = e, t && (m = !1)) : t && g(), _.onVolumeChange(m ? p : e), _.onMuteChange(e === 0);
|
|
64
71
|
});
|
|
65
72
|
});
|
|
66
73
|
}), d.bind(SC.Widget.Events.PLAY, () => {
|
|
67
|
-
|
|
68
|
-
}), d.bind(SC.Widget.Events.PAUSE, () =>
|
|
74
|
+
_.onStateChange(t.playing), d.getDuration((e) => _.onDurationChange(e / 1e3));
|
|
75
|
+
}), d.bind(SC.Widget.Events.PAUSE, () => _.onStateChange(t.paused)), d.bind(SC.Widget.Events.FINISH, () => _.onStateChange(t.ended)), d.bind(SC.Widget.Events.PLAY_PROGRESS, (e) => _.onCurrentTimeChange(e.currentPosition / 1e3));
|
|
69
76
|
});
|
|
70
77
|
}
|
|
71
78
|
};
|
|
@@ -24,7 +24,13 @@ var s = o(), c = class {
|
|
|
24
24
|
height: o.height,
|
|
25
25
|
autoplay: o.autoplay,
|
|
26
26
|
pip: !0
|
|
27
|
-
})
|
|
27
|
+
}), p = null, m = !1, h = 0, g = (e) => {
|
|
28
|
+
p = e;
|
|
29
|
+
let t = m;
|
|
30
|
+
return Promise.resolve(f.setVolume(e / 100)).then(() => {
|
|
31
|
+
t && m && f.setMuted(!0);
|
|
32
|
+
}).catch(() => void 0);
|
|
33
|
+
}, _ = (e) => (m = e.muted, h = Date.now(), e.muted && f.setMuted(!0), e.volume === null ? Promise.resolve() : g(e.volume));
|
|
28
34
|
f.ready().then(() => {
|
|
29
35
|
d = n({
|
|
30
36
|
capabilities: [
|
|
@@ -34,7 +40,13 @@ var s = o(), c = class {
|
|
|
34
40
|
r.mute,
|
|
35
41
|
r.getTitle
|
|
36
42
|
],
|
|
37
|
-
loadVideoById: (e) =>
|
|
43
|
+
loadVideoById: (e) => {
|
|
44
|
+
let t = {
|
|
45
|
+
volume: p,
|
|
46
|
+
muted: m
|
|
47
|
+
};
|
|
48
|
+
Promise.resolve(f.loadVideo(e)).then(() => _(t)).catch(() => void 0);
|
|
49
|
+
},
|
|
38
50
|
setPlayerState: (e) => {
|
|
39
51
|
switch (e) {
|
|
40
52
|
case t.playing:
|
|
@@ -47,8 +59,12 @@ var s = o(), c = class {
|
|
|
47
59
|
case t.unstarted:
|
|
48
60
|
}
|
|
49
61
|
},
|
|
50
|
-
setVolume: (e) =>
|
|
51
|
-
|
|
62
|
+
setVolume: (e) => {
|
|
63
|
+
g(e);
|
|
64
|
+
},
|
|
65
|
+
setMute: (e) => {
|
|
66
|
+
m = e, h = Date.now(), f.setMuted(e);
|
|
67
|
+
},
|
|
52
68
|
setProgress: (e) => f.setCurrentTime(e),
|
|
53
69
|
setSize: (e, t) => {
|
|
54
70
|
if (o.element) {
|
|
@@ -73,11 +89,17 @@ var s = o(), c = class {
|
|
|
73
89
|
u.next(!0), f.destroy();
|
|
74
90
|
}
|
|
75
91
|
}), c(d);
|
|
76
|
-
})
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
92
|
+
});
|
|
93
|
+
let v = !1;
|
|
94
|
+
f.on("loaded", () => {
|
|
95
|
+
d.onStateChange(t.unstarted), typeof window < "u" && (setTimeout(() => o.autoplay && f.play(), 600), v || (v = !0, a(0, 50).pipe(i(u), i(s)).subscribe(() => {
|
|
96
|
+
f.getMuted().then((e) => {
|
|
97
|
+
Date.now() - h > 150 && (m = e), d.onMuteChange(e);
|
|
98
|
+
});
|
|
99
|
+
})), f.getVolume().then((e) => d.onVolumeChange(e * 100)), f.getDuration().then((e) => d.onDurationChange(e)));
|
|
100
|
+
}), f.on("play", () => d.onStateChange(t.playing)), f.on("pause", () => d.onStateChange(t.paused)), f.on("ended", () => d.onStateChange(t.ended)), f.on("volumechange", (e) => {
|
|
101
|
+
p = e.volume * 100, d.onVolumeChange(p);
|
|
102
|
+
}), f.on("timeupdate", (e) => d.onCurrentTimeChange(e.seconds)), f.on("enterpictureinpicture", () => d.onPipChange(!0)), f.on("leavepictureinpicture", () => d.onPipChange(!1)), f.on("fullscreenchange", (e) => d.onFullscreenChange(e.fullscreen));
|
|
81
103
|
});
|
|
82
104
|
}
|
|
83
105
|
};
|
package/index.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
.vue-video-player[data-v-
|
|
1
|
+
.vue-video-player[data-v-9f2a491a]{justify-content:center;align-items:center;display:flex}.vue-video-player>div[data-v-9f2a491a]{width:100%}
|
|
2
2
|
/*$vite$:1*/
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src-CluKb0O6.js"),t=require("./BehaviorSubject-B43NQ6Ep.js"),n=require("./debounceTime-B4ed_w3_.js"),r=require("./takeUntil-MRP2QN5v.js"),i=require("./mapOneOrManyArgs-gqACUB3e.js"),a=require("./filter-Ck2Y29AT.js");let o=require("vue");function s(t,n){return n===void 0&&(n=e.c),t??=c,e.o(function(r,i){var a,o=!0;r.subscribe(e.a(i,function(e){var r=n(e);(o||!t(a,r))&&(o=!1,a=r,i.next(e))}))})}function c(e,t){return e===t}function l(e,t){return t.map(t=>{let n=t.urlRegexes.map(t=>new RegExp(t).exec(e)).filter(e=>e!==null);return n.length===0||n[0]===null||!n[0].groups?null:t.match2id?{api:t,id:t.match2id(n[0])}:{api:t,id:n[0].groups.id}}).filter(e=>e!==null).map(e=>e)}var u=class o{constructor(o,c){this.url$=new t.t(null),this.apis$=new t.t([]),this.host$=new t.t(void 0),this.videoRequest$=new t.t(null),this.playerInfo=null,this.domId=`player`,this.handlers=[],this.volumeObserver$=new e.i,this.muteObserver$=new e.i,this.currentTimeObserver$=new e.i,this.durationObserver$=new e.i,this.playerStateObserver$=new e.i,this.pipObserver$=new e.i,this.fullscreenObserver$=new e.i,this._width=600,this._height=450,this.autoplay=!0,this.
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src-CluKb0O6.js"),t=require("./BehaviorSubject-B43NQ6Ep.js"),n=require("./debounceTime-B4ed_w3_.js"),r=require("./takeUntil-MRP2QN5v.js"),i=require("./mapOneOrManyArgs-gqACUB3e.js"),a=require("./filter-Ck2Y29AT.js");let o=require("vue");function s(t,n){return n===void 0&&(n=e.c),t??=c,e.o(function(r,i){var a,o=!0;r.subscribe(e.a(i,function(e){var r=n(e);(o||!t(a,r))&&(o=!1,a=r,i.next(e))}))})}function c(e,t){return e===t}function l(e,t){return t.map(t=>{let n=t.urlRegexes.map(t=>new RegExp(t).exec(e)).filter(e=>e!==null);return n.length===0||n[0]===null||!n[0].groups?null:t.match2id?{api:t,id:t.match2id(n[0])}:{api:t,id:n[0].groups.id}}).filter(e=>e!==null).map(e=>e)}var u=class o{constructor(o,c){this.url$=new t.t(null),this.apis$=new t.t([]),this.host$=new t.t(void 0),this.videoRequest$=new t.t(null),this.playerInfo=null,this.domId=`player`,this.handlers=[],this.volumeObserver$=new e.i,this.muteObserver$=new e.i,this.currentTimeObserver$=new e.i,this.durationObserver$=new e.i,this.playerStateObserver$=new e.i,this.pipObserver$=new e.i,this.fullscreenObserver$=new e.i,this._width=600,this._height=450,this.autoplay=!0,this.desiredVolume=void 0,this.desiredMute=void 0,this.settleUntil=0,this.lastReapply=0,this._isFullscreen=!1,this._isPip=!1,this.destroyed$=new e.i,this.host$.next(c),this.apis$.next(o||[]),n.n([this.url$,this.host$,this.apis$]).pipe(n.t(20),r.t(this.destroyed$)).subscribe(([e,t,n])=>{if(t){if(e===null)this.playerInfo?.adapter?.destroy(),this.playerInfo=null,t.innerHTML=``;else{let t=l(e,n);if(t.length>0)this.videoRequest$.next(t[0]);else if(n.length>0)throw`No player found for url ${e}`}}}),n.n([this.videoRequest$,this.host$]).pipe(a.t(([e,t])=>!!t)).pipe(r.t(this.destroyed$)).subscribe(([e,t])=>{e?e.api.loadApi().then(()=>{e.api.id===this.playerInfo?.platformId&&e.api.canReusePlayer!==!1?this.loadAndApplySettings(this.playerInfo.adapter,e.id):(this.playerInfo?.adapter?.destroy(),this.setHtml(e,t),e.api.createPlayer({width:this.width,height:this.height,autoplay:this.autoplay,domId:this.domId,element:t,initialVideoId:e.id},this.destroyed$).then(t=>{this.playerInfo={platformId:e.api.id,videoId:e.id,adapter:t},t.onStateChange=e=>this.playerStateObserver$.next(e),t.onMuteChange=e=>this.muteObserver$.next(e),t.onVolumeChange=e=>this.volumeObserver$.next(e),t.onCurrentTimeChange=e=>this.currentTimeObserver$.next(e),t.onDurationChange=e=>this.durationObserver$.next(e),t.onPipChange=e=>this.pipObserver$.next(e),t.onFullscreenChange=e=>this.fullscreenObserver$.next(e),this.invokeEvent(`capabilitiesChange`,t.capabilities)}).then(()=>{let t=this.playerInfo?.adapter;t&&e.id!==void 0?this.loadAndApplySettings(t,e.id):t&&this.applySettings(t)}),this.pipObserver$.next(!1),this.fullscreenObserver$.next(!1))}):(this.playerInfo?.adapter?.destroy(),t&&(t.innerHTML=``))}),this.volumeObserver$.pipe(n.t(20),r.t(this.destroyed$)).subscribe(e=>this.onVolumeReport(e)),this.muteObserver$.pipe(n.t(20),r.t(this.destroyed$)).subscribe(e=>this.onMuteReport(e)),this.playerStateObserver$.pipe(n.t(20),s(),r.t(this.destroyed$)).subscribe(e=>this.invokeEvent(`stateChange`,e)),this.pipObserver$.pipe(n.t(20),s(),r.t(this.destroyed$)).subscribe(e=>this.invokeEvent(`isPipChange`,this._isPip=e)),this.fullscreenObserver$.pipe(n.t(20),s(),r.t(this.destroyed$)).subscribe(e=>this.invokeEvent(`isFullscreenChange`,this._isFullscreen=e)),this.progressObserver$=n.n([this.currentTimeObserver$,this.durationObserver$]).pipe(n.t(10),r.t(this.destroyed$)).pipe(i.n(([e,t])=>({currentTime:e,duration:t}))),this.progressObserver$.pipe(r.t(this.destroyed$)).subscribe(e=>this.invokeEvent(`progressChange`,e))}get url(){return this.url$.value}set url(e){this.url$.next(e||null)}set apis(e){this.apis$.next(e)}set host(e){this.host$.next(e)}static{this.playerCounter=1}on(e,t){this.handlers.push({event:e,handler:t})}off(e,t){let n=this.handlers.findIndex(n=>n.event===e&&n.handler===t);n>-1&&this.handlers.splice(n,1)}invokeEvent(e,t){this.handlers.filter(t=>t.event===e).forEach(e=>e.handler(t))}setHtml(e,t){e?(this.domId=`player${o.playerCounter++}`,t.innerHTML=e.api.prepareHtml({domId:this.domId,width:this._width,height:this._height,initialVideoId:e.id,autoplay:this.autoplay})):t.innerHTML=``}get width(){return this._width}set width(e){this._width=e,this.playerInfo?.adapter.setSize(this._width,this._height)}get height(){return this._height}set height(e){this._height=e,this.playerInfo?.adapter.setSize(this._width,this._height)}set playerState(e){this.playerInfo?.adapter.setPlayerState(e)}getTitle(){return new Promise(e=>{let t=this.playerInfo?.adapter;t?t.getTitle().then(t=>e(t)):e(null)})}static{this.SETTLE_MS=2e3}static{this.REAPPLY_INTERVAL_MS=250}get volume(){return this.desiredVolume??0}set volume(t){if(typeof t!=`number`||!Number.isFinite(t))return;this.desiredVolume=t;let n=this.playerInfo?.adapter;n&&this.can(n,e.t.volume)&&(this.openSettleWindow(),this.call(()=>n.setVolume(t)))}get mute(){return this.desiredMute??!1}set mute(t){if(typeof t!=`boolean`)return;this.desiredMute=t;let n=this.playerInfo?.adapter;n&&this.can(n,e.t.mute)&&(this.openSettleWindow(),this.call(()=>n.setMute(t)))}loadAndApplySettings(e,t){try{e.loadVideoById(t)}finally{this.applySettings(e)}}applySettings(t,n=!0){n&&this.openSettleWindow();let r=this.can(t,e.t.mute);if(r&&this.desiredMute===!0&&this.call(()=>t.setMute(!0)),this.desiredVolume!==void 0&&this.can(t,e.t.volume)){let e=this.desiredVolume;this.call(()=>t.setVolume(e))}r&&this.desiredMute===!1&&this.call(()=>t.setMute(!1))}onVolumeReport(e){typeof e==`number`&&Number.isFinite(e)&&(this.desiredVolume!==void 0&&Math.abs(this.desiredVolume-e)<.5||(this.desiredVolume!==void 0&&this.isSettling()?this.reapply():(this.desiredVolume=e,this.invokeEvent(`volumeChange`,e))))}onMuteReport(e){typeof e==`boolean`&&this.desiredMute!==e&&(this.desiredMute!==void 0&&this.isSettling()?this.reapply():(this.desiredMute=e,this.invokeEvent(`muteChange`,e)))}openSettleWindow(){this.settleUntil=Date.now()+o.SETTLE_MS}isSettling(){return Date.now()<this.settleUntil}reapply(){let e=this.playerInfo?.adapter,t=Date.now();e&&t-this.lastReapply>=o.REAPPLY_INTERVAL_MS&&(this.lastReapply=t,this.applySettings(e,!1))}can(e,t){return(e.capabilities??[]).includes(t)}call(e){try{e()}catch(e){console.warn(`VideoPlayer: the player rejected a volume or mute change`,e)}}get isFullscreen(){return this._isFullscreen}set isFullscreen(e){this.playerInfo&&this.playerInfo.adapter&&this.playerInfo.adapter.setFullscreen(e)}get isPip(){return this._isPip}set isPip(e){this.playerInfo&&this.playerInfo.adapter&&this.playerInfo.adapter.setPip(e)}setIsPip(e){this.playerInfo?.adapter?.setPip(e)}destroy(){this.playerInfo?.adapter?.destroy(),this.destroyed$.next(!0)}},d=()=>Promise.resolve().then(()=>require("./api-D5spnI9J.js")).then(e=>new e.DailymotionApiService),f=()=>Promise.resolve().then(()=>require("./api-C-ycGc3Y.js")).then(e=>new e.FacebookApiService),p=()=>Promise.resolve().then(()=>require("./api-BXwOuGGp.js")).then(e=>new e.FileApiService),m=()=>Promise.resolve().then(()=>require("./api-C355Aio5.js")).then(e=>new e.MixcloudApiService),h=()=>Promise.resolve().then(()=>require("./api-BPDz2Xi1.js")).then(e=>new e.SoundcloudApiService),g=()=>Promise.resolve().then(()=>require("./api-D0zr0PoA.js")).then(e=>new e.SpotifyApiService),_=()=>Promise.resolve().then(()=>require("./api-CERg1lOE.js")).then(e=>new e.StreamableService),v=()=>Promise.resolve().then(()=>require("./api-noLuragZ.js")).then(e=>new e.TwitchApiService),y=()=>Promise.resolve().then(()=>require("./api-CjAlKHz7.js")).then(e=>new e.VidyardService),b=()=>Promise.resolve().then(()=>require("./api-CMl9Bi4e.js")).then(e=>new e.VimeoApiService),x=()=>Promise.resolve().then(()=>require("./api-D55GaoJG.js")).then(e=>new e.WistiaService),S=()=>Promise.resolve().then(()=>require("./api-CExMX1Pt.js")).then(e=>new e.YoutubeApiService),C={class:`vue-video-player`},w=((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n})((0,o.defineComponent)({__name:`vue-video-player`,props:{url:{},volume:{default:void 0},mute:{type:Boolean,default:void 0},playerState:{default:e.n.unstarted}},emits:[`update:volume`,`update:mute`,`update:playerState`],setup(e,{emit:t}){let n=e,r=t,i=(0,o.ref)(null),a=(0,o.ref)(),s=e=>r(`update:volume`,e),c=e=>r(`update:mute`,e),l=e=>r(`update:playerState`,e);return(0,o.onMounted)(async()=>{let e=await Promise.all([S,d,b,h,m,v,g,_,f,p,y,x].map(e=>e())),t=i.value??void 0;a.value=new u(e,t),a.value.on(`volumeChange`,s),a.value.on(`muteChange`,c),a.value.on(`stateChange`,l),n.url!==void 0&&(a.value.url=n.url),n.volume!==void 0&&(a.value.volume=n.volume),n.mute!==void 0&&(a.value.mute=n.mute),a.value.playerState=n.playerState}),(0,o.watch)(()=>n.url,e=>{a.value&&(a.value.url=e)}),(0,o.watch)(()=>n.volume,e=>{a.value&&e!==void 0&&(a.value.volume=e)}),(0,o.watch)(()=>n.mute,e=>{a.value&&e!==void 0&&(a.value.mute=e)}),(0,o.watch)(()=>n.playerState,e=>{a.value&&(a.value.playerState=e)}),(0,o.onBeforeUnmount)(()=>{a.value&&=(a.value.off(`volumeChange`,s),a.value.off(`muteChange`,c),a.value.off(`stateChange`,l),a.value.destroy(),void 0)}),(e,t)=>((0,o.openBlock)(),(0,o.createElementBlock)(`div`,C,[(0,o.createElementVNode)(`div`,{ref_key:`container`,ref:i},null,512)]))}}),[[`__scopeId`,`data-v-9f2a491a`]]);exports.VueVideoPlayer=w;
|
package/index.mjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { a as e, c as t, i as n, n as r, o as i } from "./src-BWj0KcGd.mjs";
|
|
2
|
-
import { t as
|
|
3
|
-
import { n as
|
|
4
|
-
import { t as
|
|
5
|
-
import { n as
|
|
6
|
-
import { t as
|
|
7
|
-
import { createElementBlock as
|
|
1
|
+
import { a as e, c as t, i as n, n as r, o as i, t as a } from "./src-BWj0KcGd.mjs";
|
|
2
|
+
import { t as o } from "./BehaviorSubject-CMEAHufI.mjs";
|
|
3
|
+
import { n as s, t as c } from "./debounceTime-T7webJ8G.mjs";
|
|
4
|
+
import { t as l } from "./takeUntil-zxKl50Ag.mjs";
|
|
5
|
+
import { n as u } from "./mapOneOrManyArgs-Djtipmha.mjs";
|
|
6
|
+
import { t as d } from "./filter-LJ9oGNCV.mjs";
|
|
7
|
+
import { createElementBlock as f, createElementVNode as p, defineComponent as m, onBeforeUnmount as h, onMounted as g, openBlock as _, ref as v, watch as y } from "vue";
|
|
8
8
|
// ../../../node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js
|
|
9
|
-
function
|
|
10
|
-
return r === void 0 && (r = t), n ??=
|
|
9
|
+
function b(n, r) {
|
|
10
|
+
return r === void 0 && (r = t), n ??= x, i(function(t, i) {
|
|
11
11
|
var a, o = !0;
|
|
12
12
|
t.subscribe(e(i, function(e) {
|
|
13
13
|
var t = r(e);
|
|
@@ -15,11 +15,11 @@ function y(n, r) {
|
|
|
15
15
|
}));
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
|
-
function
|
|
18
|
+
function x(e, t) {
|
|
19
19
|
return e === t;
|
|
20
20
|
}
|
|
21
21
|
// ../../video-player/src/lib/player-type-finder.ts
|
|
22
|
-
function
|
|
22
|
+
function S(e, t) {
|
|
23
23
|
return t.map((t) => {
|
|
24
24
|
let n = t.urlRegexes.map((t) => new RegExp(t).exec(e)).filter((e) => e !== null);
|
|
25
25
|
return n.length === 0 || n[0] === null || !n[0].groups ? null : t.match2id ? {
|
|
@@ -32,24 +32,24 @@ function x(e, t) {
|
|
|
32
32
|
}).filter((e) => e !== null).map((e) => e);
|
|
33
33
|
}
|
|
34
34
|
// ../../video-player/src/lib/video-player.ts
|
|
35
|
-
var
|
|
35
|
+
var C = class e {
|
|
36
36
|
constructor(e, t) {
|
|
37
|
-
this.url$ = new
|
|
37
|
+
this.url$ = new o(null), this.apis$ = new o([]), this.host$ = new o(void 0), this.videoRequest$ = new o(null), this.playerInfo = null, this.domId = "player", this.handlers = [], this.volumeObserver$ = new n(), this.muteObserver$ = new n(), this.currentTimeObserver$ = new n(), this.durationObserver$ = new n(), this.playerStateObserver$ = new n(), this.pipObserver$ = new n(), this.fullscreenObserver$ = new n(), this._width = 600, this._height = 450, this.autoplay = !0, this.desiredVolume = void 0, this.desiredMute = void 0, this.settleUntil = 0, this.lastReapply = 0, this._isFullscreen = !1, this._isPip = !1, this.destroyed$ = new n(), this.host$.next(t), this.apis$.next(e || []), s([
|
|
38
38
|
this.url$,
|
|
39
39
|
this.host$,
|
|
40
40
|
this.apis$
|
|
41
|
-
]).pipe(
|
|
41
|
+
]).pipe(c(20), l(this.destroyed$)).subscribe(([e, t, n]) => {
|
|
42
42
|
if (t) {
|
|
43
43
|
if (e === null) this.playerInfo?.adapter?.destroy(), this.playerInfo = null, t.innerHTML = "";
|
|
44
44
|
else {
|
|
45
|
-
let t =
|
|
45
|
+
let t = S(e, n);
|
|
46
46
|
if (t.length > 0) this.videoRequest$.next(t[0]);
|
|
47
47
|
else if (n.length > 0) throw `No player found for url ${e}`;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
}),
|
|
50
|
+
}), s([this.videoRequest$, this.host$]).pipe(d(([e, t]) => !!t)).pipe(l(this.destroyed$)).subscribe(([e, t]) => {
|
|
51
51
|
e ? e.api.loadApi().then(() => {
|
|
52
|
-
e.api.id === this.playerInfo?.platformId && e.api.canReusePlayer !== !1 ? this.playerInfo.adapter
|
|
52
|
+
e.api.id === this.playerInfo?.platformId && e.api.canReusePlayer !== !1 ? this.loadAndApplySettings(this.playerInfo.adapter, e.id) : (this.playerInfo?.adapter?.destroy(), this.setHtml(e, t), e.api.createPlayer({
|
|
53
53
|
width: this.width,
|
|
54
54
|
height: this.height,
|
|
55
55
|
autoplay: this.autoplay,
|
|
@@ -63,13 +63,14 @@ var S = class e {
|
|
|
63
63
|
adapter: t
|
|
64
64
|
}, t.onStateChange = (e) => this.playerStateObserver$.next(e), t.onMuteChange = (e) => this.muteObserver$.next(e), t.onVolumeChange = (e) => this.volumeObserver$.next(e), t.onCurrentTimeChange = (e) => this.currentTimeObserver$.next(e), t.onDurationChange = (e) => this.durationObserver$.next(e), t.onPipChange = (e) => this.pipObserver$.next(e), t.onFullscreenChange = (e) => this.fullscreenObserver$.next(e), this.invokeEvent("capabilitiesChange", t.capabilities);
|
|
65
65
|
}).then(() => {
|
|
66
|
-
|
|
66
|
+
let t = this.playerInfo?.adapter;
|
|
67
|
+
t && e.id !== void 0 ? this.loadAndApplySettings(t, e.id) : t && this.applySettings(t);
|
|
67
68
|
}), this.pipObserver$.next(!1), this.fullscreenObserver$.next(!1));
|
|
68
69
|
}) : (this.playerInfo?.adapter?.destroy(), t && (t.innerHTML = ""));
|
|
69
|
-
}), this.volumeObserver$.pipe(
|
|
70
|
+
}), this.volumeObserver$.pipe(c(20), l(this.destroyed$)).subscribe((e) => this.onVolumeReport(e)), this.muteObserver$.pipe(c(20), l(this.destroyed$)).subscribe((e) => this.onMuteReport(e)), this.playerStateObserver$.pipe(c(20), b(), l(this.destroyed$)).subscribe((e) => this.invokeEvent("stateChange", e)), this.pipObserver$.pipe(c(20), b(), l(this.destroyed$)).subscribe((e) => this.invokeEvent("isPipChange", this._isPip = e)), this.fullscreenObserver$.pipe(c(20), b(), l(this.destroyed$)).subscribe((e) => this.invokeEvent("isFullscreenChange", this._isFullscreen = e)), this.progressObserver$ = s([this.currentTimeObserver$, this.durationObserver$]).pipe(c(10), l(this.destroyed$)).pipe(u(([e, t]) => ({
|
|
70
71
|
currentTime: e,
|
|
71
72
|
duration: t
|
|
72
|
-
}))), this.progressObserver$.pipe(
|
|
73
|
+
}))), this.progressObserver$.pipe(l(this.destroyed$)).subscribe((e) => this.invokeEvent("progressChange", e));
|
|
73
74
|
}
|
|
74
75
|
get url() {
|
|
75
76
|
return this.url$.value;
|
|
@@ -129,17 +130,71 @@ var S = class e {
|
|
|
129
130
|
t ? t.getTitle().then((t) => e(t)) : e(null);
|
|
130
131
|
});
|
|
131
132
|
}
|
|
133
|
+
static {
|
|
134
|
+
this.SETTLE_MS = 2e3;
|
|
135
|
+
}
|
|
136
|
+
static {
|
|
137
|
+
this.REAPPLY_INTERVAL_MS = 250;
|
|
138
|
+
}
|
|
132
139
|
get volume() {
|
|
133
|
-
return this.
|
|
140
|
+
return this.desiredVolume ?? 0;
|
|
134
141
|
}
|
|
135
142
|
set volume(e) {
|
|
136
|
-
|
|
143
|
+
if (typeof e != "number" || !Number.isFinite(e)) return;
|
|
144
|
+
this.desiredVolume = e;
|
|
145
|
+
let t = this.playerInfo?.adapter;
|
|
146
|
+
t && this.can(t, a.volume) && (this.openSettleWindow(), this.call(() => t.setVolume(e)));
|
|
137
147
|
}
|
|
138
148
|
get mute() {
|
|
139
|
-
return this.
|
|
149
|
+
return this.desiredMute ?? !1;
|
|
140
150
|
}
|
|
141
151
|
set mute(e) {
|
|
142
|
-
|
|
152
|
+
if (typeof e != "boolean") return;
|
|
153
|
+
this.desiredMute = e;
|
|
154
|
+
let t = this.playerInfo?.adapter;
|
|
155
|
+
t && this.can(t, a.mute) && (this.openSettleWindow(), this.call(() => t.setMute(e)));
|
|
156
|
+
}
|
|
157
|
+
loadAndApplySettings(e, t) {
|
|
158
|
+
try {
|
|
159
|
+
e.loadVideoById(t);
|
|
160
|
+
} finally {
|
|
161
|
+
this.applySettings(e);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
applySettings(e, t = !0) {
|
|
165
|
+
t && this.openSettleWindow();
|
|
166
|
+
let n = this.can(e, a.mute);
|
|
167
|
+
if (n && this.desiredMute === !0 && this.call(() => e.setMute(!0)), this.desiredVolume !== void 0 && this.can(e, a.volume)) {
|
|
168
|
+
let t = this.desiredVolume;
|
|
169
|
+
this.call(() => e.setVolume(t));
|
|
170
|
+
}
|
|
171
|
+
n && this.desiredMute === !1 && this.call(() => e.setMute(!1));
|
|
172
|
+
}
|
|
173
|
+
onVolumeReport(e) {
|
|
174
|
+
typeof e == "number" && Number.isFinite(e) && (this.desiredVolume !== void 0 && Math.abs(this.desiredVolume - e) < .5 || (this.desiredVolume !== void 0 && this.isSettling() ? this.reapply() : (this.desiredVolume = e, this.invokeEvent("volumeChange", e))));
|
|
175
|
+
}
|
|
176
|
+
onMuteReport(e) {
|
|
177
|
+
typeof e == "boolean" && this.desiredMute !== e && (this.desiredMute !== void 0 && this.isSettling() ? this.reapply() : (this.desiredMute = e, this.invokeEvent("muteChange", e)));
|
|
178
|
+
}
|
|
179
|
+
openSettleWindow() {
|
|
180
|
+
this.settleUntil = Date.now() + e.SETTLE_MS;
|
|
181
|
+
}
|
|
182
|
+
isSettling() {
|
|
183
|
+
return Date.now() < this.settleUntil;
|
|
184
|
+
}
|
|
185
|
+
reapply() {
|
|
186
|
+
let t = this.playerInfo?.adapter, n = Date.now();
|
|
187
|
+
t && n - this.lastReapply >= e.REAPPLY_INTERVAL_MS && (this.lastReapply = n, this.applySettings(t, !1));
|
|
188
|
+
}
|
|
189
|
+
can(e, t) {
|
|
190
|
+
return (e.capabilities ?? []).includes(t);
|
|
191
|
+
}
|
|
192
|
+
call(e) {
|
|
193
|
+
try {
|
|
194
|
+
e();
|
|
195
|
+
} catch (e) {
|
|
196
|
+
console.warn("VideoPlayer: the player rejected a volume or mute change", e);
|
|
197
|
+
}
|
|
143
198
|
}
|
|
144
199
|
get isFullscreen() {
|
|
145
200
|
return this._isFullscreen;
|
|
@@ -159,18 +214,18 @@ var S = class e {
|
|
|
159
214
|
destroy() {
|
|
160
215
|
this.playerInfo?.adapter?.destroy(), this.destroyed$.next(!0);
|
|
161
216
|
}
|
|
162
|
-
},
|
|
217
|
+
}, w = () => import("./api-DcMW2iN2.mjs").then((e) => new e.DailymotionApiService()), T = () => import("./api-MxZ7gaDR.mjs").then((e) => new e.FacebookApiService()), E = () => import("./api-Be3WmSZ1.mjs").then((e) => new e.FileApiService()), D = () => import("./api-1vv4CoYw.mjs").then((e) => new e.MixcloudApiService()), O = () => import("./api-CawTwqXJ.mjs").then((e) => new e.SoundcloudApiService()), k = () => import("./api-CqCgSUqk.mjs").then((e) => new e.SpotifyApiService()), A = () => import("./api-yj6szShM.mjs").then((e) => new e.StreamableService()), j = () => import("./api-O56wbN98.mjs").then((e) => new e.TwitchApiService()), M = () => import("./api-CcP3AdSm.mjs").then((e) => new e.VidyardService()), N = () => import("./api-iuf2ThYe.mjs").then((e) => new e.VimeoApiService()), P = () => import("./api-BvYiv0Ae.mjs").then((e) => new e.WistiaService()), F = () => import("./api-Bqn8VxG0.mjs").then((e) => new e.YoutubeApiService()), I = { class: "vue-video-player" }, L = /*#__PURE__*/ ((e, t) => {
|
|
163
218
|
let n = e.__vccOpts || e;
|
|
164
219
|
for (let [e, r] of t) n[e] = r;
|
|
165
220
|
return n;
|
|
166
|
-
})(/* @__PURE__ */
|
|
221
|
+
})(/* @__PURE__ */ m({
|
|
167
222
|
__name: "vue-video-player",
|
|
168
223
|
props: {
|
|
169
224
|
url: {},
|
|
170
|
-
volume: { default: 0 },
|
|
225
|
+
volume: { default: void 0 },
|
|
171
226
|
mute: {
|
|
172
227
|
type: Boolean,
|
|
173
|
-
default:
|
|
228
|
+
default: void 0
|
|
174
229
|
},
|
|
175
230
|
playerState: { default: r.unstarted }
|
|
176
231
|
},
|
|
@@ -180,37 +235,37 @@ var S = class e {
|
|
|
180
235
|
"update:playerState"
|
|
181
236
|
],
|
|
182
237
|
setup(e, { emit: t }) {
|
|
183
|
-
let n = e, r = t, i =
|
|
184
|
-
return
|
|
238
|
+
let n = e, r = t, i = v(null), a = v(), o = (e) => r("update:volume", e), s = (e) => r("update:mute", e), c = (e) => r("update:playerState", e);
|
|
239
|
+
return g(async () => {
|
|
185
240
|
let e = await Promise.all([
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
D,
|
|
190
|
-
E,
|
|
191
|
-
A,
|
|
241
|
+
F,
|
|
242
|
+
w,
|
|
243
|
+
N,
|
|
192
244
|
O,
|
|
245
|
+
D,
|
|
246
|
+
j,
|
|
193
247
|
k,
|
|
194
|
-
|
|
248
|
+
A,
|
|
195
249
|
T,
|
|
196
|
-
|
|
197
|
-
|
|
250
|
+
E,
|
|
251
|
+
M,
|
|
252
|
+
P
|
|
198
253
|
].map((e) => e())), t = i.value ?? void 0;
|
|
199
|
-
a.value = new
|
|
200
|
-
}),
|
|
254
|
+
a.value = new C(e, t), a.value.on("volumeChange", o), a.value.on("muteChange", s), a.value.on("stateChange", c), n.url !== void 0 && (a.value.url = n.url), n.volume !== void 0 && (a.value.volume = n.volume), n.mute !== void 0 && (a.value.mute = n.mute), a.value.playerState = n.playerState;
|
|
255
|
+
}), y(() => n.url, (e) => {
|
|
201
256
|
a.value && (a.value.url = e);
|
|
202
|
-
}),
|
|
203
|
-
a.value && (a.value.volume = e);
|
|
204
|
-
}),
|
|
205
|
-
a.value && (a.value.mute = e);
|
|
206
|
-
}),
|
|
257
|
+
}), y(() => n.volume, (e) => {
|
|
258
|
+
a.value && e !== void 0 && (a.value.volume = e);
|
|
259
|
+
}), y(() => n.mute, (e) => {
|
|
260
|
+
a.value && e !== void 0 && (a.value.mute = e);
|
|
261
|
+
}), y(() => n.playerState, (e) => {
|
|
207
262
|
a.value && (a.value.playerState = e);
|
|
208
|
-
}),
|
|
263
|
+
}), h(() => {
|
|
209
264
|
a.value &&= (a.value.off("volumeChange", o), a.value.off("muteChange", s), a.value.off("stateChange", c), a.value.destroy(), void 0);
|
|
210
|
-
}), (e, t) => (
|
|
265
|
+
}), (e, t) => (_(), f("div", I, [p("div", {
|
|
211
266
|
ref_key: "container",
|
|
212
267
|
ref: i
|
|
213
268
|
}, null, 512)]));
|
|
214
269
|
}
|
|
215
|
-
}), [["__scopeId", "data-v-
|
|
216
|
-
export {
|
|
270
|
+
}), [["__scopeId", "data-v-9f2a491a"]]);
|
|
271
|
+
export { L as VueVideoPlayer };
|
package/lib/types.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { EPlayerState } from '../../../../player-provider/src/index.ts';
|
|
2
2
|
export interface VueVideoPlayerProps {
|
|
3
3
|
url?: string;
|
|
4
|
-
volume
|
|
5
|
-
|
|
4
|
+
/** Kept across media. Leave unset to start at the first platform's own volume. */
|
|
5
|
+
volume?: number;
|
|
6
|
+
/** Kept across media. Leave unset to start at the first platform's own mute state. */
|
|
7
|
+
mute?: boolean;
|
|
6
8
|
playerState: EPlayerState;
|
|
7
9
|
}
|
|
8
10
|
export interface VueVideoPlayerEmits {
|
package/package.json
CHANGED
package/api-B6qyhEI3.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require("./src-CluKb0O6.js"),t=require("./takeUntil-MRP2QN5v.js"),n=require("./timer-mrjvJwyN.js");var r=require("./src-CYCud0_r.js").t(),i=class{get id(){return`soundcloud`}urlRegexes=[new RegExp(/(?<id>http[s]{0,1}:\/\/(www\.){0,1}soundcloud\.com\/.+)$/,`g`)];loadApi(){return(0,r.loadScript)(`https://w.soundcloud.com/player/api.js`)}prepareHtml(e){let t=encodeURIComponent(e.initialVideoId??``);return`<iframe id="${e.domId}" width="${e.width}" height="${e.height}" style="max-width:100%" src="https://w.soundcloud.com/player/?url=${t}&show_teaser=false&" allow="autoplay"></iframe>`}createPlayer(r,i){return new Promise((a,o)=>{if(!r.element)return o(`The SoundCloud api requires the options.element to be set`);let s=new e.i,c=SC.Widget(r.element.getElementsByTagName(`iframe`)[0]),l=50,u=50,d=e.r({capabilities:[e.t.volume,e.t.getTitle],loadVideoById:e=>c.load(e,{auto_play:r.autoplay}),setPlayerState:t=>{switch(t){case e.n.playing:c.play();break;case e.n.paused:c.pause();break;case e.n.ended:case e.n.unstarted:}},setMute:e=>{e?(u=l,c.setVolume(0)):c.setVolume(u)},setVolume:e=>{l=e,c.setVolume(e)},setProgress:e=>c.seekTo(e*1e3),setSize:(e,t)=>{if(r.element){let n=r.element.querySelector(`iframe`);n&&(n.width=String(e),n.height=String(t))}},getTitle:()=>new Promise(e=>c.getCurrentSound(t=>e(t.description??t.title))),setFullscreen:e=>{e&&(console.warn(`SoundCloud player doesn't support fullscreen mode`),setTimeout(()=>d.onFullscreenChange(!1),50))},getFullscreen:()=>new Promise(e=>e(!1)),setPip:e=>{e&&(console.warn(`SoundCloud player doesn't support PIP mode`),setTimeout(()=>d.onPipChange(!1),50))},getPip:()=>new Promise(e=>e(!1)),destroy:()=>s.next(!0)});c.bind(SC.Widget.Events.READY,()=>{a(d),typeof window<`u`&&n.t(0,50).pipe(t.t(s),t.t(i)).subscribe(()=>{c.getVolume(e=>{e>0&&(l=e),d.onVolumeChange(e),d.onMuteChange(e===0)})})}),c.bind(SC.Widget.Events.PLAY,()=>{d.onStateChange(e.n.playing),c.getDuration(e=>d.onDurationChange(e/1e3))}),c.bind(SC.Widget.Events.PAUSE,()=>d.onStateChange(e.n.paused)),c.bind(SC.Widget.Events.FINISH,()=>d.onStateChange(e.n.ended)),c.bind(SC.Widget.Events.PLAY_PROGRESS,e=>d.onCurrentTimeChange(e.currentPosition/1e3))})}};exports.SoundcloudApiService=i;
|
package/api-C2TK5P8W.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require("./src-CluKb0O6.js"),t=require("./takeUntil-MRP2QN5v.js"),n=require("./timer-mrjvJwyN.js");var r=require("./src-CYCud0_r.js").t(),i=class{get id(){return`vimeo`}urlRegexes=[new RegExp(/http[s]{0,1}:\/\/(www\.){0,1}vimeo\.com\/(?<id>[0-9]+)$/,`g`)];loadApi(){return(0,r.loadScript)(`https://player.vimeo.com/api/player.js`)}prepareHtml(e){return`<div id="${e.domId}" style="max-width:100%"></div>`}createPlayer(r,i){return new Promise((a,o)=>{if(!r.domId)return o(`The Vimeo api requires the options.domId to be set`);if(!r.initialVideoId)return o(`Vimeo requires an initial video`);let s=new e.i,c,l=new Vimeo.Player(r.domId,{id:r.initialVideoId,width:r.width,height:r.height,autoplay:r.autoplay,pip:!0});l.ready().then(()=>{c=e.r({capabilities:[e.t.fullscreen,e.t.pictureInPicture,e.t.volume,e.t.mute,e.t.getTitle],loadVideoById:e=>l.loadVideo(e),setPlayerState:t=>{switch(t){case e.n.playing:l.play();break;case e.n.paused:l.pause();break;case e.n.ended:case e.n.unstarted:}},setVolume:e=>l.setVolume(e/100),setMute:e=>l.setMuted(e),setProgress:e=>l.setCurrentTime(e),setSize:(e,t)=>{if(r.element){let n=r.element.querySelector(`div iframe`);n&&(n.width=String(e),n.height=String(t))}},getTitle:()=>l.getVideoTitle(),setFullscreen:e=>{e?l.requestFullscreen():l.exitFullscreen()},getFullscreen:()=>l.getFullscreen(),setPip:e=>{e?(l.requestPictureInPicture(),setTimeout(()=>{l.getPictureInPicture().then(t=>{t!==e&&(console.warn(`To enable pip from outside its iframe, you need to first focus the player, then call setPip`),c.onPipChange(t))})},50)):l.exitPictureInPicture()},getPip:()=>l.getPictureInPicture(),destroy:()=>{s.next(!0),l.destroy()}}),a(c)}),l.on(`loaded`,()=>{c.onStateChange(e.n.unstarted),typeof window<`u`&&(setTimeout(()=>r.autoplay&&l.play(),600),n.t(0,50).pipe(t.t(s),t.t(i)).subscribe(()=>{l.getMuted().then(e=>c.onMuteChange(e))}),l.getVolume().then(e=>c.onVolumeChange(e*100)),l.getDuration().then(e=>c.onDurationChange(e)))}),l.on(`play`,()=>c.onStateChange(e.n.playing)),l.on(`pause`,()=>c.onStateChange(e.n.paused)),l.on(`ended`,()=>c.onStateChange(e.n.ended)),l.on(`volumechange`,e=>c.onVolumeChange(e.volume*100)),l.on(`timeupdate`,e=>c.onCurrentTimeChange(e.seconds)),l.on(`enterpictureinpicture`,()=>c.onPipChange(!0)),l.on(`leavepictureinpicture`,()=>c.onPipChange(!1)),l.on(`fullscreenchange`,e=>c.onFullscreenChange(e.fullscreen))})}};exports.VimeoApiService=i;
|