@vindral/web-sdk 2.0.6 → 2.0.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/README.md +1 -1
- package/index.d.ts +361 -205
- package/package.json +1 -1
- package/web-sdk.esm.js +1 -1
- package/web-sdk.umd.js +1 -1
package/index.d.ts
CHANGED
|
@@ -85,6 +85,7 @@ declare class Emitter<TEvents, TEmits = TEvents, ArgLessEvents extends VoidKeys<
|
|
|
85
85
|
once<T extends ArgEvents>(eventName: T, fn: (args: TEvents[T]) => void): void;
|
|
86
86
|
private add;
|
|
87
87
|
}
|
|
88
|
+
declare type FilterFunc<T> = (item: T) => boolean;
|
|
88
89
|
declare class Fifo<T> {
|
|
89
90
|
readonly maxSize: number;
|
|
90
91
|
private values;
|
|
@@ -97,6 +98,7 @@ declare class Fifo<T> {
|
|
|
97
98
|
isFull: () => boolean;
|
|
98
99
|
isEmpty: () => boolean;
|
|
99
100
|
items: () => ReadonlyArray<T>;
|
|
101
|
+
filterPop: (filter: FilterFunc<T>) => void;
|
|
100
102
|
}
|
|
101
103
|
declare type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<T>;
|
|
102
104
|
interface MinMaxAverage {
|
|
@@ -171,6 +173,62 @@ declare class LoggerInstance implements Logger {
|
|
|
171
173
|
error: (message: string, meta?: Meta | undefined) => void;
|
|
172
174
|
critical: (message: string, meta?: Meta | undefined) => void;
|
|
173
175
|
}
|
|
176
|
+
export declare type PlayInitiator = "user input" | "programatically";
|
|
177
|
+
export interface PlaybackSource {
|
|
178
|
+
volume: number;
|
|
179
|
+
muted: boolean;
|
|
180
|
+
currentTime: number;
|
|
181
|
+
playbackRate?: number;
|
|
182
|
+
readonly seekTime: number;
|
|
183
|
+
readonly isSeeking: boolean;
|
|
184
|
+
play(initiator: PlayInitiator): Promise<void>;
|
|
185
|
+
}
|
|
186
|
+
interface MediaElementOptions {
|
|
187
|
+
autoplay: boolean;
|
|
188
|
+
muted: boolean;
|
|
189
|
+
type: "audio" | "video";
|
|
190
|
+
logger: Logger;
|
|
191
|
+
}
|
|
192
|
+
interface NeedsUserInputContext {
|
|
193
|
+
forAudio: boolean;
|
|
194
|
+
forVideo: boolean;
|
|
195
|
+
}
|
|
196
|
+
interface MediaElementEvents {
|
|
197
|
+
["needs user input"]: NeedsUserInputContext;
|
|
198
|
+
["buffer state"]: Readonly<BufferState>;
|
|
199
|
+
}
|
|
200
|
+
declare class MediaElement extends Emitter<MediaElementEvents> {
|
|
201
|
+
readonly element: HTMLMediaElement;
|
|
202
|
+
private logger;
|
|
203
|
+
private seekTimes;
|
|
204
|
+
private seekStartTime?;
|
|
205
|
+
private _userProvidedMuted;
|
|
206
|
+
private _userHasProvidedInput;
|
|
207
|
+
constructor({ type, autoplay, muted, logger }: MediaElementOptions);
|
|
208
|
+
attach: (container: HTMLElement) => void;
|
|
209
|
+
get seekTime(): number;
|
|
210
|
+
get isSeeking(): boolean;
|
|
211
|
+
get currentTime(): number;
|
|
212
|
+
set currentTime(value: number);
|
|
213
|
+
get playbackRate(): number;
|
|
214
|
+
set playbackRate(rate: number);
|
|
215
|
+
get volume(): number;
|
|
216
|
+
set volume(volume: number);
|
|
217
|
+
get muted(): boolean;
|
|
218
|
+
set muted(muted: boolean);
|
|
219
|
+
get userHasProvidedInput(): boolean;
|
|
220
|
+
get paused(): boolean;
|
|
221
|
+
getPlaybackRate: () => number;
|
|
222
|
+
getPlaybackState: () => PlaybackState;
|
|
223
|
+
setPlaybackRate: (rate: number) => void;
|
|
224
|
+
getBuffer: () => TimeRange[];
|
|
225
|
+
play: (initiator: PlayInitiator) => Promise<void>;
|
|
226
|
+
private _play;
|
|
227
|
+
private onEvent;
|
|
228
|
+
private onBufferStateChange;
|
|
229
|
+
private onSeekStart;
|
|
230
|
+
private onSeekEnd;
|
|
231
|
+
}
|
|
174
232
|
declare type PlaybackState = "buffering" | "playing";
|
|
175
233
|
declare type BufferStateEvent = "filled" | "drained";
|
|
176
234
|
declare type BufferState = {
|
|
@@ -180,6 +238,7 @@ declare type BufferState = {
|
|
|
180
238
|
};
|
|
181
239
|
interface PlaybackModuleListeners {
|
|
182
240
|
["buffer state"]: Readonly<BufferState>;
|
|
241
|
+
["needs user input"]: NeedsUserInputContext;
|
|
183
242
|
}
|
|
184
243
|
interface PlaybackModuleEvents {
|
|
185
244
|
["buffer state event"]: Readonly<BufferStateEvent>;
|
|
@@ -191,6 +250,8 @@ interface ClockSource {
|
|
|
191
250
|
}
|
|
192
251
|
interface PlaybackModuleStatistics {
|
|
193
252
|
bufferTime: number;
|
|
253
|
+
needsInputForAudioCount: number;
|
|
254
|
+
needsInputForVideoCount: number;
|
|
194
255
|
}
|
|
195
256
|
declare class PlaybackModule {
|
|
196
257
|
private emitter;
|
|
@@ -201,6 +262,8 @@ declare class PlaybackModule {
|
|
|
201
262
|
private targetBufferTime;
|
|
202
263
|
private lastBufferStateEvent;
|
|
203
264
|
private firstFrameTime?;
|
|
265
|
+
private needsInputForAudioCount;
|
|
266
|
+
private needsInputForVideoCount;
|
|
204
267
|
constructor(emitter: Emitter<PlaybackModuleListeners, PlaybackModuleEvents>, logger: Logger, clockSource: ClockSource, targetBufferTime: number);
|
|
205
268
|
static create: (emitter: Emitter<PlaybackModuleListeners, PlaybackModuleEvents>, logger: Logger, clockSource: ClockSource, targetBufferTime: number) => PlaybackModule;
|
|
206
269
|
unload: () => void;
|
|
@@ -212,6 +275,7 @@ declare class PlaybackModule {
|
|
|
212
275
|
getFirstFrameTime: () => number | undefined;
|
|
213
276
|
getStatistics: () => PlaybackModuleStatistics;
|
|
214
277
|
private onBufferedStateChanged;
|
|
278
|
+
private onNeedsUserInput;
|
|
215
279
|
}
|
|
216
280
|
declare type Direction = "upgrade" | "downgrade" | "double downgrade" | "reconnect";
|
|
217
281
|
interface QualityOfServiceConfig {
|
|
@@ -271,7 +335,7 @@ interface AudioPlayerModuleListeners {
|
|
|
271
335
|
["decoded frame"]: Readonly<DecodedSample>;
|
|
272
336
|
}
|
|
273
337
|
interface AudioPlayerModuleEvents {
|
|
274
|
-
["needs user input"]:
|
|
338
|
+
["needs user input"]: NeedsUserInputContext;
|
|
275
339
|
}
|
|
276
340
|
interface ClockSource {
|
|
277
341
|
readonly currentTime: number;
|
|
@@ -283,14 +347,18 @@ declare class AudioPlayerModule {
|
|
|
283
347
|
private audio?;
|
|
284
348
|
private gainNode?;
|
|
285
349
|
private _volume;
|
|
350
|
+
private _userProvidedMuted;
|
|
351
|
+
private _muted;
|
|
286
352
|
private startTime;
|
|
287
353
|
private samples;
|
|
354
|
+
private preInitSampleQueue;
|
|
288
355
|
private sampleRate;
|
|
289
356
|
private channels;
|
|
290
357
|
private index;
|
|
291
358
|
private clockSource;
|
|
292
359
|
private clockDelta?;
|
|
293
360
|
private startTimeIsInvalidated;
|
|
361
|
+
private lastSampleTimestamp;
|
|
294
362
|
get volume(): number;
|
|
295
363
|
set volume(volume: number);
|
|
296
364
|
get seekTime(): number;
|
|
@@ -299,11 +367,11 @@ declare class AudioPlayerModule {
|
|
|
299
367
|
set muted(muted: boolean);
|
|
300
368
|
get currentTime(): number;
|
|
301
369
|
set currentTime(currentTime: number);
|
|
302
|
-
constructor(emitter: Emitter<AudioPlayerModuleListeners, AudioPlayerModuleEvents>, logger: Logger, clockSource: ClockSource);
|
|
370
|
+
constructor(emitter: Emitter<AudioPlayerModuleListeners, AudioPlayerModuleEvents>, logger: Logger, clockSource: ClockSource, muted: boolean);
|
|
303
371
|
unload: () => Promise<void>;
|
|
304
372
|
suspend: () => void;
|
|
305
373
|
unsuspend: () => void;
|
|
306
|
-
static create: (emitter: Emitter<AudioPlayerModuleListeners, AudioPlayerModuleEvents>, logger: Logger, clockSource: ClockSource) => AudioPlayerModule;
|
|
374
|
+
static create: (emitter: Emitter<AudioPlayerModuleListeners, AudioPlayerModuleEvents>, logger: Logger, clockSource: ClockSource, muted: boolean) => AudioPlayerModule;
|
|
307
375
|
private flush;
|
|
308
376
|
private onDecodedFrame;
|
|
309
377
|
play: () => Promise<void>;
|
|
@@ -323,6 +391,8 @@ export declare const AUTHENTICATION_EXPIRED_CODE = "authentication_expired";
|
|
|
323
391
|
export declare const CHANNEL_NOT_FOUND_CODE = "channel_not_found";
|
|
324
392
|
export declare const NO_INCOMING_DATA = "no_incoming_data_error";
|
|
325
393
|
export declare const INACTIVITY_CODE = "connection_inactivity";
|
|
394
|
+
export declare const MISSING_INIT_SEGMENT = "missing_init_segment";
|
|
395
|
+
export declare const NO_TRACK_CONTEXT = "no_track_context";
|
|
326
396
|
export declare class VindralError extends Error {
|
|
327
397
|
private props;
|
|
328
398
|
private extra;
|
|
@@ -333,20 +403,22 @@ export declare class VindralError extends Error {
|
|
|
333
403
|
toStringifiable: () => Record<string, unknown>;
|
|
334
404
|
}
|
|
335
405
|
export declare const mediaElementError: (isFatal: boolean, mediaError: MediaError) => VindralError;
|
|
406
|
+
export declare const missingInitSegmentError: (renditionId: number, channelId: string) => VindralError;
|
|
407
|
+
export declare const noTrackContextError: (type: "audio" | "video", renditionId: number, channelId: string) => VindralError;
|
|
336
408
|
export declare const audioContextTimeoutError: () => VindralError;
|
|
337
409
|
export declare const authenticationError: () => VindralError;
|
|
338
410
|
export declare const authenticationExpiredError: () => VindralError;
|
|
339
411
|
export declare const inactivityError: () => VindralError;
|
|
340
412
|
export declare const channelNotFoundError: () => VindralError;
|
|
341
413
|
export declare const noIncomingDataError: () => VindralError;
|
|
342
|
-
export declare const unableToConnectError: () => VindralError;
|
|
414
|
+
export declare const unableToConnectError: (source?: Error | undefined) => VindralError;
|
|
343
415
|
export declare const unableToConnectAfterRetriesError: () => VindralError;
|
|
344
|
-
export declare const isValidOptions: (options: unknown) => options is Options;
|
|
345
|
-
export declare const validateOptions: (options: Options) => Options;
|
|
346
416
|
declare type State = "connected" | "disconnected" | "connecting";
|
|
417
|
+
declare type ContextSwitchState = "completed" | "started";
|
|
347
418
|
interface ConnectionModuleListeners {
|
|
348
419
|
["send signal"]: Readonly<string>;
|
|
349
420
|
["disconnect"]: void;
|
|
421
|
+
["reconnect"]: string;
|
|
350
422
|
}
|
|
351
423
|
interface ConnectionModuleEvents {
|
|
352
424
|
["received signal"]: Readonly<Signal>;
|
|
@@ -354,6 +426,8 @@ interface ConnectionModuleEvents {
|
|
|
354
426
|
["connection state"]: Readonly<State>;
|
|
355
427
|
["rtt"]: number;
|
|
356
428
|
["error"]: Readonly<VindralError>;
|
|
429
|
+
["context switch complete"]: Readonly<void>;
|
|
430
|
+
["context switch started"]: Readonly<void>;
|
|
357
431
|
}
|
|
358
432
|
interface ConnectOptions {
|
|
359
433
|
connectHandler: () => Promise<string>;
|
|
@@ -367,6 +441,7 @@ interface ConnectionStatistics {
|
|
|
367
441
|
}
|
|
368
442
|
declare class ConnectionModule {
|
|
369
443
|
private static PING_INTERVAL;
|
|
444
|
+
private static MAX_MISSED_PINGS;
|
|
370
445
|
private static TLS_ROUNDTRIPS;
|
|
371
446
|
private timers;
|
|
372
447
|
private emitter;
|
|
@@ -379,6 +454,7 @@ declare class ConnectionModule {
|
|
|
379
454
|
private connectCount;
|
|
380
455
|
private _firstConnectionTime?;
|
|
381
456
|
private _lastConnectionTime?;
|
|
457
|
+
private missedPings;
|
|
382
458
|
private contextSwitchesInProgress;
|
|
383
459
|
private contextSwitchesCompleted;
|
|
384
460
|
private buffer;
|
|
@@ -403,6 +479,13 @@ declare class ConnectionModule {
|
|
|
403
479
|
reconnect: (reason: string) => void;
|
|
404
480
|
private sendPing;
|
|
405
481
|
}
|
|
482
|
+
interface Size {
|
|
483
|
+
width: number;
|
|
484
|
+
height: number;
|
|
485
|
+
}
|
|
486
|
+
interface PictureInPictureSizeSource {
|
|
487
|
+
getPictureInPictureSize(): Size | undefined;
|
|
488
|
+
}
|
|
406
489
|
export interface RenditionLevel {
|
|
407
490
|
audio?: AudioRendition;
|
|
408
491
|
video?: VideoRendition;
|
|
@@ -468,6 +551,7 @@ declare class RenditionsModule {
|
|
|
468
551
|
setRenditions: (channelId: ChannelId, renditions: Rendition[]) => void;
|
|
469
552
|
getLanguages: () => ReadonlyArray<string>;
|
|
470
553
|
getVideoRendition: (renditionId: number, channelId?: string) => Readonly<VideoRendition> | undefined;
|
|
554
|
+
getAudioRenditions: (channelId: ChannelId) => Readonly<AudioRendition[]> | undefined;
|
|
471
555
|
getAudioRendition: (renditionId: number, channelId?: string) => Readonly<AudioRendition> | undefined;
|
|
472
556
|
getRendition: (renditionId: number, channelId?: string) => Readonly<Rendition> | undefined;
|
|
473
557
|
getStatistics: () => RenditionsModuleStatistics;
|
|
@@ -477,192 +561,6 @@ declare class RenditionsModule {
|
|
|
477
561
|
private createRenditionLevels;
|
|
478
562
|
private getCurrentSubscription;
|
|
479
563
|
}
|
|
480
|
-
interface Size {
|
|
481
|
-
width: number;
|
|
482
|
-
height: number;
|
|
483
|
-
}
|
|
484
|
-
interface SubscriptionModuleListeners {
|
|
485
|
-
["subscription changed"]: Readonly<SubscriptionChange>;
|
|
486
|
-
}
|
|
487
|
-
declare class SubscriptionModule {
|
|
488
|
-
private logger;
|
|
489
|
-
private timers;
|
|
490
|
-
private emitter;
|
|
491
|
-
private targetSubscription;
|
|
492
|
-
private currentSubscription;
|
|
493
|
-
private _isSwitchingSubscription;
|
|
494
|
-
private pendingSubscriptionTimeoutId?;
|
|
495
|
-
private constructor();
|
|
496
|
-
unload: () => void;
|
|
497
|
-
static create: (logger: Logger, emitter: Emitter<SubscriptionModuleListeners>, subscription: Subscription) => SubscriptionModule;
|
|
498
|
-
isSwitchingSubscription: () => boolean;
|
|
499
|
-
getTargetSubscription: () => Subscription;
|
|
500
|
-
getCurrentSubscription: () => Subscription;
|
|
501
|
-
setSize: (size: Readonly<Size>) => void;
|
|
502
|
-
setVideoConstraint: (constraint: VideoConstraint) => void;
|
|
503
|
-
setAudioConstraint: (constraint: AudioConstraint) => void;
|
|
504
|
-
setVideoBitRate: (bitRate: number) => void;
|
|
505
|
-
setAudioBitRate: (bitRate: number) => void;
|
|
506
|
-
setChannelId: (channelId: string) => void;
|
|
507
|
-
setLanguage: (language: string | undefined) => void;
|
|
508
|
-
setVideoCodec: (videoCodec: VideoCodec | undefined) => void;
|
|
509
|
-
setAudioCodec: (audioCodec: AudioCodec | undefined) => void;
|
|
510
|
-
private onSubscriptionChanged;
|
|
511
|
-
private scheduleSubscriptionChange;
|
|
512
|
-
}
|
|
513
|
-
interface UserAgentInformation {
|
|
514
|
-
userAgent: string;
|
|
515
|
-
locationOrigin: string;
|
|
516
|
-
locationPath: string;
|
|
517
|
-
ancestorOrigins?: string[];
|
|
518
|
-
}
|
|
519
|
-
declare type StatisticsType<K> = K extends {
|
|
520
|
-
getStatistics: () => unknown;
|
|
521
|
-
} ? ReturnType<K["getStatistics"]> : never;
|
|
522
|
-
declare type StatisticsTypes = {
|
|
523
|
-
[Property in keyof Modules]: StatisticsType<Modules[Property]>;
|
|
524
|
-
};
|
|
525
|
-
export declare type ModuleStatistics = Flatten<StatisticsTypes>;
|
|
526
|
-
export declare type Statistics = ModuleStatistics & UserAgentInformation & {
|
|
527
|
-
version: string;
|
|
528
|
-
ip?: string;
|
|
529
|
-
url: string;
|
|
530
|
-
sessionId: string;
|
|
531
|
-
uptime: number;
|
|
532
|
-
videoBitRate?: number;
|
|
533
|
-
audioBitRate?: number;
|
|
534
|
-
bytesReceived: number;
|
|
535
|
-
channelId: string;
|
|
536
|
-
channelGroupId?: string;
|
|
537
|
-
timeToFirstFrame?: number;
|
|
538
|
-
};
|
|
539
|
-
export declare class Vindral extends Emitter<PublicVindralEvents> {
|
|
540
|
-
private static INITIAL_MAX_BIT_RATE;
|
|
541
|
-
readonly pictureInPicture: {
|
|
542
|
-
enter: () => Promise<void>;
|
|
543
|
-
exit: () => Promise<void>;
|
|
544
|
-
isActive: () => boolean;
|
|
545
|
-
isSupported: () => boolean;
|
|
546
|
-
};
|
|
547
|
-
readonly cast: {
|
|
548
|
-
init: () => Promise<void>;
|
|
549
|
-
start: () => void;
|
|
550
|
-
stop: () => void;
|
|
551
|
-
};
|
|
552
|
-
private browser;
|
|
553
|
-
private options;
|
|
554
|
-
private element;
|
|
555
|
-
private playbackSource;
|
|
556
|
-
private emitter;
|
|
557
|
-
private logger;
|
|
558
|
-
private modules;
|
|
559
|
-
private clientIp?;
|
|
560
|
-
private sessionId;
|
|
561
|
-
private _channels;
|
|
562
|
-
private createdAt;
|
|
563
|
-
private hasCalledConnect;
|
|
564
|
-
private apiClient;
|
|
565
|
-
private durationSessions;
|
|
566
|
-
constructor(options: Options);
|
|
567
|
-
attach: (container: HTMLElement) => void;
|
|
568
|
-
set volume(volume: number);
|
|
569
|
-
get volume(): number;
|
|
570
|
-
get videoBitRate(): number;
|
|
571
|
-
get audioBitRate(): number;
|
|
572
|
-
get connectionState(): Readonly<State>;
|
|
573
|
-
get playbackState(): Readonly<PlaybackState>;
|
|
574
|
-
get bufferFullness(): number;
|
|
575
|
-
get abrEnabled(): boolean;
|
|
576
|
-
set abrEnabled(enabled: boolean);
|
|
577
|
-
get serverEdgeTime(): number | undefined;
|
|
578
|
-
get serverWallclockTime(): number | undefined;
|
|
579
|
-
get currentTime(): number;
|
|
580
|
-
get targetBufferTime(): number;
|
|
581
|
-
set targetBufferTime(bufferTimeMs: number);
|
|
582
|
-
get playbackLatency(): number | undefined;
|
|
583
|
-
get playbackWallclockTime(): number | undefined;
|
|
584
|
-
get channels(): ReadonlyArray<Channel>;
|
|
585
|
-
get languages(): ReadonlyArray<string>;
|
|
586
|
-
get language(): string | undefined;
|
|
587
|
-
set language(language: string | undefined);
|
|
588
|
-
get channelId(): string;
|
|
589
|
-
set channelId(channelId: string);
|
|
590
|
-
get maxSize(): Size;
|
|
591
|
-
set maxSize(size: Size);
|
|
592
|
-
get maxBitRate(): number;
|
|
593
|
-
set maxBitRate(bitRate: number);
|
|
594
|
-
get maxVideoBitrate(): number;
|
|
595
|
-
set maxVideoBitrate(bitRate: number);
|
|
596
|
-
get maxAudioBitrate(): number;
|
|
597
|
-
set maxAudioBitrate(bitRate: number);
|
|
598
|
-
get renditionLevels(): ReadonlyArray<RenditionLevel>;
|
|
599
|
-
get currentRenditionLevel(): Readonly<RenditionLevel> | undefined;
|
|
600
|
-
get targetRenditionLevel(): Readonly<RenditionLevel> | undefined;
|
|
601
|
-
get isSwitchingRenditionLevel(): boolean;
|
|
602
|
-
get videoBufferedRanges(): ReadonlyArray<TimeRange>;
|
|
603
|
-
get audioBufferedRanges(): ReadonlyArray<TimeRange>;
|
|
604
|
-
get lastBufferEvent(): Readonly<BufferStateEvent>;
|
|
605
|
-
get activeRatios(): Map<string, number>;
|
|
606
|
-
get bufferingRatios(): Map<string, number>;
|
|
607
|
-
get timeSpentBuffering(): number;
|
|
608
|
-
get timeActive(): number;
|
|
609
|
-
updateAuthenticationToken: (token: string) => void;
|
|
610
|
-
connect: () => void;
|
|
611
|
-
private connectionInfo;
|
|
612
|
-
private connectHandler;
|
|
613
|
-
private filterRenditions;
|
|
614
|
-
private patchSubscription;
|
|
615
|
-
private isSupportedVideoCodecProfile;
|
|
616
|
-
private supportedAudioCodecs;
|
|
617
|
-
private initializeDecodingModule;
|
|
618
|
-
unload: () => Promise<void>;
|
|
619
|
-
userInput: () => void;
|
|
620
|
-
private play;
|
|
621
|
-
get uptime(): number;
|
|
622
|
-
getStatistics: () => Statistics;
|
|
623
|
-
private onBufferEvent;
|
|
624
|
-
private alignSizeAndBitRate;
|
|
625
|
-
private get currentSubscription();
|
|
626
|
-
private get targetSubscription();
|
|
627
|
-
private timeToFirstFrame;
|
|
628
|
-
private willUseMediaSource;
|
|
629
|
-
}
|
|
630
|
-
interface CastModuleListeners {
|
|
631
|
-
["cast"]: void;
|
|
632
|
-
}
|
|
633
|
-
interface CastModuleEvents {
|
|
634
|
-
["cast started"]: void;
|
|
635
|
-
["cast resumed"]: void;
|
|
636
|
-
["cast stopped"]: void;
|
|
637
|
-
["cast failed"]: void;
|
|
638
|
-
}
|
|
639
|
-
interface CastConfig {
|
|
640
|
-
options: Options;
|
|
641
|
-
background?: string;
|
|
642
|
-
receiverApplicationId?: string;
|
|
643
|
-
}
|
|
644
|
-
declare class CastModule {
|
|
645
|
-
private emitter;
|
|
646
|
-
private logger;
|
|
647
|
-
private state;
|
|
648
|
-
get volume(): number;
|
|
649
|
-
set volume(volume: number);
|
|
650
|
-
constructor(emitter: Emitter<CastModuleListeners, CastModuleEvents>, logger: Logger);
|
|
651
|
-
static create: (emitter: Emitter<CastModuleListeners, CastModuleEvents>, logger: Logger) => CastModule;
|
|
652
|
-
unload: () => void;
|
|
653
|
-
start: (config: CastConfig) => Promise<void>;
|
|
654
|
-
stop: () => void;
|
|
655
|
-
private onGCastApiAvailable;
|
|
656
|
-
private onSessionStateChanged;
|
|
657
|
-
private getInstance;
|
|
658
|
-
}
|
|
659
|
-
interface Size {
|
|
660
|
-
width: number;
|
|
661
|
-
height: number;
|
|
662
|
-
}
|
|
663
|
-
interface PictureInPictureSizeSource {
|
|
664
|
-
getPictureInPictureSize(): Size | undefined;
|
|
665
|
-
}
|
|
666
564
|
declare type DeepPartial<T> = {
|
|
667
565
|
[P in keyof T]?: DeepPartial<T[P]>;
|
|
668
566
|
};
|
|
@@ -786,6 +684,10 @@ declare class DecoderModule {
|
|
|
786
684
|
}
|
|
787
685
|
type ConnectionType = "bluetooth" | "cellular" | "ethernet" | "mixed" | "none" | "other" | "unknown" | "wifi" | "wimax";
|
|
788
686
|
type EffectiveConnectionType = "2g" | "3g" | "4g" | "slow-2g";
|
|
687
|
+
interface DocumentState {
|
|
688
|
+
readonly isVisible: boolean;
|
|
689
|
+
readonly isOnline: boolean;
|
|
690
|
+
}
|
|
789
691
|
interface DocumentStateEvents {
|
|
790
692
|
["page active"]: boolean;
|
|
791
693
|
["pagehide"]: PageTransitionEvent;
|
|
@@ -803,7 +705,7 @@ interface DocumentStateModulesStatistics {
|
|
|
803
705
|
navigatorSaveData?: boolean;
|
|
804
706
|
navigatorDownlink?: number;
|
|
805
707
|
}
|
|
806
|
-
declare class DocumentStateModule {
|
|
708
|
+
declare class DocumentStateModule implements DocumentState {
|
|
807
709
|
private emitter;
|
|
808
710
|
private isVisibleCount;
|
|
809
711
|
private isHiddenCount;
|
|
@@ -816,6 +718,8 @@ declare class DocumentStateModule {
|
|
|
816
718
|
load: () => void;
|
|
817
719
|
unsuspend: () => void;
|
|
818
720
|
getStatistics: () => DocumentStateModulesStatistics;
|
|
721
|
+
get isOnline(): boolean;
|
|
722
|
+
get isVisible(): boolean;
|
|
819
723
|
private onOnline;
|
|
820
724
|
private onOffline;
|
|
821
725
|
private onPageHide;
|
|
@@ -828,6 +732,7 @@ interface IncomingDataModuleListeners {
|
|
|
828
732
|
}
|
|
829
733
|
interface IncomingDataModuleEvents {
|
|
830
734
|
["no data timeout"]: number;
|
|
735
|
+
["reconnect"]: string;
|
|
831
736
|
["error"]: Readonly<VindralError>;
|
|
832
737
|
}
|
|
833
738
|
interface IncomingDataModuleStatistics {
|
|
@@ -996,6 +901,39 @@ declare class QualityOfServiceModule {
|
|
|
996
901
|
private setActive;
|
|
997
902
|
private unsetActive;
|
|
998
903
|
}
|
|
904
|
+
interface Size {
|
|
905
|
+
width: number;
|
|
906
|
+
height: number;
|
|
907
|
+
}
|
|
908
|
+
interface SubscriptionModuleListeners {
|
|
909
|
+
["subscription changed"]: Readonly<SubscriptionChange>;
|
|
910
|
+
}
|
|
911
|
+
declare class SubscriptionModule {
|
|
912
|
+
private logger;
|
|
913
|
+
private timers;
|
|
914
|
+
private emitter;
|
|
915
|
+
private targetSubscription;
|
|
916
|
+
private currentSubscription;
|
|
917
|
+
private _isSwitchingSubscription;
|
|
918
|
+
private pendingSubscriptionTimeoutId?;
|
|
919
|
+
private constructor();
|
|
920
|
+
unload: () => void;
|
|
921
|
+
static create: (logger: Logger, emitter: Emitter<SubscriptionModuleListeners>, subscription: Subscription) => SubscriptionModule;
|
|
922
|
+
isSwitchingSubscription: () => boolean;
|
|
923
|
+
getTargetSubscription: () => Subscription;
|
|
924
|
+
getCurrentSubscription: () => Subscription;
|
|
925
|
+
setSize: (size: Readonly<Size>) => void;
|
|
926
|
+
setVideoConstraint: (constraint: VideoConstraint) => void;
|
|
927
|
+
setAudioConstraint: (constraint: AudioConstraint) => void;
|
|
928
|
+
setVideoBitRate: (bitRate: number) => void;
|
|
929
|
+
setAudioBitRate: (bitRate: number) => void;
|
|
930
|
+
setChannelId: (channelId: string) => void;
|
|
931
|
+
setLanguage: (language: string | undefined) => void;
|
|
932
|
+
setVideoCodec: (videoCodec: VideoCodec | undefined) => void;
|
|
933
|
+
setAudioCodec: (audioCodec: AudioCodec | undefined) => void;
|
|
934
|
+
private onSubscriptionChanged;
|
|
935
|
+
private scheduleSubscriptionChange;
|
|
936
|
+
}
|
|
999
937
|
interface SyncSample {
|
|
1000
938
|
type: Type;
|
|
1001
939
|
isSync: boolean;
|
|
@@ -1041,7 +979,7 @@ declare class SyncModule {
|
|
|
1041
979
|
readonly catchupRate: 1.05;
|
|
1042
980
|
readonly slowdownRate: 0.95;
|
|
1043
981
|
};
|
|
1044
|
-
readonly maxTimeSyncDifferenceTolerance =
|
|
982
|
+
readonly maxTimeSyncDifferenceTolerance = 20;
|
|
1045
983
|
private timers;
|
|
1046
984
|
private rtt;
|
|
1047
985
|
private channelSyncInfo;
|
|
@@ -1065,7 +1003,9 @@ declare class SyncModule {
|
|
|
1065
1003
|
getCurrentChannelId: () => string | undefined;
|
|
1066
1004
|
updateChannelSyncInfo(channelId: string, syncInfo: SyncInfo): void;
|
|
1067
1005
|
getLiveEdgeTime: (channelId: string) => number | undefined;
|
|
1006
|
+
getLiveEdgeTimeLatencyAdjusted: (channelId: string) => number | undefined;
|
|
1068
1007
|
getWallclockTime: (channelId: string) => number | undefined;
|
|
1008
|
+
getWallclockTimeLatencyAdjusted: (channelId: string) => number | undefined;
|
|
1069
1009
|
get serverCurrentTime(): number;
|
|
1070
1010
|
processSample: <T extends SyncSample>(sample: T) => T;
|
|
1071
1011
|
getStatistics: () => SyncModuleStatistics;
|
|
@@ -1081,6 +1021,147 @@ declare class SyncModule {
|
|
|
1081
1021
|
number
|
|
1082
1022
|
];
|
|
1083
1023
|
}
|
|
1024
|
+
declare const defaultOptions: {
|
|
1025
|
+
sizeBasedResolutionCapEnabled: boolean;
|
|
1026
|
+
pictureInPictureEnabled: boolean;
|
|
1027
|
+
abrEnabled: boolean;
|
|
1028
|
+
mseEnabled: boolean;
|
|
1029
|
+
mseOpusEnabled: boolean;
|
|
1030
|
+
muted: boolean;
|
|
1031
|
+
minBufferTime: number;
|
|
1032
|
+
maxBufferTime: number;
|
|
1033
|
+
logLevel: Level;
|
|
1034
|
+
maxSize: Size;
|
|
1035
|
+
maxVideoBitRate: number;
|
|
1036
|
+
maxAudioBitRate: number;
|
|
1037
|
+
tags: string[];
|
|
1038
|
+
media: Media;
|
|
1039
|
+
reconnectHandler: (state: ReconnectState) => Promise<boolean> | boolean;
|
|
1040
|
+
advanced: {
|
|
1041
|
+
wasmDecodingConstraint: Partial<VideoConstraint>;
|
|
1042
|
+
};
|
|
1043
|
+
};
|
|
1044
|
+
interface UserAgentInformation {
|
|
1045
|
+
userAgent: string;
|
|
1046
|
+
locationOrigin: string;
|
|
1047
|
+
locationPath: string;
|
|
1048
|
+
ancestorOrigins?: string[];
|
|
1049
|
+
}
|
|
1050
|
+
declare type StatisticsType<K> = K extends {
|
|
1051
|
+
getStatistics: () => unknown;
|
|
1052
|
+
} ? ReturnType<K["getStatistics"]> : never;
|
|
1053
|
+
declare type StatisticsTypes = {
|
|
1054
|
+
[Property in keyof Modules]: StatisticsType<Modules[Property]>;
|
|
1055
|
+
};
|
|
1056
|
+
export declare type ModuleStatistics = Flatten<StatisticsTypes>;
|
|
1057
|
+
export declare type Statistics = ModuleStatistics & UserAgentInformation & {
|
|
1058
|
+
version: string;
|
|
1059
|
+
ip?: string;
|
|
1060
|
+
url: string;
|
|
1061
|
+
sessionId: string;
|
|
1062
|
+
uptime: number;
|
|
1063
|
+
videoBitRate?: number;
|
|
1064
|
+
audioBitRate?: number;
|
|
1065
|
+
bytesReceived: number;
|
|
1066
|
+
channelId: string;
|
|
1067
|
+
channelGroupId?: string;
|
|
1068
|
+
timeToFirstFrame?: number;
|
|
1069
|
+
};
|
|
1070
|
+
export declare class Vindral extends Emitter<PublicVindralEvents> {
|
|
1071
|
+
private static INITIAL_MAX_BIT_RATE;
|
|
1072
|
+
private static PING_TIMEOUT;
|
|
1073
|
+
readonly pictureInPicture: {
|
|
1074
|
+
enter: () => Promise<void>;
|
|
1075
|
+
exit: () => Promise<void>;
|
|
1076
|
+
isActive: () => boolean;
|
|
1077
|
+
isSupported: () => boolean;
|
|
1078
|
+
};
|
|
1079
|
+
private browser;
|
|
1080
|
+
private options;
|
|
1081
|
+
private element;
|
|
1082
|
+
private playbackSource;
|
|
1083
|
+
private emitter;
|
|
1084
|
+
private logger;
|
|
1085
|
+
private modules;
|
|
1086
|
+
private clientIp?;
|
|
1087
|
+
private sessionId;
|
|
1088
|
+
private _channels;
|
|
1089
|
+
private createdAt;
|
|
1090
|
+
private hasCalledConnect;
|
|
1091
|
+
private apiClient;
|
|
1092
|
+
private latestEmittedLanguages;
|
|
1093
|
+
private durationSessions;
|
|
1094
|
+
constructor(options: Options);
|
|
1095
|
+
attach: (container: HTMLElement) => void;
|
|
1096
|
+
set volume(volume: number);
|
|
1097
|
+
get volume(): number;
|
|
1098
|
+
set muted(muted: boolean);
|
|
1099
|
+
get muted(): boolean;
|
|
1100
|
+
get media(): Media;
|
|
1101
|
+
get videoBitRate(): number;
|
|
1102
|
+
get audioBitRate(): number;
|
|
1103
|
+
get connectionState(): Readonly<State>;
|
|
1104
|
+
get playbackState(): Readonly<PlaybackState>;
|
|
1105
|
+
get bufferFullness(): number;
|
|
1106
|
+
get sizeBasedResolutionCapEnabled(): boolean;
|
|
1107
|
+
set sizeBasedResolutionCapEnabled(enabled: boolean);
|
|
1108
|
+
get abrEnabled(): boolean;
|
|
1109
|
+
set abrEnabled(enabled: boolean);
|
|
1110
|
+
get serverEdgeTime(): number | undefined;
|
|
1111
|
+
get serverWallclockTime(): number | undefined;
|
|
1112
|
+
get currentTime(): number;
|
|
1113
|
+
get targetBufferTime(): number;
|
|
1114
|
+
set targetBufferTime(bufferTimeMs: number);
|
|
1115
|
+
get playbackLatency(): number | undefined;
|
|
1116
|
+
get playbackWallclockTime(): number | undefined;
|
|
1117
|
+
get channels(): ReadonlyArray<Channel>;
|
|
1118
|
+
get languages(): ReadonlyArray<string>;
|
|
1119
|
+
get language(): string | undefined;
|
|
1120
|
+
set language(language: string | undefined);
|
|
1121
|
+
get channelId(): string;
|
|
1122
|
+
set channelId(channelId: string);
|
|
1123
|
+
get maxSize(): Size;
|
|
1124
|
+
set maxSize(size: Size);
|
|
1125
|
+
get maxVideoBitRate(): number;
|
|
1126
|
+
set maxVideoBitRate(bitRate: number);
|
|
1127
|
+
get maxAudioBitRate(): number;
|
|
1128
|
+
set maxAudioBitRate(bitRate: number);
|
|
1129
|
+
get renditionLevels(): ReadonlyArray<RenditionLevel>;
|
|
1130
|
+
get currentRenditionLevel(): Readonly<RenditionLevel> | undefined;
|
|
1131
|
+
get targetRenditionLevel(): Readonly<RenditionLevel> | undefined;
|
|
1132
|
+
get isSwitchingRenditionLevel(): boolean;
|
|
1133
|
+
get videoBufferedRanges(): ReadonlyArray<TimeRange>;
|
|
1134
|
+
get audioBufferedRanges(): ReadonlyArray<TimeRange>;
|
|
1135
|
+
get lastBufferEvent(): Readonly<BufferStateEvent>;
|
|
1136
|
+
get activeRatios(): Map<string, number>;
|
|
1137
|
+
get bufferingRatios(): Map<string, number>;
|
|
1138
|
+
get timeSpentBuffering(): number;
|
|
1139
|
+
get timeActive(): number;
|
|
1140
|
+
getOptions: () => Options & typeof defaultOptions;
|
|
1141
|
+
updateAuthenticationToken: (token: string) => void;
|
|
1142
|
+
connect: () => void;
|
|
1143
|
+
getCastOptions: () => Options;
|
|
1144
|
+
private connectionInfo;
|
|
1145
|
+
private estimateRTT;
|
|
1146
|
+
private connectHandler;
|
|
1147
|
+
private emitLanguagesIfChanged;
|
|
1148
|
+
private filterRenditions;
|
|
1149
|
+
private patchSubscription;
|
|
1150
|
+
private isSupportedVideoCodecProfile;
|
|
1151
|
+
private supportedAudioCodecs;
|
|
1152
|
+
private initializeDecodingModule;
|
|
1153
|
+
unload: () => Promise<void>;
|
|
1154
|
+
userInput: () => void;
|
|
1155
|
+
private play;
|
|
1156
|
+
get uptime(): number;
|
|
1157
|
+
getStatistics: () => Statistics;
|
|
1158
|
+
private onBufferEvent;
|
|
1159
|
+
private alignSizeAndBitRate;
|
|
1160
|
+
private get currentSubscription();
|
|
1161
|
+
private get targetSubscription();
|
|
1162
|
+
private timeToFirstFrame;
|
|
1163
|
+
private willUseMediaSource;
|
|
1164
|
+
}
|
|
1084
1165
|
interface TelemetryModuleOptions {
|
|
1085
1166
|
url: string;
|
|
1086
1167
|
interval?: number;
|
|
@@ -1138,6 +1219,16 @@ declare class TimerModule {
|
|
|
1138
1219
|
setInterval: (callback: (...args: unknown[]) => void, interval: number, ...args: unknown[]) => number;
|
|
1139
1220
|
unload: () => void;
|
|
1140
1221
|
}
|
|
1222
|
+
declare class UnpauseModule {
|
|
1223
|
+
private logger;
|
|
1224
|
+
private element;
|
|
1225
|
+
private documentState;
|
|
1226
|
+
private timers;
|
|
1227
|
+
private constructor();
|
|
1228
|
+
static create: (logger: Logger, element: MediaElement, documentState: DocumentState) => UnpauseModule;
|
|
1229
|
+
unload: () => void;
|
|
1230
|
+
private unpause;
|
|
1231
|
+
}
|
|
1141
1232
|
interface VideoPlayerModuleListeners {
|
|
1142
1233
|
["decoded frame"]: Readonly<DecodedSample>;
|
|
1143
1234
|
}
|
|
@@ -1184,10 +1275,10 @@ export interface Modules {
|
|
|
1184
1275
|
qualityOfService: QualityOfServiceModule;
|
|
1185
1276
|
metadata: MetadataModule;
|
|
1186
1277
|
sync: SyncModule;
|
|
1187
|
-
cast: CastModule;
|
|
1188
1278
|
telemetry?: TelemetryModule;
|
|
1189
1279
|
documentState: DocumentStateModule;
|
|
1190
1280
|
incomingData: IncomingDataModule;
|
|
1281
|
+
unpause?: UnpauseModule;
|
|
1191
1282
|
}
|
|
1192
1283
|
export interface ReconnectState {
|
|
1193
1284
|
reconnectRetries: number;
|
|
@@ -1224,18 +1315,9 @@ export interface Options {
|
|
|
1224
1315
|
advanced?: AdvancedOptions;
|
|
1225
1316
|
media?: Media;
|
|
1226
1317
|
}
|
|
1227
|
-
export interface PlaybackSource {
|
|
1228
|
-
volume: number;
|
|
1229
|
-
muted: boolean;
|
|
1230
|
-
currentTime: number;
|
|
1231
|
-
playbackRate?: number;
|
|
1232
|
-
readonly seekTime: number;
|
|
1233
|
-
readonly isSeeking: boolean;
|
|
1234
|
-
play(): Promise<void>;
|
|
1235
|
-
}
|
|
1236
1318
|
export interface PublicVindralEvents {
|
|
1237
1319
|
["error"]: Readonly<VindralError>;
|
|
1238
|
-
["needs user input"]:
|
|
1320
|
+
["needs user input"]: NeedsUserInputContext;
|
|
1239
1321
|
["metadata"]: Readonly<Metadata>;
|
|
1240
1322
|
["playback state"]: Readonly<PlaybackState>;
|
|
1241
1323
|
["connection state"]: Readonly<State>;
|
|
@@ -1243,6 +1325,7 @@ export interface PublicVindralEvents {
|
|
|
1243
1325
|
["rendition level"]: Readonly<RenditionLevel>;
|
|
1244
1326
|
["languages"]: ReadonlyArray<string>;
|
|
1245
1327
|
["channels"]: ReadonlyArray<Channel>;
|
|
1328
|
+
["context switch"]: Readonly<ContextSwitchState>;
|
|
1246
1329
|
["server wallclock time"]: Readonly<number>;
|
|
1247
1330
|
["buffer state event"]: Readonly<BufferStateEvent>;
|
|
1248
1331
|
["initialized media"]: void;
|
|
@@ -1400,6 +1483,60 @@ export declare class ApiClient {
|
|
|
1400
1483
|
private toChannels;
|
|
1401
1484
|
private toChannel;
|
|
1402
1485
|
}
|
|
1486
|
+
export declare type CastState = "casting" | "not casting";
|
|
1487
|
+
export interface CastSenderEvents {
|
|
1488
|
+
["connected"]: void;
|
|
1489
|
+
["resumed"]: void;
|
|
1490
|
+
["disconnected"]: void;
|
|
1491
|
+
["failed"]: void;
|
|
1492
|
+
["metadata"]: Metadata;
|
|
1493
|
+
["server wallclock time"]: number;
|
|
1494
|
+
}
|
|
1495
|
+
export interface CastConfig {
|
|
1496
|
+
options: Options;
|
|
1497
|
+
background?: string;
|
|
1498
|
+
receiverApplicationId?: string;
|
|
1499
|
+
}
|
|
1500
|
+
export declare type CustomCastMessageType = "stop" | "start" | "updateAuthToken" | "serverWallclockTime" | "metadata" | "setChannelId" | "setLanguage";
|
|
1501
|
+
export interface CastCustomMessage {
|
|
1502
|
+
type: CustomCastMessageType;
|
|
1503
|
+
channelId?: string;
|
|
1504
|
+
language?: string;
|
|
1505
|
+
config?: CastConfig;
|
|
1506
|
+
token?: string;
|
|
1507
|
+
serverWallclockTime?: number;
|
|
1508
|
+
metadata?: Metadata;
|
|
1509
|
+
}
|
|
1510
|
+
export declare class CastSender extends Emitter<CastSenderEvents> {
|
|
1511
|
+
private state;
|
|
1512
|
+
private config;
|
|
1513
|
+
private unloaded;
|
|
1514
|
+
constructor(config: CastConfig);
|
|
1515
|
+
get casting(): boolean;
|
|
1516
|
+
get volume(): number;
|
|
1517
|
+
set volume(volume: number);
|
|
1518
|
+
get language(): string | undefined;
|
|
1519
|
+
set language(language: string | undefined);
|
|
1520
|
+
get channelId(): string;
|
|
1521
|
+
set channelId(channelId: string);
|
|
1522
|
+
updateAuthenticationToken: (token: string) => void;
|
|
1523
|
+
unload: () => void;
|
|
1524
|
+
init: () => Promise<void>;
|
|
1525
|
+
start: () => Promise<void>;
|
|
1526
|
+
stop: () => void;
|
|
1527
|
+
private onGCastApiAvailable;
|
|
1528
|
+
private send;
|
|
1529
|
+
private onMessage;
|
|
1530
|
+
private onSessionStarted;
|
|
1531
|
+
private onSessionStateChanged;
|
|
1532
|
+
private getInstance;
|
|
1533
|
+
private getSession;
|
|
1534
|
+
private getReceiverName;
|
|
1535
|
+
private castLibrariesAdded;
|
|
1536
|
+
private verifyCastLibraries;
|
|
1537
|
+
}
|
|
1538
|
+
export declare const isValidOptions: (options: unknown) => options is Options;
|
|
1539
|
+
export declare const validateOptions: (options: Options) => Options;
|
|
1403
1540
|
interface FullscreenEvents {
|
|
1404
1541
|
["on fullscreen change"]: boolean;
|
|
1405
1542
|
}
|
|
@@ -1417,13 +1554,26 @@ declare class Fullscreen extends Emitter<FullscreenEvents> {
|
|
|
1417
1554
|
}
|
|
1418
1555
|
export interface PlayerOptions {
|
|
1419
1556
|
controlsEnabled?: boolean;
|
|
1557
|
+
castEnabled?: boolean;
|
|
1420
1558
|
fullscreenButtonEnabled?: boolean;
|
|
1421
1559
|
pipButtonEnabled?: boolean;
|
|
1422
1560
|
channelSelectionEnabled?: boolean;
|
|
1561
|
+
channelSelectionOptions?: {
|
|
1562
|
+
barButton?: {
|
|
1563
|
+
enabled?: boolean;
|
|
1564
|
+
thumbnails?: boolean;
|
|
1565
|
+
};
|
|
1566
|
+
list?: {
|
|
1567
|
+
enabled?: boolean;
|
|
1568
|
+
};
|
|
1569
|
+
};
|
|
1423
1570
|
renditionLevelsEnabled?: boolean;
|
|
1424
1571
|
languagesButtonEnabled?: boolean;
|
|
1425
1572
|
oneToOneButtonEnabled?: boolean;
|
|
1426
1573
|
hideTimeout?: number;
|
|
1574
|
+
castBackground?: string;
|
|
1575
|
+
castReceiverApplicationId?: string;
|
|
1576
|
+
thumbnailUpdateInterval?: number;
|
|
1427
1577
|
}
|
|
1428
1578
|
export interface PlayerState {
|
|
1429
1579
|
isBuffering: boolean;
|
|
@@ -1432,16 +1582,21 @@ export interface PlayerState {
|
|
|
1432
1582
|
}
|
|
1433
1583
|
export declare class Player {
|
|
1434
1584
|
readonly core: Vindral;
|
|
1585
|
+
readonly castSender: CastSender;
|
|
1435
1586
|
private options;
|
|
1436
1587
|
private state;
|
|
1437
1588
|
private playerElement;
|
|
1438
1589
|
private bufferingOverlay;
|
|
1590
|
+
private playOverlay;
|
|
1591
|
+
private channelSelectionList?;
|
|
1439
1592
|
private bar;
|
|
1440
1593
|
private stateInterval?;
|
|
1441
1594
|
private showBufferingTimeout?;
|
|
1595
|
+
private thumbnailModule?;
|
|
1442
1596
|
constructor(optionsOrInstance: Options | Vindral, playerOptions?: PlayerOptions);
|
|
1443
1597
|
unload: () => void;
|
|
1444
1598
|
attach: (container: HTMLElement) => void;
|
|
1599
|
+
private setupCastSender;
|
|
1445
1600
|
private onMouseMove;
|
|
1446
1601
|
private onClick;
|
|
1447
1602
|
private togglePip;
|
|
@@ -1452,6 +1607,7 @@ export declare class Player {
|
|
|
1452
1607
|
private lockOrientation;
|
|
1453
1608
|
private unlockOrientation;
|
|
1454
1609
|
private checkState;
|
|
1610
|
+
private needsThumbnails;
|
|
1455
1611
|
private bumpInteractTime;
|
|
1456
1612
|
}
|
|
1457
1613
|
|