@munsonlabs/video-player 0.2.5 → 0.2.7
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 +6 -694
- package/dist/chunks/ads-B8PU62NC.mjs +1 -0
- package/dist/chunks/brightcove-CPKzsnF0.mjs +1 -0
- package/dist/chunks/constants-Buc1xZvW.mjs +1 -0
- package/dist/chunks/dailymotion-DHCBjqaZ.mjs +1 -0
- package/dist/chunks/embedShared-R2ohosIo.mjs +1 -0
- package/dist/chunks/jwplayer-D8oOCmi4.mjs +1 -0
- package/dist/chunks/sourceHelpers-BNIZ7kmT.mjs +1 -0
- package/dist/chunks/vimeo-DC3q3YWJ.mjs +1 -0
- package/dist/chunks/youtube-e1csmnHD.mjs +1 -0
- package/dist/elements/chunks/ads-B8PU62NC.mjs +1 -0
- package/dist/elements/chunks/brightcove-CPKzsnF0.mjs +1 -0
- package/dist/elements/chunks/constants-Buc1xZvW.mjs +1 -0
- package/dist/elements/chunks/dailymotion-DHCBjqaZ.mjs +1 -0
- package/dist/elements/chunks/embedShared-R2ohosIo.mjs +1 -0
- package/dist/elements/chunks/font-KFHs3p_4-KFHs3p_4.mjs +1 -0
- package/dist/elements/chunks/jwplayer-D8oOCmi4.mjs +1 -0
- package/dist/elements/chunks/sourceHelpers-BNIZ7kmT.mjs +1 -0
- package/dist/elements/chunks/svg-BLBI83Ed-BjsPx0LR.mjs +1 -0
- package/dist/elements/chunks/vimeo-DC3q3YWJ.mjs +1 -0
- package/dist/elements/chunks/youtube-e1csmnHD.mjs +1 -0
- package/dist/elements/controls.css +1 -1
- package/dist/elements/controls.d.mts +23 -17
- package/dist/elements/controls.mjs +1 -1
- package/dist/elements/core.css +1 -1
- package/dist/elements/core.d.mts +32 -23
- package/dist/elements/core.mjs +1 -1
- package/dist/elements/index.d.mts +53 -40
- package/dist/elements/index.mjs +1 -1
- package/dist/elements/style.css +1 -1
- package/dist/index.d.mts +138 -88
- package/dist/index.mjs +1 -1
- package/dist/style.css +1 -1
- package/package.json +7 -6
- package/dist/chunks/ads-Dph3guS9.mjs +0 -1
- package/dist/chunks/brightcove-DiJF_74z.mjs +0 -1
- package/dist/chunks/constants-35ZnLsDv.mjs +0 -1
- package/dist/chunks/dailymotion-DTooszoV.mjs +0 -1
- package/dist/chunks/embedShared-CbArTtuR.mjs +0 -1
- package/dist/chunks/jwplayer-Dhq65VxK.mjs +0 -1
- package/dist/chunks/sourceHelpers-B0tH-grj.mjs +0 -1
- package/dist/chunks/vimeo-D0GAjId0.mjs +0 -1
- package/dist/chunks/youtube-B8AT2F-4.mjs +0 -1
- package/dist/elements/chunks/ads-Dph3guS9.mjs +0 -1
- package/dist/elements/chunks/brightcove-DiJF_74z.mjs +0 -1
- package/dist/elements/chunks/constants-35ZnLsDv.mjs +0 -1
- package/dist/elements/chunks/dailymotion-DTooszoV.mjs +0 -1
- package/dist/elements/chunks/embedShared-CbArTtuR.mjs +0 -1
- package/dist/elements/chunks/jwplayer-Dhq65VxK.mjs +0 -1
- package/dist/elements/chunks/sourceHelpers-B0tH-grj.mjs +0 -1
- package/dist/elements/chunks/vimeo-D0GAjId0.mjs +0 -1
- package/dist/elements/chunks/youtube-B8AT2F-4.mjs +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Ref, UnwrapNestedRefs } from "vue";
|
|
2
|
-
//#region src/
|
|
2
|
+
//#region src/adapters/emitter.d.ts
|
|
3
3
|
type PlaybackListener = (...args: unknown[]) => void;
|
|
4
4
|
//#endregion
|
|
5
5
|
//#region src/types/playback.d.ts
|
|
@@ -18,6 +18,23 @@ interface QualityLevelInfo {
|
|
|
18
18
|
bitrate: number;
|
|
19
19
|
label: string;
|
|
20
20
|
}
|
|
21
|
+
interface AdapterCaptions {
|
|
22
|
+
tracks(): CaptionTrackInfo[];
|
|
23
|
+
active(): number | null;
|
|
24
|
+
select(index: number | null): void;
|
|
25
|
+
}
|
|
26
|
+
interface AdapterQuality {
|
|
27
|
+
levels(): QualityLevelInfo[];
|
|
28
|
+
current(): number | null;
|
|
29
|
+
isAuto(): boolean;
|
|
30
|
+
select(index: number | null): void;
|
|
31
|
+
}
|
|
32
|
+
interface AdapterPip {
|
|
33
|
+
isSupported(): boolean;
|
|
34
|
+
isActive(): boolean;
|
|
35
|
+
toggle(): void;
|
|
36
|
+
}
|
|
37
|
+
type PlaybackEvent = 'play' | 'pause' | 'playing' | 'ended' | 'error' | 'timeupdate' | 'durationchange' | 'progress' | 'volumechange' | 'ratechange' | 'seeked' | 'waiting' | 'canplay' | 'qualitychange' | 'captionschange' | 'pipchange' | 'adstart' | 'adend' | 'nativefullscreenenter' | 'nativefullscreenexit' | 'fullscreen-pending' | 'fullscreen-pending-done';
|
|
21
38
|
interface PlaybackAdapter {
|
|
22
39
|
readonly el: HTMLElement;
|
|
23
40
|
play(): Promise<void>;
|
|
@@ -34,24 +51,17 @@ interface PlaybackAdapter {
|
|
|
34
51
|
setPlaybackRate(rate: number): void;
|
|
35
52
|
bufferedEnd(): number;
|
|
36
53
|
error(): MediaErrorLike | null;
|
|
37
|
-
|
|
54
|
+
load(src: string, type?: string): void;
|
|
55
|
+
retry(): void;
|
|
38
56
|
supportsPlaybackRate(): boolean;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
supportsQuality(): boolean;
|
|
44
|
-
getQualityLevels(): QualityLevelInfo[];
|
|
45
|
-
getCurrentQuality(): number | null;
|
|
46
|
-
isAutoQuality(): boolean;
|
|
47
|
-
setQuality(index: number | null): void;
|
|
48
|
-
supportsPip(): boolean;
|
|
49
|
-
isPipActive(): boolean;
|
|
50
|
-
togglePip(): void;
|
|
57
|
+
captions?: AdapterCaptions;
|
|
58
|
+
quality?: AdapterQuality;
|
|
59
|
+
pip?: AdapterPip;
|
|
60
|
+
reveal?(videoEl: HTMLVideoElement): void;
|
|
51
61
|
enterFullscreen(): void;
|
|
52
62
|
exitFullscreen(): void;
|
|
53
|
-
on(event:
|
|
54
|
-
off(event:
|
|
63
|
+
on(event: PlaybackEvent, listener: PlaybackListener): void;
|
|
64
|
+
off(event: PlaybackEvent, listener: PlaybackListener): void;
|
|
55
65
|
dispose(): void;
|
|
56
66
|
}
|
|
57
67
|
interface ResolvedSource {
|
|
@@ -83,7 +93,7 @@ type PlatformConfig = Pick<Matcher, 'key' | 'test'> & ({
|
|
|
83
93
|
resolveSource?: SourceResolver;
|
|
84
94
|
});
|
|
85
95
|
//#endregion
|
|
86
|
-
//#region src/
|
|
96
|
+
//#region src/ui/player/playerState.d.ts
|
|
87
97
|
declare function createPlayerState(props: PlayerProps): {
|
|
88
98
|
isPlaying: import("vue").Ref<boolean, boolean>;
|
|
89
99
|
hasEnded: import("vue").Ref<boolean, boolean>;
|
|
@@ -93,12 +103,12 @@ declare function createPlayerState(props: PlayerProps): {
|
|
|
93
103
|
hasStarted: import("vue").Ref<boolean, boolean>;
|
|
94
104
|
isError: import("vue").Ref<boolean, boolean>;
|
|
95
105
|
errorMessage: import("vue").Ref<string, string>;
|
|
96
|
-
|
|
97
|
-
|
|
106
|
+
currentTime: import("vue").Ref<number, number>;
|
|
107
|
+
duration: import("vue").Ref<number, number>;
|
|
98
108
|
buffered: import("vue").Ref<number, number>;
|
|
99
109
|
progress: import("vue").ComputedRef<number>;
|
|
100
110
|
bufferedDisplay: import("vue").ComputedRef<number>;
|
|
101
|
-
|
|
111
|
+
currentVolume: import("vue").Ref<number, number>;
|
|
102
112
|
isMuted: import("vue").Ref<boolean, boolean>;
|
|
103
113
|
isAudible: import("vue").ComputedRef<boolean>;
|
|
104
114
|
isLooping: import("vue").Ref<boolean, boolean>;
|
|
@@ -131,7 +141,7 @@ declare function createPlayerState(props: PlayerProps): {
|
|
|
131
141
|
bitrate: number;
|
|
132
142
|
label: string;
|
|
133
143
|
}[]>;
|
|
134
|
-
|
|
144
|
+
currentQualityHeight: import("vue").Ref<number | null, number | null>;
|
|
135
145
|
isAutoQuality: import("vue").Ref<boolean, boolean>;
|
|
136
146
|
supportsPip: import("vue").Ref<boolean, boolean>;
|
|
137
147
|
isPipActive: import("vue").Ref<boolean, boolean>;
|
|
@@ -139,25 +149,27 @@ declare function createPlayerState(props: PlayerProps): {
|
|
|
139
149
|
};
|
|
140
150
|
type PlayerState = ReturnType<typeof createPlayerState>;
|
|
141
151
|
//#endregion
|
|
142
|
-
//#region src/
|
|
143
|
-
interface
|
|
152
|
+
//#region src/ui/player/createPlayerControls.d.ts
|
|
153
|
+
interface PlayerControls {
|
|
144
154
|
play: () => Promise<void>;
|
|
145
155
|
pause: () => void;
|
|
146
156
|
replay: () => Promise<void>;
|
|
147
157
|
togglePlay: () => void;
|
|
148
|
-
seek: (
|
|
149
|
-
seekTo: (seconds: number) => void;
|
|
158
|
+
seek: (seconds: number) => void;
|
|
150
159
|
toggleMute: () => void;
|
|
151
160
|
setVolume: (vol: number) => void;
|
|
152
161
|
toggleLoop: () => void;
|
|
153
162
|
setPlaybackRate: (rate: number) => void;
|
|
154
163
|
setCaptionTrack: (index: number | null) => void;
|
|
155
|
-
setQuality: (
|
|
164
|
+
setQuality: (height: number | null) => void;
|
|
165
|
+
applyQuality: (height: number | null, options?: {
|
|
166
|
+
remember?: boolean;
|
|
167
|
+
}) => void;
|
|
156
168
|
togglePip: () => void;
|
|
157
169
|
}
|
|
158
170
|
//#endregion
|
|
159
|
-
//#region src/
|
|
160
|
-
type UsePlayerReturn = PlayerState &
|
|
171
|
+
//#region src/ui/player/usePlayer.d.ts
|
|
172
|
+
type UsePlayerReturn = PlayerState & PlayerControls & {
|
|
161
173
|
fire: (type: StateChangeType, extras?: Partial<StateChangeEvent>) => void;
|
|
162
174
|
retry: () => void;
|
|
163
175
|
isBuffering: Ref<boolean>;
|
|
@@ -167,9 +179,9 @@ type UsePlayerReturn = PlayerState & UsePlayerControlsReturn & {
|
|
|
167
179
|
toggleFullscreen: () => void;
|
|
168
180
|
};
|
|
169
181
|
//#endregion
|
|
170
|
-
//#region src/
|
|
171
|
-
declare const PLAYER_METHOD_KEYS: readonly ["retry", "play", "pause", "replay", "togglePlay", "seek", "
|
|
172
|
-
declare const PLAYER_STATE_KEYS: readonly ["isPlaying", "hasEnded", "isReady", "isLoaded", "isAdPlaying", "isAdPaused", "isAdMuted", "adRemainingTime", "isLive", "isBuffering", "
|
|
182
|
+
//#region src/ui/player/playerSurface.d.ts
|
|
183
|
+
declare const PLAYER_METHOD_KEYS: readonly ["retry", "play", "pause", "replay", "togglePlay", "seek", "toggleMute", "setVolume", "toggleFullscreen", "toggleLoop", "toggleAdMute", "setPlaybackRate", "setCaptionTrack", "setQuality", "togglePip"];
|
|
184
|
+
declare const PLAYER_STATE_KEYS: readonly ["isPlaying", "hasEnded", "isReady", "isLoaded", "isAdPlaying", "isAdPaused", "isAdMuted", "adRemainingTime", "isLive", "isBuffering", "currentTime", "duration", "currentVolume", "isMuted", "isAudible", "isLooping", "currentPlaybackRate", "hasStarted", "isError", "errorMessage", "progress", "bufferedDisplay", "isFullscreen", "supportsPlaybackRate", "supportsCaptions", "captionTracks", "activeCaptionIndex", "supportsQuality", "qualityLevels", "currentQualityHeight", "isAutoQuality", "supportsPip", "isPipActive", "isNativeUi"];
|
|
173
185
|
type PlayerMethodKey = (typeof PLAYER_METHOD_KEYS)[number];
|
|
174
186
|
type PlayerStateKey = (typeof PLAYER_STATE_KEYS)[number];
|
|
175
187
|
//#endregion
|
|
@@ -194,7 +206,7 @@ interface StateChangeEvent {
|
|
|
194
206
|
isMuted?: boolean;
|
|
195
207
|
playbackRate?: number;
|
|
196
208
|
captionIndex?: number | null;
|
|
197
|
-
|
|
209
|
+
qualityHeight?: number | null;
|
|
198
210
|
isPipActive?: boolean;
|
|
199
211
|
isLooping?: boolean;
|
|
200
212
|
element?: HTMLElement | null;
|
|
@@ -231,10 +243,12 @@ interface PlayerProps {
|
|
|
231
243
|
adMacroParams?: Record<string, string>;
|
|
232
244
|
headerBidding?: HeaderBiddingConfig;
|
|
233
245
|
tracks?: CaptionTrackDef[];
|
|
246
|
+
captionLine?: number;
|
|
234
247
|
autoplay?: boolean;
|
|
235
248
|
muted?: boolean;
|
|
236
249
|
volume?: number;
|
|
237
250
|
playbackRate?: number;
|
|
251
|
+
quality?: number | null;
|
|
238
252
|
nativeUi?: boolean;
|
|
239
253
|
payload?: Record<string, unknown> | string;
|
|
240
254
|
action?: PlayerAction | null;
|
|
@@ -267,17 +281,14 @@ export declare function resolvePlatform(url: string): {
|
|
|
267
281
|
export declare function registerPlatform(config: PlatformConfig): void;
|
|
268
282
|
//#endregion
|
|
269
283
|
//#region src/elements/core.d.ts
|
|
270
|
-
declare const VideoPlayerElement: import("vue").VueElementConstructor<
|
|
271
|
-
declare const VideoStageElement: import("vue").VueElementConstructor<
|
|
272
|
-
pin?: PinCorner | "full-width";
|
|
273
|
-
playlist?: VideoEntry[];
|
|
274
|
-
}>;
|
|
284
|
+
declare const VideoPlayerElement: import("vue").VueElementConstructor<unknown>;
|
|
285
|
+
declare const VideoStageElement: import("vue").VueElementConstructor<unknown>;
|
|
275
286
|
declare const VideoPlaceholderElement: import("vue").VueElementConstructor<VideoEntry>;
|
|
276
|
-
declare const VideoCardElement: import("vue").VueElementConstructor<
|
|
287
|
+
declare const VideoCardElement: import("vue").VueElementConstructor<unknown>;
|
|
277
288
|
declare const HideMarkerElement: import("vue").VueElementConstructor<{}>;
|
|
278
289
|
export declare function defineElements(): void;
|
|
279
290
|
//#endregion
|
|
280
|
-
//#region src/
|
|
291
|
+
//#region src/ui/controls/useResolvedPlayer.d.ts
|
|
281
292
|
interface ResolvedPlayerProps {
|
|
282
293
|
player?: PlayerHandle | null;
|
|
283
294
|
for?: string;
|
|
@@ -298,6 +309,8 @@ declare const VolumeSliderElement: import("vue").VueElementConstructor<ResolvedP
|
|
|
298
309
|
declare const TimeDisplayElement: import("vue").VueElementConstructor<ResolvedPlayerProps>;
|
|
299
310
|
declare const TranscriptElement: import("vue").VueElementConstructor<ResolvedPlayerProps & {
|
|
300
311
|
cues?: TranscriptCue[] | string;
|
|
312
|
+
speechPitch?: number;
|
|
313
|
+
speechRate?: number;
|
|
301
314
|
}>;
|
|
302
315
|
//#endregion
|
|
303
|
-
export { BufferingElement, CaptionsButtonElement, type EmbedAdapterFactory, type EmbedAdapterOptions, FullscreenButtonElement, HideMarkerElement, LoopButtonElement, type Matcher, type MediaErrorLike, MuteButtonElement, PipButtonElement, type PlatformConfig, PlayButtonElement, type PlaybackAdapter, PlaybackRateButtonElement, QualityButtonElement, type ResolvedSource, ScrubberElement, type SourceResolver, TimeDisplayElement, TranscriptElement, VideoCardElement, VideoPlaceholderElement, VideoPlayerElement, VideoStageElement, VolumeSliderElement };
|
|
316
|
+
export { type AdapterCaptions, type AdapterPip, type AdapterQuality, BufferingElement, CaptionsButtonElement, type EmbedAdapterFactory, type EmbedAdapterOptions, FullscreenButtonElement, HideMarkerElement, LoopButtonElement, type Matcher, type MediaErrorLike, MuteButtonElement, PipButtonElement, type PlatformConfig, PlayButtonElement, type PlaybackAdapter, type PlaybackEvent, PlaybackRateButtonElement, QualityButtonElement, type ResolvedSource, ScrubberElement, type SourceResolver, TimeDisplayElement, TranscriptElement, VideoCardElement, VideoPlaceholderElement, VideoPlayerElement, VideoStageElement, VolumeSliderElement };
|