streamit-player 1.0.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/CHANGELOG.md +35 -0
- package/LICENSE +203 -0
- package/README.md +552 -0
- package/dist/Player-BfmqCREY.cjs +11616 -0
- package/dist/Player-YpukGRGt.js +11617 -0
- package/dist/PlayerController-Bt7Po42U.cjs +14093 -0
- package/dist/PlayerController-CW0pxrIt.js +14072 -0
- package/dist/core/index.cjs +194 -0
- package/dist/core/index.js +194 -0
- package/dist/core/src/AdScheduler.d.ts +56 -0
- package/dist/core/src/AdScheduler.d.ts.map +1 -0
- package/dist/core/src/AdsController.d.ts +48 -0
- package/dist/core/src/AdsController.d.ts.map +1 -0
- package/dist/core/src/AdsManager.d.ts +181 -0
- package/dist/core/src/AdsManager.d.ts.map +1 -0
- package/dist/core/src/DrmManager.d.ts +162 -0
- package/dist/core/src/DrmManager.d.ts.map +1 -0
- package/dist/core/src/DrmValidator.d.ts +36 -0
- package/dist/core/src/DrmValidator.d.ts.map +1 -0
- package/dist/core/src/KeyboardManager.d.ts +73 -0
- package/dist/core/src/KeyboardManager.d.ts.map +1 -0
- package/dist/core/src/PictureInPictureManager.d.ts +47 -0
- package/dist/core/src/PictureInPictureManager.d.ts.map +1 -0
- package/dist/core/src/PlayerController.d.ts +231 -0
- package/dist/core/src/PlayerController.d.ts.map +1 -0
- package/dist/core/src/PlaylistManager.d.ts +63 -0
- package/dist/core/src/PlaylistManager.d.ts.map +1 -0
- package/dist/core/src/SourceManager.d.ts +142 -0
- package/dist/core/src/SourceManager.d.ts.map +1 -0
- package/dist/core/src/SubtitleManager.d.ts +77 -0
- package/dist/core/src/SubtitleManager.d.ts.map +1 -0
- package/dist/core/src/TimelineMath.d.ts +14 -0
- package/dist/core/src/TimelineMath.d.ts.map +1 -0
- package/dist/core/src/html-overlay/HtmlOverlayRenderer.d.ts +103 -0
- package/dist/core/src/html-overlay/HtmlOverlayRenderer.d.ts.map +1 -0
- package/dist/core/src/index.d.ts +21 -0
- package/dist/core/src/index.d.ts.map +1 -0
- package/dist/core/src/providers/ImaProvider.d.ts +135 -0
- package/dist/core/src/providers/ImaProvider.d.ts.map +1 -0
- package/dist/core/src/providers/ThumbnailProviders.d.ts +102 -0
- package/dist/core/src/providers/ThumbnailProviders.d.ts.map +1 -0
- package/dist/core/src/providers/VastProvider.d.ts +202 -0
- package/dist/core/src/providers/VastProvider.d.ts.map +1 -0
- package/dist/core/src/providers/VmapProvider.d.ts +98 -0
- package/dist/core/src/providers/VmapProvider.d.ts.map +1 -0
- package/dist/core/src/providers/fetchXmlWithPolicy.d.ts +9 -0
- package/dist/core/src/providers/fetchXmlWithPolicy.d.ts.map +1 -0
- package/dist/core/src/simid/SimidBridge.d.ts +44 -0
- package/dist/core/src/simid/SimidBridge.d.ts.map +1 -0
- package/dist/core/src/simid/SimidManager.d.ts +21 -0
- package/dist/core/src/simid/SimidManager.d.ts.map +1 -0
- package/dist/core/src/simid/SimidRuntime.d.ts +113 -0
- package/dist/core/src/simid/SimidRuntime.d.ts.map +1 -0
- package/dist/core/src/simid/SimidSession.d.ts +48 -0
- package/dist/core/src/simid/SimidSession.d.ts.map +1 -0
- package/dist/core/src/simid/types.d.ts +115 -0
- package/dist/core/src/simid/types.d.ts.map +1 -0
- package/dist/core/src/storage.d.ts +10 -0
- package/dist/core/src/storage.d.ts.map +1 -0
- package/dist/core/src/types.d.ts +1403 -0
- package/dist/core/src/types.d.ts.map +1 -0
- package/dist/core/src/utils.d.ts +34 -0
- package/dist/core/src/utils.d.ts.map +1 -0
- package/dist/core/src/vendorLoaders.d.ts +16 -0
- package/dist/core/src/vendorLoaders.d.ts.map +1 -0
- package/dist/index.cjs +55 -0
- package/dist/index.js +55 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/streamit-player.esm.js +26226 -0
- package/dist/streamit-player.esm.min.js +18830 -0
- package/dist/streamit-player.iife.js +26229 -0
- package/dist/streamit-player.iife.min.js +4750 -0
- package/dist/web-components/index.cjs +15 -0
- package/dist/web-components/index.js +15 -0
- package/dist/web-components/src/ChaptersButton.d.ts +27 -0
- package/dist/web-components/src/ChaptersButton.d.ts.map +1 -0
- package/dist/web-components/src/ChaptersButton.styles.d.ts +2 -0
- package/dist/web-components/src/ChaptersButton.styles.d.ts.map +1 -0
- package/dist/web-components/src/PlayButton.d.ts +17 -0
- package/dist/web-components/src/PlayButton.d.ts.map +1 -0
- package/dist/web-components/src/PlayButton.styles.d.ts +2 -0
- package/dist/web-components/src/PlayButton.styles.d.ts.map +1 -0
- package/dist/web-components/src/Player.d.ts +271 -0
- package/dist/web-components/src/Player.d.ts.map +1 -0
- package/dist/web-components/src/Player.styles.d.ts +2 -0
- package/dist/web-components/src/Player.styles.d.ts.map +1 -0
- package/dist/web-components/src/SeekButton.d.ts +18 -0
- package/dist/web-components/src/SeekButton.d.ts.map +1 -0
- package/dist/web-components/src/SeekButton.styles.d.ts +2 -0
- package/dist/web-components/src/SeekButton.styles.d.ts.map +1 -0
- package/dist/web-components/src/Seekbar.d.ts +101 -0
- package/dist/web-components/src/Seekbar.d.ts.map +1 -0
- package/dist/web-components/src/Seekbar.styles.d.ts +2 -0
- package/dist/web-components/src/Seekbar.styles.d.ts.map +1 -0
- package/dist/web-components/src/Themes.d.ts +5 -0
- package/dist/web-components/src/Themes.d.ts.map +1 -0
- package/dist/web-components/src/VerticalControls.d.ts +49 -0
- package/dist/web-components/src/VerticalControls.d.ts.map +1 -0
- package/dist/web-components/src/VerticalControls.styles.d.ts +2 -0
- package/dist/web-components/src/VerticalControls.styles.d.ts.map +1 -0
- package/dist/web-components/src/VolumeControl.d.ts +21 -0
- package/dist/web-components/src/VolumeControl.d.ts.map +1 -0
- package/dist/web-components/src/VolumeControl.styles.d.ts +2 -0
- package/dist/web-components/src/VolumeControl.styles.d.ts.map +1 -0
- package/dist/web-components/src/icons/IconRegistry.d.ts +24 -0
- package/dist/web-components/src/icons/IconRegistry.d.ts.map +1 -0
- package/dist/web-components/src/index.d.ts +10 -0
- package/dist/web-components/src/index.d.ts.map +1 -0
- package/dist/web-components/src/player-internals/GestureController.d.ts +140 -0
- package/dist/web-components/src/player-internals/GestureController.d.ts.map +1 -0
- package/dist/web-components/src/player-internals/PrefetchController.d.ts +34 -0
- package/dist/web-components/src/player-internals/PrefetchController.d.ts.map +1 -0
- package/dist/web-components/src/player-internals/SettingsMenuController.d.ts +59 -0
- package/dist/web-components/src/player-internals/SettingsMenuController.d.ts.map +1 -0
- package/dist/web-components/src/player-internals/ThumbnailCache.d.ts +64 -0
- package/dist/web-components/src/player-internals/ThumbnailCache.d.ts.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaylistManager.d.ts","sourceRoot":"","sources":["../../../core/src/PlaylistManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEvF;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,IAAI,WAAW,CAAC;IACxB,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACvD,aAAa,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACtF,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChE,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAE3C,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,sCAAsC,CAAS;gBAE3C,IAAI,EAAE,mBAAmB;IAMrC,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAId,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,UAAU,GAAE,MAAU,GAAG,IAAI;IAqBnE,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,UAAU,SAAI,GAAG,IAAI;IAI1D,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAM5C,mBAAmB,IAAI,MAAM;IAI7B,WAAW,IAAI,YAAY,EAAE;IAI7B,uBAAuB,IAAI,MAAM;IAIjC,eAAe,IAAI,MAAM,EAAE;IAI3B,sBAAsB,IAAI,YAAY,GAAG,IAAI;IAO7C,iBAAiB,IAAI,MAAM;IAI3B,WAAW,IAAI,OAAO;IAItB,mBAAmB,IAAI,OAAO;IAK9B,kBAAkB,IAAI,OAAO;IAK7B,IAAI,IAAI,IAAI;IAUZ,QAAQ,IAAI,IAAI;IAkBhB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAc9C,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAoC7D,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IA8DvC,aAAa,IAAI,IAAI;IAerB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAuB9D,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAwDjE,OAAO,CAAC,gBAAgB;IAiBjB,qBAAqB,CAAC,IAAI,EAAE,KAAK,GAAG,YAAY,GAAG,IAAI;IAOvD,qBAAqB,IAAI,KAAK,GAAG,YAAY;IAI7C,0BAA0B,IAAI,MAAM,GAAG,IAAI;IAqBlD,OAAO,CAAC,oBAAoB;IA2B5B;;;OAGG;IACI,0BAA0B,IAAI,IAAI;IAWlC,OAAO,IAAI,IAAI;CAKvB"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { PlayerSource, SourceType, RawLiveInfo, PlayerStatistics } from './types';
|
|
2
|
+
import { PlayerController } from './PlayerController';
|
|
3
|
+
import { DrmManager } from './DrmManager';
|
|
4
|
+
|
|
5
|
+
export declare function normalizeAudioLabel(label?: string, lang?: string): string;
|
|
6
|
+
export interface SourceHandler {
|
|
7
|
+
load(source: PlayerSource, video: HTMLVideoElement, controller: PlayerController): void;
|
|
8
|
+
destroy(): void;
|
|
9
|
+
setQuality?(index: number): void;
|
|
10
|
+
setAudioTrack?(index: number): void;
|
|
11
|
+
setSubtitleTrack?(index: number): void;
|
|
12
|
+
seekToLiveEdge?(): void;
|
|
13
|
+
getRawLiveInfo?(): RawLiveInfo | null;
|
|
14
|
+
managesSubtitles?: boolean;
|
|
15
|
+
getStats?(): Partial<PlayerStatistics>;
|
|
16
|
+
/** Exposes this handler's DRM manager (if any) for diagnostics tooling
|
|
17
|
+
* such as DrmValidator, which otherwise has no typed way to reach a
|
|
18
|
+
* handler's private DRM state. */
|
|
19
|
+
getDrmManager?(): DrmManager | null;
|
|
20
|
+
}
|
|
21
|
+
export declare class Mp4Handler implements SourceHandler {
|
|
22
|
+
private source;
|
|
23
|
+
private video;
|
|
24
|
+
private controller;
|
|
25
|
+
private syncTracksListener;
|
|
26
|
+
private uniqueAudioTracks;
|
|
27
|
+
private qualityRestoreListener;
|
|
28
|
+
private drmManager;
|
|
29
|
+
getDrmManager(): DrmManager | null;
|
|
30
|
+
load(source: PlayerSource, video: HTMLVideoElement, controller: PlayerController): void;
|
|
31
|
+
private syncAndDeduplicateTracks;
|
|
32
|
+
destroy(): void;
|
|
33
|
+
setQuality(index: number): void;
|
|
34
|
+
setAudioTrack(index: number): void;
|
|
35
|
+
}
|
|
36
|
+
export declare class HlsHandler implements SourceHandler {
|
|
37
|
+
private hls;
|
|
38
|
+
private hlsRetryCount;
|
|
39
|
+
private mediaRecoveryCount;
|
|
40
|
+
private controller;
|
|
41
|
+
private video;
|
|
42
|
+
private lastLevelIndex;
|
|
43
|
+
private isAutoMode;
|
|
44
|
+
private uniqueAudioTracks;
|
|
45
|
+
private livePollInterval;
|
|
46
|
+
private _isLive;
|
|
47
|
+
private _isLowLatency;
|
|
48
|
+
private _dvrWindow;
|
|
49
|
+
private _hasDvr;
|
|
50
|
+
readonly managesSubtitles = true;
|
|
51
|
+
private drmManager;
|
|
52
|
+
getDrmManager(): DrmManager | null;
|
|
53
|
+
private startLivePolling;
|
|
54
|
+
private stopLivePolling;
|
|
55
|
+
getLiveSyncPosition(): number | null;
|
|
56
|
+
private pollLiveStats;
|
|
57
|
+
getRawLiveInfo(): RawLiveInfo | null;
|
|
58
|
+
seekToLiveEdge(): void;
|
|
59
|
+
load(source: PlayerSource, video: HTMLVideoElement, controller: PlayerController): void;
|
|
60
|
+
private syncAndDeduplicateTracks;
|
|
61
|
+
private syncQualityState;
|
|
62
|
+
destroy(): void;
|
|
63
|
+
setQuality(index: number): void;
|
|
64
|
+
setAudioTrack(index: number): void;
|
|
65
|
+
setSubtitleTrack(index: number): void;
|
|
66
|
+
getStats(): Partial<PlayerStatistics>;
|
|
67
|
+
}
|
|
68
|
+
export declare class DashHandler implements SourceHandler {
|
|
69
|
+
private player;
|
|
70
|
+
private controller;
|
|
71
|
+
private video;
|
|
72
|
+
private lastQualityIndex;
|
|
73
|
+
private isAutoMode;
|
|
74
|
+
private videoRepresentations;
|
|
75
|
+
private uniqueAudioTracks;
|
|
76
|
+
readonly managesSubtitles = true;
|
|
77
|
+
private dashRetryCount;
|
|
78
|
+
private eventNames;
|
|
79
|
+
private drmManager;
|
|
80
|
+
/** False once the viewer seeks back into the DVR window or resumes behind live. */
|
|
81
|
+
private followingLive;
|
|
82
|
+
/** Last live catch-up value pushed to dash.js, so settings only change on transitions. */
|
|
83
|
+
private catchupEnabled;
|
|
84
|
+
getDrmManager(): DrmManager | null;
|
|
85
|
+
getRawLiveInfo(): RawLiveInfo | null;
|
|
86
|
+
seekToLiveEdge(): void;
|
|
87
|
+
/**
|
|
88
|
+
* Live catch-up (small playback-rate changes that hold latency near the target) is
|
|
89
|
+
* always on in live-only mode. In live-dvr mode it's on for low-latency streams while
|
|
90
|
+
* the viewer follows the live edge, and off once they seek back into the DVR window or
|
|
91
|
+
* resume from a pause behind it, so dash.js doesn't pull a time-shifted viewer forward.
|
|
92
|
+
* It follows viewer actions rather than the current latency, so a stall at the live
|
|
93
|
+
* edge doesn't switch catch-up off just when it's needed to recover.
|
|
94
|
+
*/
|
|
95
|
+
private syncLiveCatchup;
|
|
96
|
+
/** On seeks and resumes, records whether the viewer is still following the live edge. */
|
|
97
|
+
private handleLivePositionChange;
|
|
98
|
+
private normalizeQualityIndex;
|
|
99
|
+
private resolveCurrentRepresentationIndex;
|
|
100
|
+
private handleTrackChangeRendered;
|
|
101
|
+
private handleStreamInitialized;
|
|
102
|
+
private handleQualityChangeRendered;
|
|
103
|
+
private handleTextTrackChanged;
|
|
104
|
+
private handleKeySystemSelected;
|
|
105
|
+
private handleKeySessionCreated;
|
|
106
|
+
private handleKeySessionClosed;
|
|
107
|
+
private handleKeySessionRemoved;
|
|
108
|
+
private handleKeyStatusesChanged;
|
|
109
|
+
private handleKeyMessage;
|
|
110
|
+
private handleProtectionError;
|
|
111
|
+
private bufferToHex;
|
|
112
|
+
private handleError;
|
|
113
|
+
load(source: PlayerSource, video: HTMLVideoElement, controller: PlayerController): void;
|
|
114
|
+
private syncAndDeduplicateTracks;
|
|
115
|
+
private syncQualityState;
|
|
116
|
+
destroy(): void;
|
|
117
|
+
seek(_time: number): boolean;
|
|
118
|
+
setQuality(index: number): void;
|
|
119
|
+
setAudioTrack(index: number): void;
|
|
120
|
+
setSubtitleTrack(index: number): void;
|
|
121
|
+
getStats(): Partial<PlayerStatistics>;
|
|
122
|
+
}
|
|
123
|
+
export declare class EmbedHandler implements SourceHandler {
|
|
124
|
+
private iframe;
|
|
125
|
+
private video;
|
|
126
|
+
private controller;
|
|
127
|
+
load(source: PlayerSource, video: HTMLVideoElement, controller: PlayerController): void;
|
|
128
|
+
destroy(): void;
|
|
129
|
+
}
|
|
130
|
+
export declare class SourceManager {
|
|
131
|
+
private activeHandler;
|
|
132
|
+
getActiveHandler(): SourceHandler | null;
|
|
133
|
+
getHandler(type: SourceType): SourceHandler;
|
|
134
|
+
load(source: PlayerSource, video: HTMLVideoElement, controller: PlayerController): void;
|
|
135
|
+
destroy(): void;
|
|
136
|
+
setQuality(index: number): void;
|
|
137
|
+
setAudioTrack(index: number): void;
|
|
138
|
+
setSubtitleTrack(index: number): void;
|
|
139
|
+
seekToLiveEdge(): boolean;
|
|
140
|
+
getRawLiveInfo(): RawLiveInfo | null;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=SourceManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceManager.d.ts","sourceRoot":"","sources":["../../../core/src/SourceManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { PlayerEvents, PlayerState, SubtitleAppearance, SubtitleTrack, TextTrackSource } from './types';
|
|
2
|
+
import { SourceManager } from './SourceManager';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The minimal surface of `PlayerController` that `SubtitleManager` depends on.
|
|
6
|
+
*/
|
|
7
|
+
export interface SubtitleManagerHost {
|
|
8
|
+
getVideoElement(): HTMLVideoElement;
|
|
9
|
+
getState(): PlayerState;
|
|
10
|
+
updateStatePublic(changes: Partial<PlayerState>): void;
|
|
11
|
+
dispatchEvent<K extends keyof PlayerEvents>(event: K, detail?: PlayerEvents[K]): void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Owns subtitle/caption track discovery, selection, appearance and the blob
|
|
15
|
+
* URLs created for externally fetched WebVTT files.
|
|
16
|
+
*/
|
|
17
|
+
export declare class SubtitleManager {
|
|
18
|
+
private readonly host;
|
|
19
|
+
private readonly sourceManager;
|
|
20
|
+
private readonly defaultAppearance;
|
|
21
|
+
private managedTracks;
|
|
22
|
+
private managedActiveTrackId;
|
|
23
|
+
private managedActiveTrackIndex;
|
|
24
|
+
private subtitleBlobUrls;
|
|
25
|
+
constructor(host: SubtitleManagerHost, sourceManager: SourceManager);
|
|
26
|
+
private get video();
|
|
27
|
+
private get state();
|
|
28
|
+
private updateState;
|
|
29
|
+
private dispatchEvent;
|
|
30
|
+
getDefaultAppearance(): SubtitleAppearance;
|
|
31
|
+
/**
|
|
32
|
+
* Reads the persisted caption enablement + appearance. Used by
|
|
33
|
+
* `PlayerController`'s constructor to seed initial state before any
|
|
34
|
+
* subscriber exists (so it assigns directly rather than via updateState).
|
|
35
|
+
*/
|
|
36
|
+
readPersistedSettings(): {
|
|
37
|
+
captionsEnabled: boolean;
|
|
38
|
+
appearance: SubtitleAppearance;
|
|
39
|
+
};
|
|
40
|
+
private handleTrackChange;
|
|
41
|
+
/**
|
|
42
|
+
* Attaches the text-track listeners this manager needs and syncs the initial
|
|
43
|
+
* cue appearance. Called from `PlayerController.setupEventListeners()`.
|
|
44
|
+
*/
|
|
45
|
+
attach(): void;
|
|
46
|
+
/** Mirror of {@link attach}. Called from `PlayerController.destroy()`. */
|
|
47
|
+
detach(): void;
|
|
48
|
+
setManagedSubtitleTracks(source: 'hls' | 'dash', tracks: Array<{
|
|
49
|
+
label: string;
|
|
50
|
+
language: string;
|
|
51
|
+
default?: boolean;
|
|
52
|
+
forced?: boolean;
|
|
53
|
+
kind?: string;
|
|
54
|
+
}>, activeIndex: number): void;
|
|
55
|
+
refreshSubtitleTracks(): void;
|
|
56
|
+
loadCaptions(track: TextTrackSource): void;
|
|
57
|
+
toggleCaptions(enable?: boolean): void;
|
|
58
|
+
setSubtitleTrack(trackId: string | number): void;
|
|
59
|
+
disableSubtitles(): void;
|
|
60
|
+
hasSubtitles(): boolean;
|
|
61
|
+
getSubtitleTracks(): SubtitleTrack[];
|
|
62
|
+
getActiveSubtitleTrack(): SubtitleTrack | null;
|
|
63
|
+
getSubtitleAppearance(): SubtitleAppearance;
|
|
64
|
+
setSubtitleAppearance(appearance: Partial<SubtitleAppearance>): void;
|
|
65
|
+
resetSubtitleAppearance(): void;
|
|
66
|
+
syncSubtitleAppearance(): void;
|
|
67
|
+
/** Revokes and clears every blob URL created for external WebVTT files. */
|
|
68
|
+
revokeBlobUrls(): void;
|
|
69
|
+
/** Drops the HLS/DASH-managed track list when the source changes. */
|
|
70
|
+
resetManagedTracks(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Appends `<track>` elements for the external subtitle files declared on a
|
|
73
|
+
* source, fetching remote VTT into blob URLs so cross-origin files render.
|
|
74
|
+
*/
|
|
75
|
+
attachSourceSubtitles(subtitles: TextTrackSource[] | undefined): void;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=SubtitleManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubtitleManager.d.ts","sourceRoot":"","sources":["../../../core/src/SubtitleManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAGlB,aAAa,EAEb,eAAe,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAsBrD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe,IAAI,gBAAgB,CAAC;IACpC,QAAQ,IAAI,WAAW,CAAC;IACxB,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACvD,aAAa,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACvF;AAcD;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiD;IACnF,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,uBAAuB,CAAc;IAC7C,OAAO,CAAC,gBAAgB,CAAgB;gBAE5B,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa;IAKnE,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAId,oBAAoB,IAAI,kBAAkB;IAIjD;;;;OAIG;IACI,qBAAqB,IAAI;QAAE,eAAe,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,kBAAkB,CAAA;KAAE;IAmB5F,OAAO,CAAC,iBAAiB,CAEvB;IAEF;;;OAGG;IACI,MAAM,IAAI,IAAI;IAUrB,0EAA0E;IACnE,MAAM,IAAI,IAAI;IASd,wBAAwB,CAC7B,MAAM,EAAE,KAAK,GAAG,MAAM,EACtB,MAAM,EAAE,KAAK,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,EACF,WAAW,EAAE,MAAM,GAClB,IAAI;IAsCA,qBAAqB,IAAI,IAAI;IAmJ7B,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IA0B1C,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAwBtC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAoChD,gBAAgB,IAAI,IAAI;IAsBxB,YAAY,IAAI,OAAO;IAIvB,iBAAiB,IAAI,aAAa,EAAE;IAIpC,sBAAsB,IAAI,aAAa,GAAG,IAAI;IAM9C,qBAAqB,IAAI,kBAAkB;IAI3C,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAcpE,uBAAuB,IAAI,IAAI;IAI/B,sBAAsB,IAAI,IAAI;IAgErC,2EAA2E;IACpE,cAAc,IAAI,IAAI;IAe7B,qEAAqE;IAC9D,kBAAkB,IAAI,IAAI;IAMjC;;;OAGG;IACI,qBAAqB,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,SAAS,GAAG,IAAI;CAgD7E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TimelineMarker, Chapter } from './types';
|
|
2
|
+
|
|
3
|
+
export declare class TimelineMath {
|
|
4
|
+
static timeToPercent(time: number, start: number, end: number): number;
|
|
5
|
+
static percentToTime(percent: number, start: number, end: number): number;
|
|
6
|
+
static clampToSeekable(time: number, start: number, end: number): number;
|
|
7
|
+
static isMarkerVisible(markerTime: number, start: number, end: number): boolean;
|
|
8
|
+
static isWithinSeekable(time: number, start: number, end: number): boolean;
|
|
9
|
+
static shouldPruneMarker(markerTime: number, start: number): boolean;
|
|
10
|
+
static findNearestMarker(time: number, markers: TimelineMarker[], visibleMarkerTypes: string[] | null, hoverThreshold: number): TimelineMarker | null;
|
|
11
|
+
static findNearestChapter(time: number, chapters: Chapter[], duration: number): number;
|
|
12
|
+
static findNearestChapterBoundary(time: number, chapters: Chapter[], hoverThreshold: number): Chapter | null;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=TimelineMath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimelineMath.d.ts","sourceRoot":"","sources":["../../../core/src/TimelineMath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElD,qBAAa,YAAY;WACT,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;WAM/D,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;WAKlE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;WAIjE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;WAIxE,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;WAInE,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;WAI7D,iBAAiB,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,EAAE,EACzB,kBAAkB,EAAE,MAAM,EAAE,GAAG,IAAI,EACnC,cAAc,EAAE,MAAM,GACrB,cAAc,GAAG,IAAI;WAiBV,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;WAc/E,0BAA0B,CACtC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,EAAE,MAAM,GACrB,OAAO,GAAG,IAAI;CAalB"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { Advertisement, HtmlOverlayConfig } from '../types';
|
|
2
|
+
import { TrackingManager, TrackingDiagnostics } from '../providers/VastProvider';
|
|
3
|
+
import { PlayerController } from '../PlayerController';
|
|
4
|
+
|
|
5
|
+
export type HtmlOverlayState = 'idle' | 'loading' | 'rendered' | 'visible' | 'hidden' | 'destroyed';
|
|
6
|
+
export interface HtmlOverlayDiagnostics {
|
|
7
|
+
readonly overlayActive: boolean;
|
|
8
|
+
readonly overlayVisible: boolean;
|
|
9
|
+
readonly renderMode: 'iframe' | 'string' | 'template' | 'image' | 'dom' | 'unknown';
|
|
10
|
+
readonly renderDurationMs: number;
|
|
11
|
+
readonly overlayLifetimeMs: number;
|
|
12
|
+
readonly clickCount: number;
|
|
13
|
+
readonly interactionCount: number;
|
|
14
|
+
readonly trackingStatus: TrackingDiagnostics;
|
|
15
|
+
readonly errors: string[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* HtmlOverlayRenderer - Coordinates rendering of non-linear HTML overlay ads
|
|
19
|
+
* above the playing video without interrupting content playback.
|
|
20
|
+
*/
|
|
21
|
+
export declare class HtmlOverlayRenderer {
|
|
22
|
+
private readonly controller;
|
|
23
|
+
private readonly adContainer;
|
|
24
|
+
private readonly isExternalSlot;
|
|
25
|
+
private state;
|
|
26
|
+
private trackingManager;
|
|
27
|
+
private containerElement;
|
|
28
|
+
private contentWrapper;
|
|
29
|
+
private iframeElement;
|
|
30
|
+
private currentAd;
|
|
31
|
+
private destroyController;
|
|
32
|
+
private resizeObserver;
|
|
33
|
+
private firedEvents;
|
|
34
|
+
private durationTimer;
|
|
35
|
+
private closeDelayTimer;
|
|
36
|
+
private intrinsicWidth;
|
|
37
|
+
private intrinsicHeight;
|
|
38
|
+
private renderStartTime;
|
|
39
|
+
private renderDuration;
|
|
40
|
+
private creationTime;
|
|
41
|
+
private clickCount;
|
|
42
|
+
private interactionCount;
|
|
43
|
+
private errors;
|
|
44
|
+
constructor(controller: PlayerController, adContainer: HTMLElement, trackingManager?: TrackingManager, isExternalSlot?: boolean);
|
|
45
|
+
getLifecycleState(): HtmlOverlayState;
|
|
46
|
+
getDiagnostics(): HtmlOverlayDiagnostics;
|
|
47
|
+
private getRenderMode;
|
|
48
|
+
/**
|
|
49
|
+
* Loads the HTML overlay ad, resolves VAST XML tags if provided as URL,
|
|
50
|
+
* configures dynamic layout & sizing, but does not display it yet.
|
|
51
|
+
*/
|
|
52
|
+
loadAd(ad: Advertisement): Promise<boolean>;
|
|
53
|
+
private resolveTargetSlot;
|
|
54
|
+
/**
|
|
55
|
+
* Pre-resolves VAST XML if a VAST Tag URL - or raw inline VAST XML text -
|
|
56
|
+
* was supplied in htmlUrl. Delegates the actual element extraction to
|
|
57
|
+
* VastProvider's namespace/prefix-safe parser (parseNonLinearVastXml)
|
|
58
|
+
* rather than a plain CSS querySelector walk, since ad-server VAST often
|
|
59
|
+
* uses namespaced/prefixed tags (e.g. <vast:NonLinear>) that querySelector
|
|
60
|
+
* on an XML document does not reliably match.
|
|
61
|
+
*/
|
|
62
|
+
private resolveVastTagIfNecessary;
|
|
63
|
+
/**
|
|
64
|
+
* Layout Engine: Recalculates exact bounding dimensions and safe offsets
|
|
65
|
+
* relative to the player stage.
|
|
66
|
+
*/
|
|
67
|
+
private recalculateLayout;
|
|
68
|
+
/**
|
|
69
|
+
* Displays the HTML overlay ad and fires impressions.
|
|
70
|
+
*/
|
|
71
|
+
show(): void;
|
|
72
|
+
/**
|
|
73
|
+
* Hides the HTML overlay ad.
|
|
74
|
+
*/
|
|
75
|
+
hide(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Closes the HTML overlay ad.
|
|
78
|
+
*/
|
|
79
|
+
close(): void;
|
|
80
|
+
/**
|
|
81
|
+
* Dynamically updates positioning, sizing, or content of active overlay.
|
|
82
|
+
*/
|
|
83
|
+
updateOverlay(patch: Partial<HtmlOverlayConfig>): void;
|
|
84
|
+
/**
|
|
85
|
+
* Destroy and clean up DOM nodes, listeners, timers, and references.
|
|
86
|
+
*/
|
|
87
|
+
destroy(): void;
|
|
88
|
+
private scheduleDurationTimer;
|
|
89
|
+
private handleDurationComplete;
|
|
90
|
+
private clearDurationTimer;
|
|
91
|
+
private clearCloseDelayTimer;
|
|
92
|
+
private renderImage;
|
|
93
|
+
private renderIframe;
|
|
94
|
+
private renderTemplate;
|
|
95
|
+
private renderHtmlString;
|
|
96
|
+
private setupCloseButton;
|
|
97
|
+
private setupKeyboardAccessibility;
|
|
98
|
+
private setupInteractionHandlers;
|
|
99
|
+
private applyStylesAndPositioning;
|
|
100
|
+
private fireTrackingEvents;
|
|
101
|
+
private handleError;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=HtmlOverlayRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HtmlOverlayRenderer.d.ts","sourceRoot":"","sources":["../../../../core/src/html-overlay/HtmlOverlayRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export * from './types';
|
|
2
|
+
export { formatTime } from './utils';
|
|
3
|
+
export { PlayerController } from './PlayerController';
|
|
4
|
+
export { KeyboardManager } from './KeyboardManager';
|
|
5
|
+
export { TimelineMath } from './TimelineMath';
|
|
6
|
+
export * from './providers/ThumbnailProviders';
|
|
7
|
+
export * from './DrmManager';
|
|
8
|
+
export * from './DrmValidator';
|
|
9
|
+
export { AdsController } from './AdsController';
|
|
10
|
+
export { AdsManager, AdBreakManager } from './AdsManager';
|
|
11
|
+
export { VastProvider } from './providers/VastProvider';
|
|
12
|
+
export { VmapProvider } from './providers/VmapProvider';
|
|
13
|
+
export { ImaProvider } from './providers/ImaProvider';
|
|
14
|
+
export * from './simid/types';
|
|
15
|
+
export { SimidManager } from './simid/SimidManager';
|
|
16
|
+
export { SimidSession } from './simid/SimidSession';
|
|
17
|
+
export { SimidBridge } from './simid/SimidBridge';
|
|
18
|
+
export { SimidRuntime } from './simid/SimidRuntime';
|
|
19
|
+
export { HtmlOverlayRenderer } from './html-overlay/HtmlOverlayRenderer';
|
|
20
|
+
export type { HtmlOverlayState, HtmlOverlayDiagnostics } from './html-overlay/HtmlOverlayRenderer';
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { AdProvider, ProviderContext, ProviderResult, CapabilityInfo, AdErrorType } from '../types';
|
|
2
|
+
|
|
3
|
+
interface ImaAdsRequest {
|
|
4
|
+
adTagUrl: string;
|
|
5
|
+
linearAdSlotWidth?: number;
|
|
6
|
+
linearAdSlotHeight?: number;
|
|
7
|
+
nonLinearAdSlotWidth?: number;
|
|
8
|
+
nonLinearAdSlotHeight?: number;
|
|
9
|
+
publisherProvidedId?: string;
|
|
10
|
+
sessionId?: string;
|
|
11
|
+
customParameters?: string;
|
|
12
|
+
setAdWillAutoPlay?: (val: boolean) => void;
|
|
13
|
+
setAdWillPlayMuted?: (val: boolean) => void;
|
|
14
|
+
}
|
|
15
|
+
interface ImaAdDisplayContainer {
|
|
16
|
+
initialize: () => void;
|
|
17
|
+
destroy: () => void;
|
|
18
|
+
}
|
|
19
|
+
interface ImaAdsRenderingSettings {
|
|
20
|
+
restorePlayerStateOnAdComplete: boolean;
|
|
21
|
+
}
|
|
22
|
+
interface ImaAdsLoader {
|
|
23
|
+
addEventListener: <E>(type: string, listener: (e: E) => void, useCapture?: boolean) => void;
|
|
24
|
+
removeEventListener: <E>(type: string, listener: (e: E) => void) => void;
|
|
25
|
+
requestAds: (request: ImaAdsRequest) => void;
|
|
26
|
+
destroy: () => void;
|
|
27
|
+
}
|
|
28
|
+
interface ImaSettings {
|
|
29
|
+
getLocale?: () => string;
|
|
30
|
+
setLanguage: (lang: string) => void;
|
|
31
|
+
setLocale: (locale: string) => void;
|
|
32
|
+
}
|
|
33
|
+
interface ImaNamespace {
|
|
34
|
+
AdDisplayContainer: new (container: HTMLElement, video: HTMLVideoElement) => ImaAdDisplayContainer;
|
|
35
|
+
AdsLoader: new (container: ImaAdDisplayContainer) => ImaAdsLoader;
|
|
36
|
+
AdsRequest: new () => ImaAdsRequest;
|
|
37
|
+
AdsRenderingSettings: new () => ImaAdsRenderingSettings;
|
|
38
|
+
AdsManagerLoadedEvent: {
|
|
39
|
+
Type: {
|
|
40
|
+
ADS_MANAGER_LOADED: string;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
AdErrorEvent: {
|
|
44
|
+
Type: {
|
|
45
|
+
AD_ERROR: string;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
AdEvent: {
|
|
49
|
+
Type: {
|
|
50
|
+
CONTENT_PAUSE_REQUESTED: string;
|
|
51
|
+
CONTENT_RESUME_REQUESTED: string;
|
|
52
|
+
ALL_ADS_COMPLETED?: string;
|
|
53
|
+
LOADED: string;
|
|
54
|
+
AD_PROGRESS: string;
|
|
55
|
+
STARTED: string;
|
|
56
|
+
PAUSED: string;
|
|
57
|
+
RESUMED: string;
|
|
58
|
+
COMPLETE: string;
|
|
59
|
+
SKIPPED: string;
|
|
60
|
+
CLICK: string;
|
|
61
|
+
AD_BREAK_READY: string;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
ViewMode: {
|
|
65
|
+
FULLSCREEN: string;
|
|
66
|
+
NORMAL: string;
|
|
67
|
+
};
|
|
68
|
+
settings: ImaSettings;
|
|
69
|
+
}
|
|
70
|
+
declare global {
|
|
71
|
+
interface Window {
|
|
72
|
+
google?: {
|
|
73
|
+
ima?: ImaNamespace;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export interface ImaDiagnostics {
|
|
78
|
+
sdkLoaded: boolean;
|
|
79
|
+
sdkVersion: string;
|
|
80
|
+
sdkLoadDurationMs: number;
|
|
81
|
+
adsLoaderState: 'idle' | 'requesting' | 'ready' | 'error';
|
|
82
|
+
adsManagerState: 'idle' | 'ready' | 'playing' | 'paused' | 'destroyed';
|
|
83
|
+
lastErrorMsg: string;
|
|
84
|
+
lastErrorCode: number;
|
|
85
|
+
eventsLogged: string[];
|
|
86
|
+
/**
|
|
87
|
+
* True once loadImaSdk() has failed in a way consistent with a browser
|
|
88
|
+
* or extension ad blocker (script.onerror, or the tag never resolving at
|
|
89
|
+
* all within SDK_LOAD_TIMEOUT_MS - some blockers hang the request instead
|
|
90
|
+
* of erroring). This can't be proven from JS (that's the point of an ad
|
|
91
|
+
* blocker), so treat it as "likely", not certain.
|
|
92
|
+
*/
|
|
93
|
+
sdkBlockedLikely: boolean;
|
|
94
|
+
}
|
|
95
|
+
export declare function mapImaErrorCode(code: number): AdErrorType;
|
|
96
|
+
export declare class ImaProvider implements AdProvider {
|
|
97
|
+
readonly name = "IMA";
|
|
98
|
+
readonly capabilities: CapabilityInfo;
|
|
99
|
+
private context;
|
|
100
|
+
private manager;
|
|
101
|
+
private adDisplayContainer;
|
|
102
|
+
private adsLoader;
|
|
103
|
+
private adsManager;
|
|
104
|
+
private loaderState;
|
|
105
|
+
private managerState;
|
|
106
|
+
private currentTag;
|
|
107
|
+
private startWatchdogTimer;
|
|
108
|
+
private static readonly START_WATCHDOG_MS;
|
|
109
|
+
private containerWatchTimer;
|
|
110
|
+
private static readonly CONTAINER_WATCH_INTERVAL_MS;
|
|
111
|
+
private diagnostics;
|
|
112
|
+
init(context: ProviderContext): ProviderResult;
|
|
113
|
+
requestAds(adTagUrl: string, config?: Record<string, unknown>): Promise<ProviderResult>;
|
|
114
|
+
private resizeListener;
|
|
115
|
+
private initializeImaLoader;
|
|
116
|
+
private setupResizeListener;
|
|
117
|
+
resize(width?: number, height?: number): void;
|
|
118
|
+
private onAdsManagerLoaded;
|
|
119
|
+
private setupAdsManagerListeners;
|
|
120
|
+
private onAdError;
|
|
121
|
+
playAdBreak(breakType?: 'preroll' | 'midroll' | 'postroll'): Promise<void>;
|
|
122
|
+
private startStartWatchdog;
|
|
123
|
+
private clearStartWatchdog;
|
|
124
|
+
private startContainerWatch;
|
|
125
|
+
private clearContainerWatch;
|
|
126
|
+
pauseAd(): void;
|
|
127
|
+
resumeAd(): void;
|
|
128
|
+
setVolume(volume: number): void;
|
|
129
|
+
setMuted(muted: boolean): void;
|
|
130
|
+
getImaDiagnostics(): ImaDiagnostics;
|
|
131
|
+
skipAd(): void;
|
|
132
|
+
destroy(): void;
|
|
133
|
+
}
|
|
134
|
+
export {};
|
|
135
|
+
//# sourceMappingURL=ImaProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImaProvider.d.ts","sourceRoot":"","sources":["../../../../core/src/providers/ImaProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { ThumbnailProvider, ThumbnailInfo, PlayerSource, SmartSeekConfig, SpriteInfo, PlayerConfiguration } from '../types';
|
|
2
|
+
|
|
3
|
+
export declare class VideoFrameThumbnailProvider implements ThumbnailProvider {
|
|
4
|
+
readonly type = "frame-capture";
|
|
5
|
+
private video;
|
|
6
|
+
private canvas;
|
|
7
|
+
private ctx;
|
|
8
|
+
private cache;
|
|
9
|
+
private currentSrc;
|
|
10
|
+
private pendingSrc;
|
|
11
|
+
private isSeeking;
|
|
12
|
+
private seekQueue;
|
|
13
|
+
private isMetadataLoaded;
|
|
14
|
+
private hasError;
|
|
15
|
+
private consecutiveFailures;
|
|
16
|
+
private metadataPromise;
|
|
17
|
+
private resolveMetadata;
|
|
18
|
+
private hlsInstance;
|
|
19
|
+
private dashInstance;
|
|
20
|
+
private isDestroyed;
|
|
21
|
+
private lastSeekTime;
|
|
22
|
+
private lastHighPriorityTime;
|
|
23
|
+
private throttleMs;
|
|
24
|
+
private seekTimeoutId;
|
|
25
|
+
private readonly MAX_CACHE_SIZE;
|
|
26
|
+
isPreciseSeeking: boolean;
|
|
27
|
+
private activeSeekCleanup;
|
|
28
|
+
private pendingRequests;
|
|
29
|
+
private config?;
|
|
30
|
+
constructor(config?: SmartSeekConfig);
|
|
31
|
+
updateConfig(config?: SmartSeekConfig): void;
|
|
32
|
+
private handleLoadedMetadata;
|
|
33
|
+
private handleVideoError;
|
|
34
|
+
private initVideoAndCanvas;
|
|
35
|
+
setSource(src: string): void;
|
|
36
|
+
private loadPendingSource;
|
|
37
|
+
private destroyStreamingInstances;
|
|
38
|
+
isUnavailable(): boolean;
|
|
39
|
+
getNearestCachedThumbnail(time: number): ThumbnailInfo | null;
|
|
40
|
+
getThumbnail(time: number, priority?: 'high' | 'low'): Promise<ThumbnailInfo | null> | ThumbnailInfo | null;
|
|
41
|
+
private processQueue;
|
|
42
|
+
private handleFailure;
|
|
43
|
+
private captureFrame;
|
|
44
|
+
private isCanvasBlank;
|
|
45
|
+
destroy(): void;
|
|
46
|
+
}
|
|
47
|
+
export declare class VTTThumbnailProvider implements ThumbnailProvider {
|
|
48
|
+
readonly type = "vtt";
|
|
49
|
+
private vttUrl;
|
|
50
|
+
private cues;
|
|
51
|
+
private isLoaded;
|
|
52
|
+
private loadPromise;
|
|
53
|
+
private cache;
|
|
54
|
+
private config?;
|
|
55
|
+
constructor(vttUrl: string, config?: SmartSeekConfig);
|
|
56
|
+
updateConfig(config?: SmartSeekConfig): void;
|
|
57
|
+
private loadVTT;
|
|
58
|
+
private parseVTT;
|
|
59
|
+
private parseTimestamp;
|
|
60
|
+
getNearestCachedThumbnail(time: number): ThumbnailInfo | null;
|
|
61
|
+
getThumbnail(time: number, priority?: 'high' | 'low'): Promise<ThumbnailInfo | null>;
|
|
62
|
+
destroy(): void;
|
|
63
|
+
isUnavailable(): boolean;
|
|
64
|
+
}
|
|
65
|
+
export declare class SpriteThumbnailProvider implements ThumbnailProvider {
|
|
66
|
+
readonly type = "sprite";
|
|
67
|
+
private spriteUrl;
|
|
68
|
+
private spriteInfo;
|
|
69
|
+
private cache;
|
|
70
|
+
private loadPromise;
|
|
71
|
+
private config?;
|
|
72
|
+
constructor(spriteUrl: string, spriteInfo: SpriteInfo, config?: SmartSeekConfig);
|
|
73
|
+
updateConfig(config?: SmartSeekConfig): void;
|
|
74
|
+
private preloadImage;
|
|
75
|
+
getNearestCachedThumbnail(time: number): ThumbnailInfo | null;
|
|
76
|
+
getThumbnail(time: number, priority?: 'high' | 'low'): Promise<ThumbnailInfo | null>;
|
|
77
|
+
private calculateThumbnail;
|
|
78
|
+
destroy(): void;
|
|
79
|
+
isUnavailable(): boolean;
|
|
80
|
+
}
|
|
81
|
+
export declare class AutoThumbnailProvider implements ThumbnailProvider {
|
|
82
|
+
readonly type = "auto";
|
|
83
|
+
private currentProvider;
|
|
84
|
+
private currentSrc;
|
|
85
|
+
private config?;
|
|
86
|
+
constructor(config?: PlayerConfiguration);
|
|
87
|
+
/**
|
|
88
|
+
* `config?.smartSeek` may itself be a boolean flag rather than a config
|
|
89
|
+
* object (`PlayerConfiguration.smartSeek: SmartSeekConfig | boolean`) -
|
|
90
|
+
* when it isn't a usable object, this falls back to treating `config`
|
|
91
|
+
* itself as the `SmartSeekConfig` (matches the pre-existing
|
|
92
|
+
* `config?.smartSeek || config` fallback behavior).
|
|
93
|
+
*/
|
|
94
|
+
private static resolveSmartSeek;
|
|
95
|
+
updateConfig(config?: PlayerConfiguration): void;
|
|
96
|
+
setSource(src: string, sourceOptions?: PlayerSource): void;
|
|
97
|
+
getNearestCachedThumbnail(time: number): ThumbnailInfo | null;
|
|
98
|
+
getThumbnail(time: number, priority?: 'high' | 'low'): Promise<ThumbnailInfo | null> | ThumbnailInfo | null;
|
|
99
|
+
isUnavailable(): boolean;
|
|
100
|
+
destroy(): void;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=ThumbnailProviders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThumbnailProviders.d.ts","sourceRoot":"","sources":["../../../../core/src/providers/ThumbnailProviders.ts"],"names":[],"mappings":"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"}
|