@npo/player 2.0.0-beta.0 → 2.0.0-beta.1

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/main.d.ts CHANGED
@@ -39,12 +39,6 @@ declare type AirPlayConnectionState = {
39
39
  error?: string;
40
40
  };
41
41
 
42
- declare type AirPlayConnectionState_2 = {
43
- available: boolean;
44
- connected: boolean;
45
- error?: string;
46
- };
47
-
48
42
  declare class AirPlayService implements IAirPlayService {
49
43
  private readonly player;
50
44
  private readonly mediaEl;
@@ -65,12 +59,6 @@ declare type CastConnectionState = {
65
59
  error?: string;
66
60
  };
67
61
 
68
- declare type CastConnectionState_2 = {
69
- available: boolean;
70
- connected: boolean;
71
- error?: string;
72
- };
73
-
74
62
  declare type CastingData = {
75
63
  source: string;
76
64
  streamObject?: IStreamObject;
@@ -172,6 +160,11 @@ export declare const DRM_WIDEVINE = "widevine";
172
160
 
173
161
  export declare type DRMType = typeof DRM_WIDEVINE | typeof DRM_PLAYREADY | typeof DRM_FAIRPLAY;
174
162
 
163
+ declare type EmitParams<T, K extends keyof T> = {
164
+ eventName: K;
165
+ value?: T[K];
166
+ };
167
+
175
168
  declare type ErrorListener = (error: IPlayerError) => void;
176
169
 
177
170
  declare class ErrorManager implements IErrorManager {
@@ -181,7 +174,10 @@ declare class ErrorManager implements IErrorManager {
181
174
  private readonly resetListeners;
182
175
  private readonly warningListeners;
183
176
  private npoPlayerRef;
177
+ private debounceCleanup?;
178
+ private isDestroyed;
184
179
  constructor(npoPlayer: NpoPlayer);
180
+ destroy(): void;
185
181
  private attachGlobalErrorHandlers;
186
182
  setNpoPlayerRef(npoPlayer: NpoPlayer): void;
187
183
  onError(listener: ErrorListener): void;
@@ -392,8 +388,6 @@ export declare interface IPlayerApi {
392
388
  getTextTracks(): TextTrackList;
393
389
  getVariantTracks?(): Array<unknown>;
394
390
  configure?(config: unknown): void;
395
- getAvailableVideoQualities(): Array<VideoQuality>;
396
- setVideoQuality(qualityValue: number, forced: boolean): void;
397
391
  isPlayingAd?(): boolean;
398
392
  getAdUiState?(): IAdUiState;
399
393
  onAdEvent?(eventName: string, handler: (evt: any) => void): void;
@@ -417,6 +411,8 @@ export declare interface IPlayerApi {
417
411
  airPlayService: IAirPlayService;
418
412
  thumbnailService?: IThumbnailTrackService;
419
413
  chapterSkipService?: IChapterSkipService;
414
+ streamTrackService?: IStreamTrackService;
415
+ mediaStateListeners?: () => void;
420
416
  }
421
417
 
422
418
  declare interface IPlayerContext {
@@ -498,38 +494,35 @@ declare interface IPlayerEventsMap {
498
494
  [PlayerEventNames.ChapterExited]: {
499
495
  action: ITimeBoundAction;
500
496
  };
497
+ [PlayerEventNames.StreamTrackChanged]: Event;
501
498
  }
502
499
 
503
- declare interface IPlayerState {
504
- adActive: boolean;
505
- airPlay: AirPlayConnectionState;
506
- cast: CastConnectionState;
507
- displayMode: DisplayModes;
508
- forceUIVisible: boolean;
509
- fullscreen: boolean;
510
- language: string;
511
- mediaState: MediaStates;
512
- muted: boolean;
513
- playbackQuality: number;
514
- playbackRate: number;
515
- subtitleLanguage: string;
516
- volume: number;
500
+ declare interface IPlayerLoad {
501
+ normalizedAvType?: MediaType;
502
+ avType?: string;
503
+ hasDvrWindow?: boolean;
504
+ isLiveStream?: boolean;
505
+ streamProfile?: string;
506
+ sourceProfile?: string;
517
507
  }
518
508
 
519
- declare interface IPlayerState_2 {
509
+ declare interface IPlayerState {
520
510
  adActive: boolean;
521
511
  adPaused: boolean;
522
- airPlay: AirPlayConnectionState_2;
523
- cast: CastConnectionState_2;
512
+ airPlay: AirPlayConnectionState;
513
+ audioLanguage: string;
514
+ audioPlaybackQuality: number;
515
+ cast: CastConnectionState;
524
516
  displayMode: DisplayModes;
525
517
  forceUIVisible: boolean;
526
518
  fullscreen: boolean;
527
519
  language: string;
528
520
  mediaState: MediaStates;
529
521
  muted: boolean;
530
- playbackQuality: number;
531
522
  playbackRate: number;
532
523
  subtitleLanguage: string;
524
+ useAudioDescription: boolean;
525
+ videoPlaybackQuality: number;
533
526
  volume: number;
534
527
  }
535
528
 
@@ -603,6 +596,14 @@ declare interface IStreamObjectStream {
603
596
  hasDvrWindow?: boolean;
604
597
  }
605
598
 
599
+ declare interface IStreamTrackService {
600
+ currentTrack: StreamTrack | undefined;
601
+ getAvailableVideoTracks(): StreamTrack[];
602
+ getAudioTracksByVideoQuality(qualityValue: number): StreamTrack[];
603
+ getAudioOnlyTracks(): StreamTrack[];
604
+ setTrack(track: StreamTrack, forced: boolean): void;
605
+ }
606
+
606
607
  declare interface ISubtitle {
607
608
  iso: string;
608
609
  location: string;
@@ -650,14 +651,16 @@ declare type KeyCombo_2 = {
650
651
  meta?: boolean;
651
652
  };
652
653
 
653
- declare type Listener = (...args: any[]) => void;
654
+ declare type Listener<T> = (event: CustomEvent<T>) => void;
655
+
656
+ declare type Listener_2 = (...args: any[]) => void;
654
657
 
655
658
  declare class LogEmitter {
656
- private listeners;
659
+ private readonly listeners;
657
660
  emit(event: LogEventType, ...args: any[]): boolean;
658
- on(event: LogEventType, listener: Listener): this;
659
- once(event: LogEventType, listener: Listener): this;
660
- off(event: LogEventType, listener: Listener): this;
661
+ on(event: LogEventType, listener: Listener_2): this;
662
+ once(event: LogEventType, listener: Listener_2): this;
663
+ off(event: LogEventType, listener: Listener_2): this;
661
664
  }
662
665
 
663
666
  export declare enum LogEventType {
@@ -688,7 +691,8 @@ export declare enum MediaType {
688
691
  export declare enum Modes {
689
692
  VOD = "vod",
690
693
  LIVE = "live",
691
- LIVE_NO_DVR = "live-no-dvr"
694
+ LIVE_NO_DVR = "live-no-dvr",
695
+ NONE = "none"
692
696
  }
693
697
 
694
698
  export declare class NpoAudioPlayer extends NpoPlayerCore {
@@ -717,14 +721,14 @@ declare type NpoPlayerConfig = {
717
721
 
718
722
  declare abstract class NpoPlayerCore {
719
723
  player: PlayerApi;
724
+ uiFactory?: INpoAudioPlayerUIFactory | INpoVideoPlayerUIFactory;
725
+ errorManager: ErrorManager;
720
726
  readonly version: string;
721
727
  readonly container: HTMLElement;
722
728
  readonly npoTagProps?: NpoTagProperties;
723
729
  readonly logEmitter?: LogEmitter;
724
730
  readonly playerConfig: NpoPlayerConfig;
725
- readonly uiFactory?: INpoAudioPlayerUIFactory | INpoVideoPlayerUIFactory;
726
731
  readonly settingsStore: SettingsStore;
727
- readonly errorManager: ErrorManager;
728
732
  protected inputHandler: InputHandler;
729
733
  protected playerContext?: IPlayerContext;
730
734
  streamOptions: StreamOptions;
@@ -741,6 +745,8 @@ declare abstract class NpoPlayerCore {
741
745
  load(newSource: string, streamOptions?: StreamOptions): Promise<void>;
742
746
  play(): Promise<void>;
743
747
  pause(): void;
748
+ unload(): Promise<void>;
749
+ destroy(): Promise<void>;
744
750
  seek(timestamp: number): void;
745
751
  getCurrentTime(): number;
746
752
  mute(): void;
@@ -759,7 +765,7 @@ declare abstract class NpoPlayerCore {
759
765
  end: number;
760
766
  };
761
767
  seekToLiveEdge(): void;
762
- getAvailableVideoQualities(): Array<VideoQuality>;
768
+ getAvailableVideoQualities(): Array<StreamTrack>;
763
769
  setVideoQuality(qualityValue: number): void;
764
770
  on(eventName: string, handler: EventHandler): void;
765
771
  off(eventName: string, handler: EventHandler): void;
@@ -866,27 +872,30 @@ declare class PlayerApi implements IPlayerApi {
866
872
  castService: CastService;
867
873
  advertService: AdvertService;
868
874
  readonly playerId: string;
869
- readonly playerEvents: any;
870
- state: IPlayerState_2;
875
+ readonly playerEvents: PlayerEventEmitter<IPlayerEventsMap>;
876
+ state: IPlayerState;
871
877
  uiEvents: any;
878
+ readonly mediaStateListeners: () => void;
872
879
  thumbnailService: ThumbnailTrackService;
873
880
  timeBoundActionsService: TimeBoundActionsService;
874
881
  chapterSkipService: ChapterSkipService;
875
882
  subtitlesService: SubtitlesService;
883
+ readonly streamTrackService: StreamTrackService;
876
884
  readonly playerConfig: NpoPlayerConfig;
877
885
  readonly container: HTMLElement;
878
- private _player;
879
- private streamAvType;
880
- get player(): default_2.Player;
881
886
  readonly settingsStore: SettingsStore;
882
887
  private displayModeHandler;
883
- private readonly canNotSeekDuringAdLabel;
884
888
  private isInitialized;
889
+ private _player;
890
+ private currentStreamMode;
891
+ private streamLoadingData?;
892
+ private readonly mediaEventListeners;
893
+ get player(): default_2.Player;
885
894
  constructor(container: HTMLElement, playerConfig: NpoPlayerConfig);
886
895
  destroy(): void;
887
896
  initialize(): Promise<void>;
888
897
  getPlayerContainer(): HTMLElement;
889
- load(source: string, streamAvType?: MediaType): Promise<void>;
898
+ load(source: string, streamLoadingData?: IPlayerLoad): Promise<void>;
890
899
  unload(): Promise<void>;
891
900
  play(): Promise<void>;
892
901
  pause(): void;
@@ -924,9 +933,6 @@ declare class PlayerApi implements IPlayerApi {
924
933
  getSelectedTextTrack(): TextTrack | undefined;
925
934
  removeAllTextTracks(): void;
926
935
  getTextTracks(): TextTrackList;
927
- getVariantTracks(): Array<default_2.extern.VariantTrack>;
928
- getAvailableVideoQualities(): Array<VideoQuality>;
929
- setVideoQuality(qualityValue: number, forced?: boolean): void;
930
936
  isFullscreenPossible(): boolean;
931
937
  enterFullscreen(): void;
932
938
  exitFullscreen(): void;
@@ -935,10 +941,12 @@ declare class PlayerApi implements IPlayerApi {
935
941
  enterPip(): Promise<void>;
936
942
  exitPip(): Promise<void>;
937
943
  configure(config: default_2.extern.PlayerConfiguration): void;
938
- private _applyPersistedSettings;
939
- private _setupPlaybackRateHandler;
940
- private _initAirPlayService;
941
- private _forwardAllMediaEvents;
944
+ private applyPersistedSettings;
945
+ private setupPlaybackRateHandler;
946
+ private initAirPlayService;
947
+ private forwardAllMediaEvents;
948
+ private createMediaEventForwardingHandler;
949
+ private readonly onLoadedMetadata;
942
950
  private toPlayerEventName;
943
951
  on(eventName: string, handler: EventHandler): void;
944
952
  off(eventName: string, handler: EventHandler): void;
@@ -951,6 +959,31 @@ declare class PlayerApi implements IPlayerApi {
951
959
  setAdClickElement(adClickElement: HTMLElement): void;
952
960
  getAdUiState(): IAdUiState_2 | undefined;
953
961
  getMode(): Modes;
962
+ private determineStreamMode;
963
+ }
964
+
965
+ declare class PlayerEventEmitter<T extends Record<string, any>> implements EventTarget {
966
+ readonly playerId?: string;
967
+ private readonly eventTarget;
968
+ private _allListeners;
969
+ constructor(playerId?: string);
970
+ emit<K extends keyof T>(params: EmitParams<T, K>): void;
971
+ on<K extends keyof T>(params: {
972
+ eventName: K;
973
+ listener: Listener<T[K]>;
974
+ }): void;
975
+ off<K extends keyof T>(params: {
976
+ eventName: K;
977
+ listener: Listener<T[K]>;
978
+ }): void;
979
+ once<K extends keyof T>(params: {
980
+ eventName: K;
981
+ listener: Listener<T[K]>;
982
+ }): void;
983
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject | null): void;
984
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject | null): void;
985
+ dispatchEvent(event: Event): boolean;
986
+ removeAllListeners(): void;
954
987
  }
955
988
 
956
989
  export declare enum PlayerEventNames {
@@ -989,7 +1022,8 @@ export declare enum PlayerEventNames {
989
1022
  TimeBoundActionTriggered = "time-bound-action-triggered",
990
1023
  TimeBoundActionExited = "time-bound-action-exited",
991
1024
  ChapterEntered = "chapter-entered",
992
- ChapterExited = "chapter-exited"
1025
+ ChapterExited = "chapter-exited",
1026
+ StreamTrackChanged = "stream-track-changed"
993
1027
  }
994
1028
 
995
1029
  export declare type PlayNext = {
@@ -1046,6 +1080,57 @@ export declare type StreamOptions = {
1046
1080
  backButtonCallback?: () => void;
1047
1081
  };
1048
1082
 
1083
+ declare type StreamTrack = {
1084
+ id: number;
1085
+ streamTrackId: number;
1086
+ label: string;
1087
+ value: number;
1088
+ width?: number;
1089
+ height?: number;
1090
+ bandwidth?: number;
1091
+ originalTrack?: any;
1092
+ language?: string;
1093
+ isAudioOnly: boolean;
1094
+ isAudioDescription: boolean;
1095
+ playlistUrl?: string;
1096
+ };
1097
+
1098
+ declare class StreamTrackService implements IStreamTrackService {
1099
+ private readonly player;
1100
+ private readonly hlsManifestParser;
1101
+ private manifestTracks;
1102
+ private currentManifestUri;
1103
+ private _currentTrack;
1104
+ get currentTrack(): StreamTrack | undefined;
1105
+ readonly idAutoTrack = -1;
1106
+ constructor(player: PlayerApi);
1107
+ isManifestTrackAvailable(): boolean;
1108
+ reset(): void;
1109
+ private getShakaPlayer;
1110
+ getVariantTracks(): Array<default_2.extern.VariantTrack>;
1111
+ getAudioTracks(): Array<default_2.extern.AudioTrack>;
1112
+ getVideoTracks(): Array<default_2.extern.VideoTrack>;
1113
+ isAudioOnly(): boolean;
1114
+ getAvailableVideoTracks(): Array<StreamTrack>;
1115
+ getAudioTracksByVideoQuality(qualityValue: number): StreamTrack[];
1116
+ getAudioOnlyTracks(): StreamTrack[];
1117
+ init(): void;
1118
+ setTrack(track: StreamTrack, forced: boolean): void;
1119
+ setVideoTrackByQuality(qualityValue: number): void;
1120
+ getAlternateStreamURLForSafari(): string | undefined;
1121
+ parseManifestForTracks(manifestUri: string): Promise<void>;
1122
+ private mapVariantTracksToStreamTracks;
1123
+ private addAutoRow;
1124
+ private loadQualityDirect;
1125
+ private loadAndResume;
1126
+ private updatePlayerState;
1127
+ private getVideoTracksFromManifest;
1128
+ private setStreamTrack;
1129
+ private setPlayerQualityState;
1130
+ private getActiveTrack;
1131
+ private hasChoiceOfTrack;
1132
+ }
1133
+
1049
1134
  declare class SubtitlesService {
1050
1135
  private readonly player;
1051
1136
  private _isAudioOnly?;
@@ -1131,6 +1216,10 @@ declare class TimeBoundActionsService implements ITimeBoundActionsService {
1131
1216
  private isEvaluatingActions;
1132
1217
  private pendingEvaluateActions;
1133
1218
  private evaluateActions;
1219
+ private getNowActiveActions;
1220
+ private processNewActions;
1221
+ private processExitedActions;
1222
+ private handlePendingEvaluation;
1134
1223
  private detectAndSetStreamStartEpoch;
1135
1224
  private convertToPlayerTime;
1136
1225
  private isPointInTimeAction;
@@ -1148,16 +1237,6 @@ export declare enum TimeBoundActionType {
1148
1237
  PLAY_NEXT = "play-next"
1149
1238
  }
1150
1239
 
1151
- declare type VideoQuality = {
1152
- id: number;
1153
- label: string;
1154
- value: number;
1155
- width?: number;
1156
- height?: number;
1157
- bandwidth?: number;
1158
- videoTrack: any;
1159
- };
1160
-
1161
1240
  declare type WarningListener = (warning: IPlayerError) => void;
1162
1241
 
1163
1242
  export { }
@@ -1,19 +1,18 @@
1
- import { g, f, D, L, e, d, b, M, N, a, P, h, i, T, a as a2 } from "./main-XvJyWo8j.js";
1
+ import { g as s, f as o, D as d, L as M, e as P, d as i, b as p, M as r, N as t, a as y, P as A, h as D, i as E, T as L, a as R } from "./main-CmlOohv1.js";
2
2
  export {
3
- g as DRM_FAIRPLAY,
4
- f as DRM_PLAYREADY,
5
- D as DRM_WIDEVINE,
6
- L as LogEventType,
7
- e as MarkerTypes,
8
- d as MediaStates,
9
- b as MediaType,
10
- M as Modes,
11
- N as NpoAudioPlayer,
12
- a as NpoVideoPlayer,
13
- P as PROFILE_DASH,
14
- h as PROFILE_HLS,
15
- i as PlayerEventNames,
16
- T as TimeBoundActionType,
17
- a2 as default
3
+ s as DRM_FAIRPLAY,
4
+ o as DRM_PLAYREADY,
5
+ d as DRM_WIDEVINE,
6
+ M as LogEventType,
7
+ P as MarkerTypes,
8
+ i as MediaStates,
9
+ p as MediaType,
10
+ r as Modes,
11
+ t as NpoAudioPlayer,
12
+ y as NpoVideoPlayer,
13
+ A as PROFILE_DASH,
14
+ D as PROFILE_HLS,
15
+ E as PlayerEventNames,
16
+ L as TimeBoundActionType,
17
+ R as default
18
18
  };
19
- //# sourceMappingURL=npoplayer-audio.es.js.map