strataplayer 1.2.8 → 1.2.10
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/dist/core/AudioEngine.d.ts +14 -0
- package/dist/core/EventBus.d.ts +9 -0
- package/dist/core/NanoStore.d.ts +10 -0
- package/dist/core/StrataCore.d.ts +278 -0
- package/dist/dash.cjs.js.map +1 -1
- package/dist/dash.d.ts +1 -332
- package/dist/dash.es.js.map +1 -1
- package/dist/hls.cjs.js.map +1 -1
- package/dist/hls.d.ts +1 -330
- package/dist/hls.es.js.map +1 -1
- package/dist/index.d.ts +1 -345
- package/dist/lib.d.ts +11 -0
- package/dist/mpegts.cjs.js.map +1 -1
- package/dist/mpegts.d.ts +1 -331
- package/dist/mpegts.es.js.map +1 -1
- package/dist/plugins/DashPlugin.d.ts +12 -0
- package/dist/plugins/HlsPlugin.d.ts +10 -0
- package/dist/plugins/MpegtsPlugin.d.ts +11 -0
- package/dist/plugins/WebTorrentPlugin.d.ts +17 -0
- package/dist/ui/Icons.d.ts +50 -0
- package/dist/ui/StrataPlayer.d.ts +23 -0
- package/dist/ui/components/ContextMenu.d.ts +12 -0
- package/dist/ui/components/Menu.d.ts +16 -0
- package/dist/ui/components/NotificationContainer.d.ts +5 -0
- package/dist/ui/components/SettingsPrimitives.d.ts +4 -0
- package/dist/ui/components/SubtitleMenu.d.ts +1 -0
- package/dist/ui/components/SubtitleOverlay.d.ts +6 -0
- package/dist/ui/components/VideoInfo.d.ts +6 -0
- package/dist/ui/hooks/useTransition.d.ts +4 -0
- package/dist/utils/playerUtils.d.ts +11 -0
- package/dist/webtorrent.cjs.js.map +1 -1
- package/dist/webtorrent.d.ts +1 -337
- package/dist/webtorrent.es.js.map +1 -1
- package/package.json +20 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,345 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { JSX } from 'react/jsx-runtime';
|
|
3
|
-
|
|
4
|
-
export declare interface ContextMenuItem {
|
|
5
|
-
html?: string | default_2.ReactNode;
|
|
6
|
-
disabled?: boolean;
|
|
7
|
-
icon?: string | default_2.ReactNode;
|
|
8
|
-
onClick?: (close: () => void) => void;
|
|
9
|
-
click?: (close: () => void) => void;
|
|
10
|
-
checked?: boolean;
|
|
11
|
-
showBorder?: boolean;
|
|
12
|
-
separator?: boolean;
|
|
13
|
-
isLabel?: boolean;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export declare interface ControlItem {
|
|
17
|
-
id?: string;
|
|
18
|
-
position: 'left' | 'right' | 'center';
|
|
19
|
-
index: number;
|
|
20
|
-
html?: string | default_2.ReactNode;
|
|
21
|
-
tooltip?: string;
|
|
22
|
-
onClick?: (core: StrataCore) => void;
|
|
23
|
-
click?: (core: StrataCore) => void;
|
|
24
|
-
className?: string;
|
|
25
|
-
style?: default_2.CSSProperties;
|
|
26
|
-
isBuiltIn?: boolean;
|
|
27
|
-
builtInId?: string;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
declare class EventBus {
|
|
31
|
-
private events;
|
|
32
|
-
constructor();
|
|
33
|
-
on<T>(event: string, callback: EventCallback<T>): () => void;
|
|
34
|
-
off<T>(event: string, callback: EventCallback<T>): void;
|
|
35
|
-
emit<T>(event: string, data?: T): void;
|
|
36
|
-
destroy(): void;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
declare type EventCallback<T = any> = (data: T) => void;
|
|
40
|
-
|
|
41
|
-
declare interface Highlight_2 {
|
|
42
|
-
time: number;
|
|
43
|
-
text: string;
|
|
44
|
-
}
|
|
45
|
-
export { Highlight_2 as Highlight }
|
|
46
|
-
|
|
47
|
-
export declare interface IPlugin {
|
|
48
|
-
name: string;
|
|
49
|
-
init(core: StrataCore): void;
|
|
50
|
-
destroy?(): void;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export declare interface LayerConfig {
|
|
54
|
-
name?: string;
|
|
55
|
-
html: string | default_2.ReactNode;
|
|
56
|
-
style?: default_2.CSSProperties;
|
|
57
|
-
className?: string;
|
|
58
|
-
click?: () => void;
|
|
59
|
-
mounted?: (element: HTMLElement) => void;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
declare type Listener<T> = (state: T, prevState: T) => void;
|
|
63
|
-
|
|
64
|
-
export declare const mountStrataPlayer: (container: HTMLElement, props: any) => StrataPlayerInstance;
|
|
65
|
-
|
|
66
|
-
declare class NanoStore<T> {
|
|
67
|
-
private state;
|
|
68
|
-
private listeners;
|
|
69
|
-
constructor(initialState: T);
|
|
70
|
-
get(): T;
|
|
71
|
-
setState(partial: Partial<T> | ((prev: T) => Partial<T>)): void;
|
|
72
|
-
subscribe(listener: Listener<T>): () => void;
|
|
73
|
-
destroy(): void;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
declare interface Notification_2 {
|
|
77
|
-
id: string;
|
|
78
|
-
message: string;
|
|
79
|
-
type: 'info' | 'success' | 'warning' | 'error' | 'loading';
|
|
80
|
-
duration?: number;
|
|
81
|
-
progress?: number;
|
|
82
|
-
}
|
|
83
|
-
export { Notification_2 as Notification }
|
|
84
|
-
|
|
85
|
-
export declare interface PlayerSource {
|
|
86
|
-
url: string;
|
|
87
|
-
type?: 'hls' | 'mp4' | 'webm' | 'dash' | 'mpegts' | 'webtorrent' | string;
|
|
88
|
-
name?: string;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export declare interface PlayerState {
|
|
92
|
-
isPlaying: boolean;
|
|
93
|
-
isBuffering: boolean;
|
|
94
|
-
isLive: boolean;
|
|
95
|
-
currentTime: number;
|
|
96
|
-
duration: number;
|
|
97
|
-
buffered: {
|
|
98
|
-
start: number;
|
|
99
|
-
end: number;
|
|
100
|
-
}[];
|
|
101
|
-
volume: number;
|
|
102
|
-
isMuted: boolean;
|
|
103
|
-
audioGain: number;
|
|
104
|
-
playbackRate: number;
|
|
105
|
-
qualityLevels: {
|
|
106
|
-
height: number;
|
|
107
|
-
bitrate: number;
|
|
108
|
-
index: number;
|
|
109
|
-
}[];
|
|
110
|
-
currentQuality: number;
|
|
111
|
-
audioTracks: {
|
|
112
|
-
label: string;
|
|
113
|
-
language: string;
|
|
114
|
-
index: number;
|
|
115
|
-
}[];
|
|
116
|
-
currentAudioTrack: number;
|
|
117
|
-
error: string | null;
|
|
118
|
-
isFullscreen: boolean;
|
|
119
|
-
isPip: boolean;
|
|
120
|
-
subtitleTracks: {
|
|
121
|
-
label: string;
|
|
122
|
-
language: string;
|
|
123
|
-
index: number;
|
|
124
|
-
}[];
|
|
125
|
-
currentSubtitle: number;
|
|
126
|
-
subtitleOffset: number;
|
|
127
|
-
subtitleSettings: SubtitleSettings;
|
|
128
|
-
activeCues: string[];
|
|
129
|
-
viewMode: 'normal' | 'theater' | 'pip';
|
|
130
|
-
notifications: Notification_2[];
|
|
131
|
-
iconSize: 'small' | 'medium' | 'large';
|
|
132
|
-
themeColor: string;
|
|
133
|
-
theme: PlayerTheme;
|
|
134
|
-
sources: PlayerSource[];
|
|
135
|
-
currentSourceIndex: number;
|
|
136
|
-
isLocked: boolean;
|
|
137
|
-
flipState: {
|
|
138
|
-
horizontal: boolean;
|
|
139
|
-
vertical: boolean;
|
|
140
|
-
};
|
|
141
|
-
aspectRatio: string;
|
|
142
|
-
isAutoSized: boolean;
|
|
143
|
-
isLooping: boolean;
|
|
144
|
-
controlsVisible: boolean;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
export declare type PlayerTheme = 'default' | 'pixel' | 'game' | 'hacker';
|
|
148
|
-
|
|
149
|
-
export declare interface SettingItem {
|
|
150
|
-
id?: string;
|
|
151
|
-
html: string | default_2.ReactNode;
|
|
152
|
-
icon?: string | default_2.ReactNode;
|
|
153
|
-
tooltip?: string;
|
|
154
|
-
switch?: boolean;
|
|
155
|
-
onSwitch?: (item: SettingItem) => boolean | void;
|
|
156
|
-
onClick?: () => void;
|
|
157
|
-
click?: () => void;
|
|
158
|
-
isDefault?: boolean;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
export declare interface StrataConfig {
|
|
162
|
-
container?: string;
|
|
163
|
-
id?: string;
|
|
164
|
-
volume?: number;
|
|
165
|
-
muted?: boolean;
|
|
166
|
-
playbackRate?: number;
|
|
167
|
-
audioGain?: number;
|
|
168
|
-
loop?: boolean;
|
|
169
|
-
playsInline?: boolean;
|
|
170
|
-
isLive?: boolean;
|
|
171
|
-
poster?: string;
|
|
172
|
-
fetchTimeout?: number;
|
|
173
|
-
theme?: PlayerTheme;
|
|
174
|
-
themeColor?: string;
|
|
175
|
-
iconSize?: 'small' | 'medium' | 'large';
|
|
176
|
-
backdrop?: boolean;
|
|
177
|
-
autoSize?: boolean;
|
|
178
|
-
subtitleSettings?: Partial<SubtitleSettings>;
|
|
179
|
-
screenshot?: boolean;
|
|
180
|
-
setting?: boolean;
|
|
181
|
-
pip?: boolean;
|
|
182
|
-
fullscreen?: boolean;
|
|
183
|
-
fullscreenWeb?: boolean;
|
|
184
|
-
flip?: boolean;
|
|
185
|
-
aspectRatio?: boolean;
|
|
186
|
-
highlight?: Highlight_2[];
|
|
187
|
-
centerControls?: boolean;
|
|
188
|
-
hotKey?: boolean;
|
|
189
|
-
lock?: boolean;
|
|
190
|
-
gesture?: boolean;
|
|
191
|
-
gestureSeek?: boolean;
|
|
192
|
-
fastForward?: boolean;
|
|
193
|
-
autoOrientation?: boolean;
|
|
194
|
-
layers?: LayerConfig[];
|
|
195
|
-
contextmenu?: ContextMenuItem[];
|
|
196
|
-
controls?: ControlItem[];
|
|
197
|
-
settings?: SettingItem[];
|
|
198
|
-
useSSR?: boolean;
|
|
199
|
-
disablePersistence?: boolean;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
export declare class StrataCore {
|
|
203
|
-
video: HTMLVideoElement;
|
|
204
|
-
container: HTMLElement | null;
|
|
205
|
-
events: EventBus;
|
|
206
|
-
store: NanoStore<PlayerState>;
|
|
207
|
-
private plugins;
|
|
208
|
-
private audioEngine;
|
|
209
|
-
config: StrataConfig;
|
|
210
|
-
private resizeObserver;
|
|
211
|
-
private retryCount;
|
|
212
|
-
private maxRetries;
|
|
213
|
-
private retryTimer;
|
|
214
|
-
private currentSource;
|
|
215
|
-
private currentSrc;
|
|
216
|
-
private currentTracks;
|
|
217
|
-
private castInitialized;
|
|
218
|
-
private boundCueChange;
|
|
219
|
-
private boundFullscreenChange;
|
|
220
|
-
constructor(config?: StrataConfig, videoElement?: HTMLVideoElement);
|
|
221
|
-
get playing(): boolean;
|
|
222
|
-
get currentTime(): number;
|
|
223
|
-
set currentTime(val: number);
|
|
224
|
-
get duration(): number;
|
|
225
|
-
get paused(): boolean;
|
|
226
|
-
get volume(): number;
|
|
227
|
-
set volume(val: number);
|
|
228
|
-
get muted(): boolean;
|
|
229
|
-
set muted(val: boolean);
|
|
230
|
-
get playbackRate(): number;
|
|
231
|
-
set playbackRate(val: number);
|
|
232
|
-
get loop(): boolean;
|
|
233
|
-
set loop(val: boolean);
|
|
234
|
-
forward(seconds?: number): void;
|
|
235
|
-
backward(seconds?: number): void;
|
|
236
|
-
on(event: string, callback: EventCallback): () => void;
|
|
237
|
-
off(event: string, callback: EventCallback): void;
|
|
238
|
-
emit(event: string, data?: any): void;
|
|
239
|
-
private initVideoListeners;
|
|
240
|
-
private initMediaSession;
|
|
241
|
-
private updateMediaSessionMetadata;
|
|
242
|
-
private updateMediaSessionPosition;
|
|
243
|
-
triggerError(message: string, isFatal?: boolean): void;
|
|
244
|
-
private handleError;
|
|
245
|
-
private updateBuffer;
|
|
246
|
-
private updateSubtitles;
|
|
247
|
-
fetchWithRetry(url: string, retries?: number, timeout?: number): Promise<Response>;
|
|
248
|
-
attach(container: HTMLElement): void;
|
|
249
|
-
use(plugin: IPlugin): void;
|
|
250
|
-
setSources(sources: PlayerSource[], tracks?: TextTrackConfig[]): void;
|
|
251
|
-
switchSource(index: number): void;
|
|
252
|
-
load(source: PlayerSource | string, tracks?: TextTrackConfig[], isRetry?: boolean): void;
|
|
253
|
-
loadSubtitle(url: string, label?: string): void;
|
|
254
|
-
addTextTrack(file: File, label: string): void;
|
|
255
|
-
private addTextTrackInternal;
|
|
256
|
-
play(): Promise<void>;
|
|
257
|
-
pause(): void;
|
|
258
|
-
togglePlay(): void;
|
|
259
|
-
seek(time: number): void;
|
|
260
|
-
skip(seconds: number): void;
|
|
261
|
-
setVolume(vol: number): void;
|
|
262
|
-
toggleMute(): void;
|
|
263
|
-
setAudioGain(gain: number): void;
|
|
264
|
-
setQuality(index: number): void;
|
|
265
|
-
setAudioTrack(index: number): void;
|
|
266
|
-
setControlsVisible(visible: boolean): void;
|
|
267
|
-
toggleFullscreen(): Promise<void>;
|
|
268
|
-
togglePip(): void;
|
|
269
|
-
screenshot(): void;
|
|
270
|
-
toggleLock(): void;
|
|
271
|
-
toggleLoop(): void;
|
|
272
|
-
setFlip(direction: 'horizontal' | 'vertical'): void;
|
|
273
|
-
setAspectRatio(ratio: string): void;
|
|
274
|
-
private initCast;
|
|
275
|
-
requestCast(): void;
|
|
276
|
-
private loadMediaToCast;
|
|
277
|
-
private handleCueChange;
|
|
278
|
-
setSubtitle(index: number): void;
|
|
279
|
-
updateSubtitleSettings(settings: Partial<SubtitleSettings>): void;
|
|
280
|
-
resetSubtitleSettings(): void;
|
|
281
|
-
setSubtitleOffset(offset: number): void;
|
|
282
|
-
download(): Promise<void>;
|
|
283
|
-
notify(n: Omit<Notification_2, 'id'> & {
|
|
284
|
-
id?: string;
|
|
285
|
-
}): string;
|
|
286
|
-
removeNotification(id: string): void;
|
|
287
|
-
setAppearance(settings: {
|
|
288
|
-
iconSize?: 'small' | 'medium' | 'large';
|
|
289
|
-
themeColor?: string;
|
|
290
|
-
theme?: PlayerTheme;
|
|
291
|
-
}): void;
|
|
292
|
-
destroy(): void;
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
export declare const StrataPlayer: (props: StrataPlayerProps) => JSX.Element;
|
|
296
|
-
|
|
297
|
-
export declare interface StrataPlayerInstance {
|
|
298
|
-
unmount: () => void;
|
|
299
|
-
update: (props: any) => void;
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
declare interface StrataPlayerProps extends StrataConfig {
|
|
303
|
-
src?: string;
|
|
304
|
-
type?: string;
|
|
305
|
-
sources?: PlayerSource[];
|
|
306
|
-
poster?: string;
|
|
307
|
-
thumbnails?: string;
|
|
308
|
-
textTracks?: TextTrackConfig[];
|
|
309
|
-
plugins?: IPlugin[];
|
|
310
|
-
autoPlay?: boolean;
|
|
311
|
-
onGetInstance?: (core: StrataCore) => void;
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
export declare interface SubtitleSettings {
|
|
315
|
-
useNative: boolean;
|
|
316
|
-
fixCapitalization: boolean;
|
|
317
|
-
backgroundOpacity: number;
|
|
318
|
-
backgroundBlur: boolean;
|
|
319
|
-
backgroundBlurAmount: number;
|
|
320
|
-
textSize: number;
|
|
321
|
-
textStyle: 'none' | 'outline' | 'raised' | 'depressed' | 'shadow';
|
|
322
|
-
isBold: boolean;
|
|
323
|
-
textColor: string;
|
|
324
|
-
verticalOffset: number;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
export declare interface TextTrackConfig {
|
|
328
|
-
src: string;
|
|
329
|
-
label: string;
|
|
330
|
-
srcLang?: string;
|
|
331
|
-
default?: boolean;
|
|
332
|
-
kind?: 'subtitles' | 'captions' | 'descriptions' | 'chapters' | 'metadata';
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
export { }
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
declare module 'react' {
|
|
339
|
-
namespace JSX {
|
|
340
|
-
interface IntrinsicElements {
|
|
341
|
-
'google-cast-launcher': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
|
|
1
|
+
export * from './lib'
|
package/dist/lib.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { StrataPlayer } from './ui/StrataPlayer';
|
|
2
|
+
import { StrataCore, PlayerState, PlayerSource, StrataConfig, TextTrackConfig, IPlugin, SubtitleSettings, PlayerTheme, Highlight, LayerConfig, ContextMenuItem, ControlItem, SettingItem, Notification } from './core/StrataCore';
|
|
3
|
+
|
|
4
|
+
export { StrataPlayer };
|
|
5
|
+
export { StrataCore };
|
|
6
|
+
export type { PlayerState, PlayerSource, StrataConfig, TextTrackConfig, IPlugin, SubtitleSettings, PlayerTheme, Highlight, LayerConfig, ContextMenuItem, ControlItem, SettingItem, Notification };
|
|
7
|
+
export interface StrataPlayerInstance {
|
|
8
|
+
unmount: () => void;
|
|
9
|
+
update: (props: any) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const mountStrataPlayer: (container: HTMLElement, props: any) => StrataPlayerInstance;
|
package/dist/mpegts.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mpegts.cjs.js","sources":["../plugins/MpegtsPlugin.ts"],"sourcesContent":["import { StrataCore, IPlugin } from '
|
|
1
|
+
{"version":3,"file":"mpegts.cjs.js","sources":["../plugins/MpegtsPlugin.ts"],"sourcesContent":["import { StrataCore, IPlugin } from 'strataplayer';\r\nimport * as MpegtsModule from 'mpegts.js';\r\n\r\nconst mpegts = (MpegtsModule as any).default || MpegtsModule;\r\n\r\nexport class MpegtsPlugin implements IPlugin {\r\n name = 'MpegtsPlugin';\r\n private player: any = null;\r\n private core: StrataCore | null = null;\r\n\r\n init(core: StrataCore) {\r\n this.core = core;\r\n this.core.events.on('load', (data: { url: string, type: string }) => {\r\n if (data.type === 'mpegts' || data.type === 'flv') {\r\n if (mpegts.isSupported()) {\r\n this.loadMpegts(data.url);\r\n } else {\r\n this.core!.triggerError('MPEG-TS/FLV not supported in this browser', true);\r\n }\r\n } else {\r\n this.destroyPlayer();\r\n }\r\n });\r\n }\r\n\r\n private loadMpegts(url: string) {\r\n this.destroyPlayer();\r\n try {\r\n this.player = mpegts.createPlayer({\r\n type: url.endsWith('.flv') ? 'flv' : 'mpegts',\r\n url: url,\r\n isLive: false // Defaulting to false, assuming VOD unless customized or detected\r\n });\r\n\r\n this.player.attachMediaElement(this.core!.video);\r\n this.player.load();\r\n\r\n // Error Handling\r\n this.player.on(mpegts.Events.ERROR, (type: any, details: any, data: any) => {\r\n if (type === mpegts.ErrorTypes.NETWORK_ERROR) {\r\n this.core!.triggerError(`Network Error: ${details}`, true);\r\n } else if (type === mpegts.ErrorTypes.MEDIA_ERROR) {\r\n this.core!.triggerError(`Media Error: ${details}`, true);\r\n } else {\r\n this.core!.triggerError(`Mpegts Error: ${details}`, false);\r\n }\r\n });\r\n\r\n } catch (e: any) {\r\n this.core!.triggerError(`Mpegts Init Failed: ${e.message}`, true);\r\n }\r\n }\r\n\r\n private destroyPlayer() {\r\n if (this.player) {\r\n this.player.destroy();\r\n this.player = null;\r\n }\r\n }\r\n\r\n destroy() {\r\n this.destroyPlayer();\r\n }\r\n}"],"names":["mpegts","MpegtsModule","MpegtsPlugin","__publicField","core","data","url","type","details"],"mappings":"2iBAGMA,EAAUC,EAAqB,SAAWA,EAEzC,MAAMC,CAAgC,CAAtC,cACLC,EAAA,YAAO,gBACCA,EAAA,cAAc,MACdA,EAAA,YAA0B,MAElC,KAAKC,EAAkB,CACrB,KAAK,KAAOA,EACZ,KAAK,KAAK,OAAO,GAAG,OAASC,GAAwC,CAC/DA,EAAK,OAAS,UAAYA,EAAK,OAAS,MACtCL,EAAO,cACT,KAAK,WAAWK,EAAK,GAAG,EAExB,KAAK,KAAM,aAAa,4CAA6C,EAAI,EAG3E,KAAK,cAAA,CAET,CAAC,CACH,CAEQ,WAAWC,EAAa,CAC9B,KAAK,cAAA,EACL,GAAI,CACF,KAAK,OAASN,EAAO,aAAa,CAChC,KAAMM,EAAI,SAAS,MAAM,EAAI,MAAQ,SACrC,IAAAA,EACA,OAAQ,EAAA,CACT,EAED,KAAK,OAAO,mBAAmB,KAAK,KAAM,KAAK,EAC/C,KAAK,OAAO,KAAA,EAGZ,KAAK,OAAO,GAAGN,EAAO,OAAO,MAAO,CAACO,EAAWC,EAAcH,IAAc,CACtEE,IAASP,EAAO,WAAW,cAC7B,KAAK,KAAM,aAAa,kBAAkBQ,CAAO,GAAI,EAAI,EAChDD,IAASP,EAAO,WAAW,YACpC,KAAK,KAAM,aAAa,gBAAgBQ,CAAO,GAAI,EAAI,EAEvD,KAAK,KAAM,aAAa,iBAAiBA,CAAO,GAAI,EAAK,CAE7D,CAAC,CAEH,OAAS,EAAQ,CACf,KAAK,KAAM,aAAa,uBAAuB,EAAE,OAAO,GAAI,EAAI,CAClE,CACF,CAEQ,eAAgB,CAClB,KAAK,SACP,KAAK,OAAO,QAAA,EACZ,KAAK,OAAS,KAElB,CAEA,SAAU,CACR,KAAK,cAAA,CACP,CACF"}
|
package/dist/mpegts.d.ts
CHANGED
|
@@ -1,331 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
declare interface ContextMenuItem {
|
|
4
|
-
html?: string | default_2.ReactNode;
|
|
5
|
-
disabled?: boolean;
|
|
6
|
-
icon?: string | default_2.ReactNode;
|
|
7
|
-
onClick?: (close: () => void) => void;
|
|
8
|
-
click?: (close: () => void) => void;
|
|
9
|
-
checked?: boolean;
|
|
10
|
-
showBorder?: boolean;
|
|
11
|
-
separator?: boolean;
|
|
12
|
-
isLabel?: boolean;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
declare interface ControlItem {
|
|
16
|
-
id?: string;
|
|
17
|
-
position: 'left' | 'right' | 'center';
|
|
18
|
-
index: number;
|
|
19
|
-
html?: string | default_2.ReactNode;
|
|
20
|
-
tooltip?: string;
|
|
21
|
-
onClick?: (core: StrataCore) => void;
|
|
22
|
-
click?: (core: StrataCore) => void;
|
|
23
|
-
className?: string;
|
|
24
|
-
style?: default_2.CSSProperties;
|
|
25
|
-
isBuiltIn?: boolean;
|
|
26
|
-
builtInId?: string;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
declare class EventBus {
|
|
30
|
-
private events;
|
|
31
|
-
constructor();
|
|
32
|
-
on<T>(event: string, callback: EventCallback<T>): () => void;
|
|
33
|
-
off<T>(event: string, callback: EventCallback<T>): void;
|
|
34
|
-
emit<T>(event: string, data?: T): void;
|
|
35
|
-
destroy(): void;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
declare type EventCallback<T = any> = (data: T) => void;
|
|
39
|
-
|
|
40
|
-
declare interface Highlight_2 {
|
|
41
|
-
time: number;
|
|
42
|
-
text: string;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
declare interface IPlugin {
|
|
46
|
-
name: string;
|
|
47
|
-
init(core: StrataCore): void;
|
|
48
|
-
destroy?(): void;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
declare interface LayerConfig {
|
|
52
|
-
name?: string;
|
|
53
|
-
html: string | default_2.ReactNode;
|
|
54
|
-
style?: default_2.CSSProperties;
|
|
55
|
-
className?: string;
|
|
56
|
-
click?: () => void;
|
|
57
|
-
mounted?: (element: HTMLElement) => void;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
declare type Listener<T> = (state: T, prevState: T) => void;
|
|
61
|
-
|
|
62
|
-
export declare class MpegtsPlugin implements IPlugin {
|
|
63
|
-
name: string;
|
|
64
|
-
private player;
|
|
65
|
-
private core;
|
|
66
|
-
init(core: StrataCore): void;
|
|
67
|
-
private loadMpegts;
|
|
68
|
-
private destroyPlayer;
|
|
69
|
-
destroy(): void;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
declare class NanoStore<T> {
|
|
73
|
-
private state;
|
|
74
|
-
private listeners;
|
|
75
|
-
constructor(initialState: T);
|
|
76
|
-
get(): T;
|
|
77
|
-
setState(partial: Partial<T> | ((prev: T) => Partial<T>)): void;
|
|
78
|
-
subscribe(listener: Listener<T>): () => void;
|
|
79
|
-
destroy(): void;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
declare interface Notification_2 {
|
|
83
|
-
id: string;
|
|
84
|
-
message: string;
|
|
85
|
-
type: 'info' | 'success' | 'warning' | 'error' | 'loading';
|
|
86
|
-
duration?: number;
|
|
87
|
-
progress?: number;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
declare interface PlayerSource {
|
|
91
|
-
url: string;
|
|
92
|
-
type?: 'hls' | 'mp4' | 'webm' | 'dash' | 'mpegts' | 'webtorrent' | string;
|
|
93
|
-
name?: string;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
declare interface PlayerState {
|
|
97
|
-
isPlaying: boolean;
|
|
98
|
-
isBuffering: boolean;
|
|
99
|
-
isLive: boolean;
|
|
100
|
-
currentTime: number;
|
|
101
|
-
duration: number;
|
|
102
|
-
buffered: {
|
|
103
|
-
start: number;
|
|
104
|
-
end: number;
|
|
105
|
-
}[];
|
|
106
|
-
volume: number;
|
|
107
|
-
isMuted: boolean;
|
|
108
|
-
audioGain: number;
|
|
109
|
-
playbackRate: number;
|
|
110
|
-
qualityLevels: {
|
|
111
|
-
height: number;
|
|
112
|
-
bitrate: number;
|
|
113
|
-
index: number;
|
|
114
|
-
}[];
|
|
115
|
-
currentQuality: number;
|
|
116
|
-
audioTracks: {
|
|
117
|
-
label: string;
|
|
118
|
-
language: string;
|
|
119
|
-
index: number;
|
|
120
|
-
}[];
|
|
121
|
-
currentAudioTrack: number;
|
|
122
|
-
error: string | null;
|
|
123
|
-
isFullscreen: boolean;
|
|
124
|
-
isPip: boolean;
|
|
125
|
-
subtitleTracks: {
|
|
126
|
-
label: string;
|
|
127
|
-
language: string;
|
|
128
|
-
index: number;
|
|
129
|
-
}[];
|
|
130
|
-
currentSubtitle: number;
|
|
131
|
-
subtitleOffset: number;
|
|
132
|
-
subtitleSettings: SubtitleSettings;
|
|
133
|
-
activeCues: string[];
|
|
134
|
-
viewMode: 'normal' | 'theater' | 'pip';
|
|
135
|
-
notifications: Notification_2[];
|
|
136
|
-
iconSize: 'small' | 'medium' | 'large';
|
|
137
|
-
themeColor: string;
|
|
138
|
-
theme: PlayerTheme;
|
|
139
|
-
sources: PlayerSource[];
|
|
140
|
-
currentSourceIndex: number;
|
|
141
|
-
isLocked: boolean;
|
|
142
|
-
flipState: {
|
|
143
|
-
horizontal: boolean;
|
|
144
|
-
vertical: boolean;
|
|
145
|
-
};
|
|
146
|
-
aspectRatio: string;
|
|
147
|
-
isAutoSized: boolean;
|
|
148
|
-
isLooping: boolean;
|
|
149
|
-
controlsVisible: boolean;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
declare type PlayerTheme = 'default' | 'pixel' | 'game' | 'hacker';
|
|
153
|
-
|
|
154
|
-
declare interface SettingItem {
|
|
155
|
-
id?: string;
|
|
156
|
-
html: string | default_2.ReactNode;
|
|
157
|
-
icon?: string | default_2.ReactNode;
|
|
158
|
-
tooltip?: string;
|
|
159
|
-
switch?: boolean;
|
|
160
|
-
onSwitch?: (item: SettingItem) => boolean | void;
|
|
161
|
-
onClick?: () => void;
|
|
162
|
-
click?: () => void;
|
|
163
|
-
isDefault?: boolean;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
declare interface StrataConfig {
|
|
167
|
-
container?: string;
|
|
168
|
-
id?: string;
|
|
169
|
-
volume?: number;
|
|
170
|
-
muted?: boolean;
|
|
171
|
-
playbackRate?: number;
|
|
172
|
-
audioGain?: number;
|
|
173
|
-
loop?: boolean;
|
|
174
|
-
playsInline?: boolean;
|
|
175
|
-
isLive?: boolean;
|
|
176
|
-
poster?: string;
|
|
177
|
-
fetchTimeout?: number;
|
|
178
|
-
theme?: PlayerTheme;
|
|
179
|
-
themeColor?: string;
|
|
180
|
-
iconSize?: 'small' | 'medium' | 'large';
|
|
181
|
-
backdrop?: boolean;
|
|
182
|
-
autoSize?: boolean;
|
|
183
|
-
subtitleSettings?: Partial<SubtitleSettings>;
|
|
184
|
-
screenshot?: boolean;
|
|
185
|
-
setting?: boolean;
|
|
186
|
-
pip?: boolean;
|
|
187
|
-
fullscreen?: boolean;
|
|
188
|
-
fullscreenWeb?: boolean;
|
|
189
|
-
flip?: boolean;
|
|
190
|
-
aspectRatio?: boolean;
|
|
191
|
-
highlight?: Highlight_2[];
|
|
192
|
-
centerControls?: boolean;
|
|
193
|
-
hotKey?: boolean;
|
|
194
|
-
lock?: boolean;
|
|
195
|
-
gesture?: boolean;
|
|
196
|
-
gestureSeek?: boolean;
|
|
197
|
-
fastForward?: boolean;
|
|
198
|
-
autoOrientation?: boolean;
|
|
199
|
-
layers?: LayerConfig[];
|
|
200
|
-
contextmenu?: ContextMenuItem[];
|
|
201
|
-
controls?: ControlItem[];
|
|
202
|
-
settings?: SettingItem[];
|
|
203
|
-
useSSR?: boolean;
|
|
204
|
-
disablePersistence?: boolean;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
declare class StrataCore {
|
|
208
|
-
video: HTMLVideoElement;
|
|
209
|
-
container: HTMLElement | null;
|
|
210
|
-
events: EventBus;
|
|
211
|
-
store: NanoStore<PlayerState>;
|
|
212
|
-
private plugins;
|
|
213
|
-
private audioEngine;
|
|
214
|
-
config: StrataConfig;
|
|
215
|
-
private resizeObserver;
|
|
216
|
-
private retryCount;
|
|
217
|
-
private maxRetries;
|
|
218
|
-
private retryTimer;
|
|
219
|
-
private currentSource;
|
|
220
|
-
private currentSrc;
|
|
221
|
-
private currentTracks;
|
|
222
|
-
private castInitialized;
|
|
223
|
-
private boundCueChange;
|
|
224
|
-
private boundFullscreenChange;
|
|
225
|
-
constructor(config?: StrataConfig, videoElement?: HTMLVideoElement);
|
|
226
|
-
get playing(): boolean;
|
|
227
|
-
get currentTime(): number;
|
|
228
|
-
set currentTime(val: number);
|
|
229
|
-
get duration(): number;
|
|
230
|
-
get paused(): boolean;
|
|
231
|
-
get volume(): number;
|
|
232
|
-
set volume(val: number);
|
|
233
|
-
get muted(): boolean;
|
|
234
|
-
set muted(val: boolean);
|
|
235
|
-
get playbackRate(): number;
|
|
236
|
-
set playbackRate(val: number);
|
|
237
|
-
get loop(): boolean;
|
|
238
|
-
set loop(val: boolean);
|
|
239
|
-
forward(seconds?: number): void;
|
|
240
|
-
backward(seconds?: number): void;
|
|
241
|
-
on(event: string, callback: EventCallback): () => void;
|
|
242
|
-
off(event: string, callback: EventCallback): void;
|
|
243
|
-
emit(event: string, data?: any): void;
|
|
244
|
-
private initVideoListeners;
|
|
245
|
-
private initMediaSession;
|
|
246
|
-
private updateMediaSessionMetadata;
|
|
247
|
-
private updateMediaSessionPosition;
|
|
248
|
-
triggerError(message: string, isFatal?: boolean): void;
|
|
249
|
-
private handleError;
|
|
250
|
-
private updateBuffer;
|
|
251
|
-
private updateSubtitles;
|
|
252
|
-
fetchWithRetry(url: string, retries?: number, timeout?: number): Promise<Response>;
|
|
253
|
-
attach(container: HTMLElement): void;
|
|
254
|
-
use(plugin: IPlugin): void;
|
|
255
|
-
setSources(sources: PlayerSource[], tracks?: TextTrackConfig[]): void;
|
|
256
|
-
switchSource(index: number): void;
|
|
257
|
-
load(source: PlayerSource | string, tracks?: TextTrackConfig[], isRetry?: boolean): void;
|
|
258
|
-
loadSubtitle(url: string, label?: string): void;
|
|
259
|
-
addTextTrack(file: File, label: string): void;
|
|
260
|
-
private addTextTrackInternal;
|
|
261
|
-
play(): Promise<void>;
|
|
262
|
-
pause(): void;
|
|
263
|
-
togglePlay(): void;
|
|
264
|
-
seek(time: number): void;
|
|
265
|
-
skip(seconds: number): void;
|
|
266
|
-
setVolume(vol: number): void;
|
|
267
|
-
toggleMute(): void;
|
|
268
|
-
setAudioGain(gain: number): void;
|
|
269
|
-
setQuality(index: number): void;
|
|
270
|
-
setAudioTrack(index: number): void;
|
|
271
|
-
setControlsVisible(visible: boolean): void;
|
|
272
|
-
toggleFullscreen(): Promise<void>;
|
|
273
|
-
togglePip(): void;
|
|
274
|
-
screenshot(): void;
|
|
275
|
-
toggleLock(): void;
|
|
276
|
-
toggleLoop(): void;
|
|
277
|
-
setFlip(direction: 'horizontal' | 'vertical'): void;
|
|
278
|
-
setAspectRatio(ratio: string): void;
|
|
279
|
-
private initCast;
|
|
280
|
-
requestCast(): void;
|
|
281
|
-
private loadMediaToCast;
|
|
282
|
-
private handleCueChange;
|
|
283
|
-
setSubtitle(index: number): void;
|
|
284
|
-
updateSubtitleSettings(settings: Partial<SubtitleSettings>): void;
|
|
285
|
-
resetSubtitleSettings(): void;
|
|
286
|
-
setSubtitleOffset(offset: number): void;
|
|
287
|
-
download(): Promise<void>;
|
|
288
|
-
notify(n: Omit<Notification_2, 'id'> & {
|
|
289
|
-
id?: string;
|
|
290
|
-
}): string;
|
|
291
|
-
removeNotification(id: string): void;
|
|
292
|
-
setAppearance(settings: {
|
|
293
|
-
iconSize?: 'small' | 'medium' | 'large';
|
|
294
|
-
themeColor?: string;
|
|
295
|
-
theme?: PlayerTheme;
|
|
296
|
-
}): void;
|
|
297
|
-
destroy(): void;
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
declare interface SubtitleSettings {
|
|
301
|
-
useNative: boolean;
|
|
302
|
-
fixCapitalization: boolean;
|
|
303
|
-
backgroundOpacity: number;
|
|
304
|
-
backgroundBlur: boolean;
|
|
305
|
-
backgroundBlurAmount: number;
|
|
306
|
-
textSize: number;
|
|
307
|
-
textStyle: 'none' | 'outline' | 'raised' | 'depressed' | 'shadow';
|
|
308
|
-
isBold: boolean;
|
|
309
|
-
textColor: string;
|
|
310
|
-
verticalOffset: number;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
declare interface TextTrackConfig {
|
|
314
|
-
src: string;
|
|
315
|
-
label: string;
|
|
316
|
-
srcLang?: string;
|
|
317
|
-
default?: boolean;
|
|
318
|
-
kind?: 'subtitles' | 'captions' | 'descriptions' | 'chapters' | 'metadata';
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
export { }
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
declare module 'react' {
|
|
325
|
-
namespace JSX {
|
|
326
|
-
interface IntrinsicElements {
|
|
327
|
-
'google-cast-launcher': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
|
|
1
|
+
export * from './plugins/MpegtsPlugin'
|