@npo/player 1.18.4 → 1.19.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.
Files changed (33) hide show
  1. package/README.md +4 -1
  2. package/lib/js/ads/ster.js +2 -0
  3. package/lib/js/fragments/removefragments.d.ts +1 -2
  4. package/lib/js/fragments/removefragments.js +1 -5
  5. package/lib/js/fragments/setfragments.d.ts +1 -1
  6. package/lib/js/fragments/setfragments.js +19 -13
  7. package/lib/js/playeractions/handlers/handleoffsets.js +8 -5
  8. package/lib/js/playeractions/handlers/removereplayclass.d.ts +2 -0
  9. package/lib/js/playeractions/handlers/removereplayclass.js +11 -0
  10. package/lib/js/ui/components/controlbar.js +2 -1
  11. package/lib/js/ui/components/nativemobile/buttons.js +0 -1
  12. package/lib/js/ui/components/settingspanel.js +4 -0
  13. package/lib/js/ui/handlers/listboxhandlers.js +2 -0
  14. package/lib/js/ui/handlers/streamhandler.js +1 -1
  15. package/lib/js/ui/nativemobileuifactory.js +6 -14
  16. package/lib/js/ui/uicontainer.d.ts +1 -0
  17. package/lib/js/ui/uicontainer.js +8 -0
  18. package/lib/js/utilities/utilities.js +3 -4
  19. package/lib/npoplayer.d.ts +2 -2
  20. package/lib/npoplayer.js +90 -35
  21. package/lib/package.json +3 -3
  22. package/lib/src/js/fragments/removefragments.d.ts +1 -2
  23. package/lib/src/js/fragments/setfragments.d.ts +1 -1
  24. package/lib/src/js/playeractions/handlers/removereplayclass.d.ts +2 -0
  25. package/lib/src/js/ui/uicontainer.d.ts +1 -0
  26. package/lib/src/npoplayer.d.ts +2 -2
  27. package/package.json +3 -3
  28. package/src/scss/components/_replay.scss +2 -1
  29. package/src/scss/npoplayer.css +7 -7
  30. package/src/scss/variants/_player-base.scss +1 -1
  31. package/lib/js/ui/handlers/playnexthandlers.d.ts +0 -0
  32. package/lib/js/ui/handlers/playnexthandlers.js +0 -1
  33. package/lib/src/js/ui/handlers/playnexthandlers.d.ts +0 -0
package/README.md CHANGED
@@ -7,8 +7,11 @@ The video player library for NPO (Nederlandse Publieke Omroep) and other broadca
7
7
  # Documentation
8
8
  Extensive and up-to-date documentation is available at https://docs.npoplayer.nl
9
9
 
10
+ # Code quality
11
+ Code quality is analysed by SonarCloud. The project can be found at https://sonarcloud.io/project/overview?id=NPOstart_npo-player
12
+
10
13
  # Changelog
11
- Current version: v1.18.0
14
+ Current version: v1.19.0
12
15
 
13
16
  The changelog is available at https://docs.npoplayer.nl/implementation/web/changelog/
14
17
 
@@ -107,6 +107,7 @@ export async function handlePreRolls(playerapi, streamObject, npoplayer) {
107
107
  playerapi.on(PlayerEvent.AdFinished, handleAdFinished);
108
108
  function handleAdBreakFinished() {
109
109
  playerapi.off(PlayerEvent.AdBreakFinished, handleAdBreakFinished);
110
+ playerapi.off(PlayerEvent.AdError, handleAdBreakFinished);
110
111
  npoplayer.adBreakActive = false;
111
112
  npoplayer.uiComponents.adbutton?.hide();
112
113
  npoplayer.uiComponents.adlabel?.hide();
@@ -117,5 +118,6 @@ export async function handlePreRolls(playerapi, streamObject, npoplayer) {
117
118
  resolve();
118
119
  }
119
120
  playerapi.on(PlayerEvent.AdBreakFinished, handleAdBreakFinished);
121
+ playerapi.on(PlayerEvent.AdError, handleAdBreakFinished);
120
122
  });
121
123
  }
@@ -1,3 +1,2 @@
1
- import { PlayerAPI } from 'bitmovin-player';
2
1
  import { UIManager } from 'bitmovin-player-ui';
3
- export declare function removeFragments(player: PlayerAPI, uiManager: UIManager): Promise<void>;
2
+ export declare function removeFragments(uiManager: UIManager): void;
@@ -1,9 +1,5 @@
1
- import { PlayerEvent } from 'bitmovin-player';
2
- import { checkFunction, seekFunction } from './setfragments';
3
- export async function removeFragments(player, uiManager) {
1
+ export function removeFragments(uiManager) {
4
2
  uiManager.getTimelineMarkers().forEach(marker => {
5
3
  uiManager.removeTimelineMarker(marker);
6
4
  });
7
- player.off(PlayerEvent.TimeChanged, checkFunction());
8
- player.off(PlayerEvent.Seek, seekFunction());
9
5
  }
@@ -3,4 +3,4 @@ import { type Fragments } from '../../types/interfaces';
3
3
  import { UIManager } from 'bitmovin-player-ui';
4
4
  export declare const checkFunction: () => (e: any) => void;
5
5
  export declare const seekFunction: () => (e: any) => void;
6
- export declare function setFragments(player: PlayerAPI, uiManager: UIManager, fragments: Fragments): Promise<void>;
6
+ export declare function setFragments(player: PlayerAPI, uiManager: UIManager, fragments: Fragments): void;
@@ -2,20 +2,25 @@ import { PlayerEvent } from 'bitmovin-player';
2
2
  import { removeFragments } from './removefragments';
3
3
  let fragment = null;
4
4
  let playerInstance = null;
5
+ let isFinished = false;
5
6
  const setTitle = () => {
6
- const element = document.querySelector('.bmpui-npo-player .bmpui-seekbar-label-title');
7
- if (element !== null && element.textContent === '') {
7
+ const element = playerInstance?.getContainer()?.querySelector('.bmpui-npo-player .bmpui-seekbar-label-title');
8
+ if (element !== null && element?.textContent === '') {
8
9
  element.textContent = fragment?.title || '';
9
10
  }
10
11
  };
11
12
  export const checkFunction = () => (e) => {
12
13
  if (!fragment || !playerInstance)
13
14
  return;
14
- if (e.time > fragment.end) {
15
+ playerInstance.off(PlayerEvent.TimeChanged, checkFunction());
16
+ if (e.time > fragment.end && !isFinished) {
17
+ isFinished = true;
15
18
  playerInstance.seek(Math.max(fragment.start, fragment.end));
16
19
  playerInstance.pause();
20
+ playerInstance?.getContainer().querySelector('.bmpui-npo-player')?.classList.add('bmpui-player-state-replay');
17
21
  }
18
- else if (e.time < fragment.start) {
22
+ else if (e.time < fragment.start || (e.time > fragment.end && isFinished)) {
23
+ isFinished = false;
19
24
  playerInstance.seek(fragment.start);
20
25
  }
21
26
  setTitle();
@@ -23,13 +28,14 @@ export const checkFunction = () => (e) => {
23
28
  export const seekFunction = () => (e) => {
24
29
  if (!fragment || !playerInstance)
25
30
  return;
31
+ playerInstance.off(PlayerEvent.Seek, seekFunction());
26
32
  const seekTarget = e.seekTarget ? e.seekTarget : e.to.time;
27
33
  if (seekTarget > fragment.end || seekTarget < fragment.start) {
28
34
  playerInstance.seek(Math.max(fragment.start, Math.min(fragment.end, seekTarget)));
29
35
  }
30
36
  setTitle();
31
37
  };
32
- export async function setFragments(player, uiManager, fragments) {
38
+ export function setFragments(player, uiManager, fragments) {
33
39
  fragment = fragments.sections[0] || null;
34
40
  playerInstance = player;
35
41
  const unplayableClass = 'seekbar-marker-unplayable';
@@ -37,12 +43,16 @@ export async function setFragments(player, uiManager, fragments) {
37
43
  if (!fragment)
38
44
  return;
39
45
  player.seek(fragment.start);
40
- if (player.isPaused())
46
+ if (player.isPaused() && playerInstance?.getConfig().playback?.autoplay === true) {
41
47
  void player.play();
48
+ }
42
49
  };
43
50
  const addMarkers = () => {
44
51
  if (!fragment)
45
52
  return;
53
+ playerInstance?.off(PlayerEvent.Ready, addMarkers);
54
+ removeFragments(uiManager);
55
+ setTitle();
46
56
  const timelineMarkers = [
47
57
  {
48
58
  time: 0,
@@ -61,12 +71,8 @@ export async function setFragments(player, uiManager, fragments) {
61
71
  uiManager.addTimelineMarker(marker);
62
72
  });
63
73
  playFragmentFromStart();
64
- player.on(PlayerEvent.TimeChanged, checkFunction());
65
- player.on(PlayerEvent.Seek, seekFunction());
74
+ playerInstance?.on(PlayerEvent.TimeChanged, checkFunction());
75
+ playerInstance?.on(PlayerEvent.Seek, seekFunction());
66
76
  };
67
- player.off(PlayerEvent.TimeChanged, checkFunction());
68
- player.off(PlayerEvent.Seek, seekFunction());
69
- await removeFragments(player, uiManager);
70
- addMarkers();
71
- setTitle();
77
+ playerInstance?.on(PlayerEvent.Ready, addMarkers);
72
78
  }
@@ -6,12 +6,15 @@ export function handleStartOffset(player, offset) {
6
6
  }
7
7
  return;
8
8
  }
9
- player.on(PlayerEvent.SourceLoaded, () => {
9
+ const seek = () => {
10
+ player.off(PlayerEvent.SourceLoaded, seek);
11
+ player.off(PlayerEvent.AdBreakFinished, seek);
12
+ player.off(PlayerEvent.AdError, seek);
10
13
  player.seek(offset);
11
- });
12
- player.on(PlayerEvent.AdBreakFinished, () => {
13
- player.seek(offset);
14
- });
14
+ };
15
+ player.on(PlayerEvent.SourceLoaded, seek);
16
+ player.on(PlayerEvent.AdBreakFinished, seek);
17
+ player.on(PlayerEvent.AdError, seek);
15
18
  }
16
19
  export function shiftToProgramStart(player, timestamp) {
17
20
  if (player == null)
@@ -0,0 +1,2 @@
1
+ import { PlayerAPI } from 'bitmovin-player';
2
+ export declare function removeReplayClass(player: PlayerAPI | null): void;
@@ -0,0 +1,11 @@
1
+ import { PlayerEvent } from 'bitmovin-player';
2
+ export function removeReplayClass(player) {
3
+ if (!player)
4
+ return;
5
+ player.off(PlayerEvent.Seek, () => {
6
+ removeReplayClass(player);
7
+ });
8
+ const playerContainer = player.getContainer();
9
+ playerContainer.classList.remove('bmpui-player-state-finished');
10
+ playerContainer.classList.remove('bmpui-player-state-replay');
11
+ }
@@ -12,8 +12,9 @@ export function createControlBar(npoplayer, settingsPanel) {
12
12
  hidden: true
13
13
  });
14
14
  player?.on(PlayerEvent.CastAvailable, () => {
15
- if (player.isCastAvailable())
15
+ if (player.isCastAvailable()) {
16
16
  chromeCastButton.show();
17
+ }
17
18
  });
18
19
  const controlbar = new ControlBar({
19
20
  components: [
@@ -124,7 +124,6 @@ export function createPlaybackToggleButton() {
124
124
  const playbackClickHandler = () => {
125
125
  if (!customPlayerbackToggleButton)
126
126
  return;
127
- console.log('TOGGLE_PLAY_PAUSE', !customPlayerbackToggleButton.isOn());
128
127
  sendCustomMessage(CustomMessages.TOGGLE_PLAY_PAUSE, { isChecked: !customPlayerbackToggleButton.isOn() });
129
128
  };
130
129
  customPlayerbackToggleButton.onClick.unsubscribe(() => {
@@ -133,6 +133,7 @@ export function createSettingsPanel(npoplayer) {
133
133
  const checkSubtitles = () => {
134
134
  player?.off(PlayerEvent.SourceLoaded, checkSubtitles);
135
135
  player?.off(PlayerEvent.AdBreakFinished, checkSubtitles);
136
+ player?.off(PlayerEvent.AdError, checkSubtitles);
136
137
  const subtitles = player?.subtitles?.list();
137
138
  if (subtitles != null && subtitles.length > 0) {
138
139
  subtitlesPanelItem.show();
@@ -144,6 +145,7 @@ export function createSettingsPanel(npoplayer) {
144
145
  const checkQuality = () => {
145
146
  player?.off(PlayerEvent.SourceLoaded, checkQuality);
146
147
  player?.off(PlayerEvent.AdBreakFinished, checkQuality);
148
+ player?.off(PlayerEvent.AdError, checkQuality);
147
149
  if (player?.getAvailableVideoQualities() !== undefined && player?.getAvailableVideoQualities().length > 0) {
148
150
  qualityPanelItem.show();
149
151
  }
@@ -155,5 +157,7 @@ export function createSettingsPanel(npoplayer) {
155
157
  player?.on(PlayerEvent.SourceLoaded, checkQuality);
156
158
  player?.on(PlayerEvent.AdBreakFinished, checkSubtitles);
157
159
  player?.on(PlayerEvent.AdBreakFinished, checkQuality);
160
+ player?.on(PlayerEvent.AdError, checkSubtitles);
161
+ player?.on(PlayerEvent.AdError, checkQuality);
158
162
  return settingsPanel;
159
163
  }
@@ -5,10 +5,12 @@ function closeSettingsPanel(settingsPanel, mainSettingsPage) {
5
5
  }, 100);
6
6
  }
7
7
  export function handleSubtitleListBoxItemSelected(subtitleSettingsOpenButton, settingsPanel, mainSettingsPage) {
8
+ console.log('handleSubtitleListBoxItemSelected');
8
9
  return (e) => {
9
10
  e.getItems().forEach((item) => {
10
11
  if (item.key === e.getSelectedItem()) {
11
12
  subtitleSettingsOpenButton.setText(item.label);
13
+ e.selectItem(item.key);
12
14
  }
13
15
  });
14
16
  closeSettingsPanel(settingsPanel, mainSettingsPage);
@@ -10,7 +10,7 @@ export function processStream(streamObject, container, streamOptions, player, ui
10
10
  const section = {
11
11
  start: seg.inpoint,
12
12
  end: seg.outpoint,
13
- title: sourceConfig.title || '',
13
+ title: sourceConfig.title || streamObject.metadata.title || '',
14
14
  };
15
15
  setFragments(player, uiManager, { sections: [section] });
16
16
  }
@@ -17,6 +17,7 @@ export function nativeMobileUiFactory(player, config = {}) {
17
17
  const mobileUIManager = new UIManager(player, nativeMobileUIContainer(player), uiConfig);
18
18
  let _streamObject = {};
19
19
  const removeFinishedClass = () => {
20
+ player.off(PlayerEvent.Seeked, removeFinishedClass);
20
21
  const playerFinishedElement = document.querySelector('.bmpui-npo-player.bmpui-player-state-finished');
21
22
  if (playerFinishedElement) {
22
23
  playerFinishedElement.classList.remove('bmpui-player-state-finished');
@@ -32,7 +33,7 @@ export function nativeMobileUiFactory(player, config = {}) {
32
33
  if (element) {
33
34
  element.textContent = '';
34
35
  }
35
- removeFragments(player, mobileUIManager);
36
+ removeFragments(mobileUIManager);
36
37
  };
37
38
  const updateUI = () => {
38
39
  if (_streamObject.metadata?.ageRating) {
@@ -69,6 +70,8 @@ export function nativeMobileUiFactory(player, config = {}) {
69
70
  });
70
71
  }
71
72
  const addEventListeners = () => {
73
+ player.off(PlayerEvent.Ready, addEventListeners);
74
+ sendCustomMessage(CustomMessages.JAVASCRIPT_READY);
72
75
  const playbackToggleElement = document.getElementById('native-mobile-playbacktoggleoverlay');
73
76
  if (playbackToggleElement) {
74
77
  const playbackToggleButton = playbackToggleElement.querySelector('button');
@@ -78,18 +81,7 @@ export function nativeMobileUiFactory(player, config = {}) {
78
81
  });
79
82
  }
80
83
  };
81
- player.off(PlayerEvent.Seeked, () => {
82
- removeFinishedClass();
83
- });
84
- player.on(PlayerEvent.Seeked, () => {
85
- removeFinishedClass();
86
- });
87
- player.off(PlayerEvent.Ready, () => {
88
- sendCustomMessage(CustomMessages.JAVASCRIPT_READY);
89
- });
90
- player.on(PlayerEvent.Ready, () => {
91
- addEventListeners();
92
- sendCustomMessage(CustomMessages.JAVASCRIPT_READY);
93
- });
84
+ player.on(PlayerEvent.Seeked, removeFinishedClass);
85
+ player.on(PlayerEvent.Ready, addEventListeners);
94
86
  return mobileUIManager;
95
87
  }
@@ -3,3 +3,4 @@ import { UIContainer } from 'bitmovin-player-ui';
3
3
  import { PlayerAPI } from 'bitmovin-player';
4
4
  import { NpoPlayerUIVariants } from '../../types/interfaces';
5
5
  export declare function createUIContainer(npoplayer: NpoPlayer, player: PlayerAPI, variant: NpoPlayerUIVariants, container: HTMLElement): UIContainer;
6
+ export declare function removeUIContainer(container: HTMLElement): void;
@@ -77,3 +77,11 @@ export function createUIContainer(npoplayer, player, variant, container) {
77
77
  hideDelay: uiDelay
78
78
  });
79
79
  }
80
+ export function removeUIContainer(container) {
81
+ for (let i = 0; i < container.attributes.length; i += 1) {
82
+ const attributeName = container.attributes[i].name;
83
+ if (attributeName.startsWith('data-')) {
84
+ container.removeAttribute(attributeName);
85
+ }
86
+ }
87
+ }
@@ -22,10 +22,9 @@ export function localize(key) {
22
22
  return i18n.getLocalizer(key);
23
23
  }
24
24
  export function validateStreamLength(duration, seconds = false) {
25
- if (seconds) {
26
- return Number(duration);
27
- }
28
- return duration !== undefined ? msToSeconds(Number(duration)) : -1;
25
+ if (duration === undefined || duration === Infinity)
26
+ return -1;
27
+ return seconds ? (isFinite(+duration) ? Number(duration) : -1) : msToSeconds(Number(duration));
29
28
  }
30
29
  export function msToSeconds(ms) {
31
30
  return ms / 1000;
@@ -42,7 +42,7 @@ export default class NpoPlayer {
42
42
  cancelPlayNextScreen(): void;
43
43
  hidePlayNextScreen(): void;
44
44
  doPlayNext(): void;
45
- destroy(): boolean;
46
- unload(): boolean;
45
+ destroy(asyncMode?: boolean): Promise<boolean>;
46
+ unload(asyncMode?: boolean): Promise<boolean>;
47
47
  printVersion(): void;
48
48
  }
package/lib/npoplayer.js CHANGED
@@ -9,7 +9,7 @@ import { getStreamObject } from './js/api/getstreamobject';
9
9
  import { printVersion } from './js/utilities/printversion';
10
10
  import { UIManager } from 'bitmovin-player-ui';
11
11
  import { customSpecificErrorMessageOverlayConfig } from './js/playeractions/handlers/customerrors';
12
- import { createUIContainer } from './js/ui/uicontainer';
12
+ import { createUIContainer, removeUIContainer } from './js/ui/uicontainer';
13
13
  import { addAccessibilityAttributes } from './js/ui/handlers/accessibilityhandler';
14
14
  import { LogEmitter } from './types/classes';
15
15
  import { handlePreRolls } from './js/ads/ster';
@@ -18,6 +18,7 @@ import { NpoPlayerUIVariants } from './types/interfaces';
18
18
  import { nativeMobileUiFactory } from './js/ui/nativemobileuifactory';
19
19
  import { setupMediaSessionActionHandlers } from './js/playeractions/handlers/mediasessionactions';
20
20
  import { processStream } from './js/ui/handlers/streamhandler';
21
+ import { removeReplayClass } from './js/playeractions/handlers/removereplayclass';
21
22
  export { NpoPlayerUIVariants, };
22
23
  export default class NpoPlayer {
23
24
  constructor(_container, _playerConfig, _npotag, _npotaginstance, _variant) {
@@ -70,13 +71,21 @@ export default class NpoPlayer {
70
71
  const isUrl = utility.isUrl(source);
71
72
  const isMedia = await utility.isMediaUrl(source);
72
73
  const isJWTToken = utility.isJWTToken(source);
74
+ const getDurationAndStartPlayerTracker = function () {
75
+ if (this.player === null)
76
+ return;
77
+ let prid = (utility.isJWTToken(source) ? this.streamObject?.metadata.prid : source) || 'unknown';
78
+ this.player.off(PlayerEvent.SourceLoaded, getDurationAndStartPlayerTracker);
79
+ let duration = this.player ? this.player.getDuration() : undefined;
80
+ startPlayerTracker(this, utility.validateStreamLength(duration, true), this.version, prid);
81
+ }.bind(this);
73
82
  if (isUrl && isMedia) {
74
83
  this.sourceConfig = {
75
84
  ...options.sourceConfig,
76
85
  'progressive': source
77
86
  };
78
87
  this.player?.load(this.sourceConfig);
79
- startPlayerTracker(this, utility.validateStreamLength(this.player?.getDuration(), true), this.version, source);
88
+ getDurationAndStartPlayerTracker();
80
89
  }
81
90
  else if (isJWTToken) {
82
91
  this.jwt = source;
@@ -107,7 +116,14 @@ export default class NpoPlayer {
107
116
  await drm.verifyDRM(this, this.player, payload);
108
117
  setupMediaSessionActionHandlers(this.player, this.sourceConfig, _streamObject);
109
118
  logEvent(this, 'load');
110
- startPlayerTracker(this, utility.validateStreamLength(_streamObject.metadata.duration, false), this.version, _streamObject.metadata.prid);
119
+ let streamDuration = _streamObject.metadata.duration;
120
+ let streamPrid = this.streamObject.metadata.prid || _streamObject.metadata.prid;
121
+ streamDuration = streamDuration == null
122
+ ? this.player.on(PlayerEvent.SourceLoaded, getDurationAndStartPlayerTracker)
123
+ : startPlayerTracker(this, utility.validateStreamLength(streamDuration, false), this.version, streamPrid);
124
+ if (this.isShowingPlayNextScreen) {
125
+ this.hidePlayNextScreen();
126
+ }
111
127
  if (this.variant !== NpoPlayerUIVariants.AUDIO) {
112
128
  await handlePreRolls(this.player, _streamObject, this);
113
129
  }
@@ -115,15 +131,23 @@ export default class NpoPlayer {
115
131
  else {
116
132
  this.doError(`Het is niet gelukt de stream op te halen: \n Input is geen valide token of media object.`, 500);
117
133
  }
118
- this.player.off(PlayerEvent.SourceLoaded, () => { void addAccessibilityAttributes(this.container, this.streamObject.metadata); });
119
- this.player.on(PlayerEvent.SourceLoaded, () => { void addAccessibilityAttributes(this.container, this.streamObject.metadata); });
120
- this.player.off(PlayerEvent.AdBreakFinished, () => { void addAccessibilityAttributes(this.container, this.streamObject.metadata); });
121
- this.player.on(PlayerEvent.AdBreakFinished, () => { void addAccessibilityAttributes(this.container, this.streamObject.metadata); });
134
+ const triggerAddAccessibilityAttributes = () => {
135
+ this.player?.off(PlayerEvent.SourceLoaded, triggerAddAccessibilityAttributes);
136
+ this.player?.off(PlayerEvent.AdBreakFinished, triggerAddAccessibilityAttributes);
137
+ this.player?.off(PlayerEvent.AdError, triggerAddAccessibilityAttributes);
138
+ void addAccessibilityAttributes(this.container, this.streamObject.metadata);
139
+ };
140
+ this.player.on(PlayerEvent.SourceLoaded, triggerAddAccessibilityAttributes);
141
+ this.player.on(PlayerEvent.AdBreakFinished, triggerAddAccessibilityAttributes);
142
+ this.player.on(PlayerEvent.AdError, triggerAddAccessibilityAttributes);
122
143
  if (this.sourceConfig?.metadata) {
123
144
  this.sourceConfig.metadata.jwt = source;
124
145
  this.sourceConfig.metadata.streamLinkAsJsonString = JSON.stringify(this.streamObject);
125
146
  this.sourceConfig.metadata.npoTagSession = String(this.npoTag?.npoTagInstance?.getSerializedSessionInfo());
126
147
  }
148
+ this.player.on(PlayerEvent.Seek, () => {
149
+ removeReplayClass(this.player);
150
+ });
127
151
  if (options?.playNext?.showPlayNext === true) {
128
152
  this.player.on(PlayerEvent.TimeChanged, () => {
129
153
  this.showPlayNextScreen();
@@ -143,15 +167,15 @@ export default class NpoPlayer {
143
167
  this.player.on(PlayerEvent.SourceLoaded, setLiveOffsetListener);
144
168
  }
145
169
  async createUIManager(player, variant) {
146
- const uiConfig = {
147
- errorMessages: customSpecificErrorMessageOverlayConfig,
148
- disableAutoHideWhenHovered: true
149
- };
150
- if (!this.uiManager || variant !== this.variant) {
170
+ if (this.uiManager === null || variant !== this.variant) {
171
+ const uiConfig = {
172
+ errorMessages: customSpecificErrorMessageOverlayConfig,
173
+ disableAutoHideWhenHovered: true
174
+ };
151
175
  this.uiManager = new UIManager(player, createUIContainer(this, player, variant, this.container), uiConfig);
152
176
  this.variant = variant;
153
177
  }
154
- if (this.uiManager) {
178
+ else {
155
179
  processStream(this.streamObject, this.container, this.streamOptions, player, this.uiManager, this.sourceConfig);
156
180
  }
157
181
  }
@@ -211,7 +235,7 @@ export default class NpoPlayer {
211
235
  playerAction.shiftToProgramStart(this.player, this.streamOptions.liveProgramTime);
212
236
  }
213
237
  showPlayNextScreen() {
214
- if (this.player == null || !this.streamOptions.playNext?.showPlayNext)
238
+ if (this.player == null || !this.streamOptions.playNext?.showPlayNext || this.adBreakActive)
215
239
  return;
216
240
  this.player.off(PlayerEvent.TimeChanged, () => {
217
241
  this.showPlayNextScreen();
@@ -245,33 +269,64 @@ export default class NpoPlayer {
245
269
  this.hidePlayNextScreen();
246
270
  void this.streamOptions.playNext?.proceedCallback?.();
247
271
  }
248
- destroy() {
249
- try {
250
- if (this.npoTag != null) {
251
- clearInterval(this.npoTag.heartbeatInterval);
272
+ destroy(asyncMode = false) {
273
+ const destroyLogic = async () => {
274
+ try {
275
+ if (this.npoTag != null) {
276
+ clearInterval(this.npoTag.heartbeatInterval);
277
+ }
278
+ logEvent(this, 'stop');
279
+ const playerContainer = this.player?.getContainer();
280
+ if (playerContainer)
281
+ removeUIContainer(playerContainer);
282
+ this.uiManager?.release();
283
+ this.uiManager = null;
284
+ await this.player?.destroy();
285
+ return true;
286
+ }
287
+ catch (e) {
288
+ console.error('Error destroying player:', e);
289
+ return false;
290
+ }
291
+ };
292
+ if (asyncMode) {
293
+ try {
294
+ destroyLogic();
295
+ return Promise.resolve(true);
296
+ }
297
+ catch (error) {
298
+ return Promise.resolve(false);
252
299
  }
253
- logEvent(this, 'stop');
254
- this.uiManager?.release();
255
- this.uiManager = null;
256
- void this.player?.destroy();
257
- return true;
258
300
  }
259
- catch (e) {
260
- console.error('NPO Player is al destroyed', e);
261
- return false;
301
+ else {
302
+ return destroyLogic();
262
303
  }
263
304
  }
264
- unload() {
265
- try {
266
- if (this.npoTag != null) {
267
- clearInterval(this.npoTag.heartbeatInterval);
305
+ unload(asyncMode = false) {
306
+ const unloadLogic = async () => {
307
+ try {
308
+ if (this.npoTag != null) {
309
+ clearInterval(this.npoTag.heartbeatInterval);
310
+ }
311
+ const playerContainer = this.player?.getContainer();
312
+ if (playerContainer)
313
+ removeUIContainer(playerContainer);
314
+ this.hidePlayNextScreen();
315
+ await this.player?.unload();
316
+ return true;
317
+ }
318
+ catch (e) {
319
+ console.error('Error unloading player:', e);
320
+ return false;
268
321
  }
269
- void this.player?.unload();
270
- return true;
322
+ };
323
+ if (asyncMode) {
324
+ return unloadLogic();
271
325
  }
272
- catch (e) {
273
- console.error('NPO Player is al unloaded', e);
274
- return false;
326
+ else {
327
+ return new Promise((resolve, reject) => {
328
+ unloadLogic().then(resolve).catch(reject);
329
+ });
275
330
  }
276
331
  }
277
332
  printVersion() {
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@npo/player",
3
- "version": "1.18.4",
3
+ "version": "1.19.0",
4
4
  "description": "NPO Player",
5
5
  "author": "Publieke Omroep <player@npo.nl>",
6
6
  "contributors": [
@@ -24,7 +24,7 @@
24
24
  "bundle": "npm run lint && bash build-lib.sh && npm run build:scss && npm run build:cdn",
25
25
  "build:ts": "bash build-lib.sh",
26
26
  "test": "jest",
27
- "test:ci": "node_modules/.bin/jest",
27
+ "test:ci": "jest --collectCoverage --testResultsProcessor=jest-sonar-reporter",
28
28
  "version:dev": "npm version prerelease --preid=dev --no-git-tag-version"
29
29
  },
30
30
  "files": [
@@ -55,7 +55,7 @@
55
55
  "eslint-plugin-import": "^2.27.5",
56
56
  "eslint-plugin-n": "^15.7.0",
57
57
  "eslint-plugin-promise": "^6.1.1",
58
- "eslint-plugin-sonarjs": "^0.19.0",
58
+ "eslint-plugin-sonarjs": "^0.23.0",
59
59
  "fs-extra": "^11.1.1",
60
60
  "jest": "^28.1.3",
61
61
  "jest-environment-jsdom": "^29.4.1",
@@ -1,3 +1,2 @@
1
- import { PlayerAPI } from 'bitmovin-player';
2
1
  import { UIManager } from 'bitmovin-player-ui';
3
- export declare function removeFragments(player: PlayerAPI, uiManager: UIManager): Promise<void>;
2
+ export declare function removeFragments(uiManager: UIManager): void;
@@ -3,4 +3,4 @@ import { type Fragments } from '../../types/interfaces';
3
3
  import { UIManager } from 'bitmovin-player-ui';
4
4
  export declare const checkFunction: () => (e: any) => void;
5
5
  export declare const seekFunction: () => (e: any) => void;
6
- export declare function setFragments(player: PlayerAPI, uiManager: UIManager, fragments: Fragments): Promise<void>;
6
+ export declare function setFragments(player: PlayerAPI, uiManager: UIManager, fragments: Fragments): void;
@@ -0,0 +1,2 @@
1
+ import { PlayerAPI } from 'bitmovin-player';
2
+ export declare function removeReplayClass(player: PlayerAPI | null): void;
@@ -3,3 +3,4 @@ import { UIContainer } from 'bitmovin-player-ui';
3
3
  import { PlayerAPI } from 'bitmovin-player';
4
4
  import { NpoPlayerUIVariants } from '../../types/interfaces';
5
5
  export declare function createUIContainer(npoplayer: NpoPlayer, player: PlayerAPI, variant: NpoPlayerUIVariants, container: HTMLElement): UIContainer;
6
+ export declare function removeUIContainer(container: HTMLElement): void;
@@ -42,7 +42,7 @@ export default class NpoPlayer {
42
42
  cancelPlayNextScreen(): void;
43
43
  hidePlayNextScreen(): void;
44
44
  doPlayNext(): void;
45
- destroy(): boolean;
46
- unload(): boolean;
45
+ destroy(asyncMode?: boolean): Promise<boolean>;
46
+ unload(asyncMode?: boolean): Promise<boolean>;
47
47
  printVersion(): void;
48
48
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@npo/player",
3
- "version": "1.18.4",
3
+ "version": "1.19.0",
4
4
  "description": "NPO Player",
5
5
  "author": "Publieke Omroep <player@npo.nl>",
6
6
  "contributors": [
@@ -24,7 +24,7 @@
24
24
  "bundle": "npm run lint && bash build-lib.sh && npm run build:scss && npm run build:cdn",
25
25
  "build:ts": "bash build-lib.sh",
26
26
  "test": "jest",
27
- "test:ci": "node_modules/.bin/jest",
27
+ "test:ci": "jest --collectCoverage --testResultsProcessor=jest-sonar-reporter",
28
28
  "version:dev": "npm version prerelease --preid=dev --no-git-tag-version"
29
29
  },
30
30
  "files": [
@@ -55,7 +55,7 @@
55
55
  "eslint-plugin-import": "^2.27.5",
56
56
  "eslint-plugin-n": "^15.7.0",
57
57
  "eslint-plugin-promise": "^6.1.1",
58
- "eslint-plugin-sonarjs": "^0.19.0",
58
+ "eslint-plugin-sonarjs": "^0.23.0",
59
59
  "fs-extra": "^11.1.1",
60
60
  "jest": "^28.1.3",
61
61
  "jest-environment-jsdom": "^29.4.1",
@@ -1,4 +1,5 @@
1
- &.bmpui-player-state-finished {
1
+ &.bmpui-player-state-finished,
2
+ &.bmpui-player-state-replay {
2
3
  .bmpui-ui-playbacktoggle-overlay {
3
4
  display: block !important;
4
5
 
@@ -572,11 +572,11 @@
572
572
  .bmpui-npo-player.bmpui-ster-ad.bmpui-layout-max-width-800 .bmpui-controlbar-textbuttons{position:absolute;padding:24px;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}
573
573
  .bmpui-npo-player.bmpui-ster-ad.bmpui-layout-max-width-800 .bmpui-controlbar-textbuttons>.bmpui-container-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
574
574
  .bmpui-npo-player.bmpui-ster-ad.bmpui-layout-max-width-800 .bmpui-adLabel{position:relative;top:0;left:0;margin-right:16px}
575
- .bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktoggle-overlay{display:block !important}
576
- .bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktoggle-overlay .bmpui-ui-hugeplaybacktogglebutton{background:rgba(3,14,30,.4)}
577
- .bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktoggle-overlay .bmpui-image::before,.bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktoggle-overlay .bmpui-image:hover::before{display:none}
578
- .bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktoggle-overlay .bmpui-image::after,.bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktoggle-overlay .bmpui-image:hover::after{-webkit-animation:none;animation:none;background-color:rgba(0,0,0,0);background-repeat:no-repeat;background-position:50% 50%;background-color:var(--npo-player-iconcolor);-webkit-mask-size:48px;mask-size:48px;-webkit-mask-image:var(--npo-player-icon-replay) !important;mask-image:var(--npo-player-icon-replay) !important}
579
- .bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktogglebutton.bmpui-off{-webkit-mask-image:var(--npo-player-icon-replay);mask-image:var(--npo-player-icon-replay)}
575
+ .bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktoggle-overlay,.bmpui-npo-player.bmpui-player-state-replay .bmpui-ui-playbacktoggle-overlay{display:block !important}
576
+ .bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktoggle-overlay .bmpui-ui-hugeplaybacktogglebutton,.bmpui-npo-player.bmpui-player-state-replay .bmpui-ui-playbacktoggle-overlay .bmpui-ui-hugeplaybacktogglebutton{background:rgba(3,14,30,.4)}
577
+ .bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktoggle-overlay .bmpui-image::before,.bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktoggle-overlay .bmpui-image:hover::before,.bmpui-npo-player.bmpui-player-state-replay .bmpui-ui-playbacktoggle-overlay .bmpui-image::before,.bmpui-npo-player.bmpui-player-state-replay .bmpui-ui-playbacktoggle-overlay .bmpui-image:hover::before{display:none}
578
+ .bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktoggle-overlay .bmpui-image::after,.bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktoggle-overlay .bmpui-image:hover::after,.bmpui-npo-player.bmpui-player-state-replay .bmpui-ui-playbacktoggle-overlay .bmpui-image::after,.bmpui-npo-player.bmpui-player-state-replay .bmpui-ui-playbacktoggle-overlay .bmpui-image:hover::after{-webkit-animation:none;animation:none;background-color:rgba(0,0,0,0);background-repeat:no-repeat;background-position:50% 50%;background-color:var(--npo-player-iconcolor);-webkit-mask-size:48px;mask-size:48px;-webkit-mask-image:var(--npo-player-icon-replay) !important;mask-image:var(--npo-player-icon-replay) !important}
579
+ .bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktogglebutton.bmpui-off,.bmpui-npo-player.bmpui-player-state-replay .bmpui-ui-playbacktogglebutton.bmpui-off{-webkit-mask-image:var(--npo-player-icon-replay);mask-image:var(--npo-player-icon-replay)}
580
580
  .bmpui-npo-player .bmpui-ui-errormessage-overlay .bmpui-ui-tvnoisecanvas{display:none}
581
581
  .bmpui-npo-player .bmpui-ui-errormessage-overlay::before{content:"";background-color:var(--npo-player-secondarycolor);opacity:.7;width:100%;height:100%;top:0;left:0;bottom:0;right:0;position:absolute}
582
582
  .bmpui-npo-player .bmpui-ui-errormessage-label{font-family:var(--font-bold);font-weight:700;font-size:22px;line-height:130%;text-shadow:0px 0px 10px rgba(0,0,0,.9);padding:15px 5px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
@@ -589,7 +589,7 @@
589
589
  .bmpui-npo-player .bmpui-ui-playbacktimelabel{font-family:var(--fontBold);font-style:normal;font-weight:700}
590
590
  .bmpui-npo-player .bmpui-ui-playbacktimelabel.bmpui-total-time{opacity:.6}
591
591
  .bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-controlbar:not(.bmpui-controlbar-middle),.bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-hugeplaybacktogglebutton{display:unset}
592
- .bmpui-npo-player.bmpui-player-state-prepared.bmpui-controls-shown .bmpui-ui-titlebar,.bmpui-npo-player.bmpui-player-state-prepared.bmpui-controls-shown .bmpui-ui-controlbar{display:none}
592
+ .bmpui-npo-player.bmpui-player-state-prepared:not(.bmpui-native-mobile).bmpui-controls-shown .bmpui-ui-titlebar,.bmpui-npo-player.bmpui-player-state-prepared:not(.bmpui-native-mobile).bmpui-controls-shown .bmpui-ui-controlbar{display:none}
593
593
  .bmpui-npo-player.bmpui-player-state-paused.bmpui-controls-shown .bmpui-ui-hugeplaybacktogglebutton{visibility:hidden}
594
594
  .bmpui-npo-player.livestream-dvr .bmpui-ui-rewindbutton,.bmpui-npo-player.livestream-dvr .bmpui-ui-forwardbutton{display:none}
595
595
  .bmpui-npo-player.livestream-dvr .bmpui-ui-playbacktogglebutton.bmpui-on{-webkit-mask-image:var(--npo-player-icon-stop);mask-image:var(--npo-player-icon-stop)}
@@ -675,4 +675,4 @@
675
675
  .bitmovinplayer-container.bitmovinplayer-audio-container .bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktoggle-overlay .bmpui-image::after,.bitmovinplayer-container.bitmovinplayer-audio-container .bmpui-npo-player.bmpui-player-state-finished .bmpui-ui-playbacktoggle-overlay .bmpui-image:hover::after{background-color:var(--npo-audio-player-background-color);-webkit-mask-size:32px;mask-size:32px}
676
676
  .bitmovinplayer-container.bitmovinplayer-audio-container .bmpui-npo-player.bmpui-layout-max-width-400 .bmpui-ui-playbacktoggle-overlay .bmpui-image::after,.bitmovinplayer-container.bitmovinplayer-audio-container .bmpui-npo-player.bmpui-layout-max-width-400 .bmpui-ui-playbacktoggle-overlay .bmpui-image:hover::after{-webkit-mask-size:24px;mask-size:24px}
677
677
 
678
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9iaXRtb3Zpbi1wbGF5ZXItdWkvZGlzdC9jc3MvYml0bW92aW5wbGF5ZXItdWkubWluLmNzcyIsIm5wb3BsYXllci5zY3NzIiwidmFycy9fY29sb3JzLnNjc3MiLCJ2YXJzL19mb250cy5zY3NzIiwidmFycy9faWNvbnMuc2NzcyIsInZhcnMvX2F1ZGlvLnNjc3MiLCJjb21wb25lbnRzL19pY29ucy5zY3NzIiwiY29tcG9uZW50cy9faHVnZXBsYXliYWNrdG9nZ2xlYnV0dG9uLnNjc3MiLCJjb21wb25lbnRzL19uaWNhbS5zY3NzIiwiY29tcG9uZW50cy9fcGxheW5leHQuc2NzcyIsImNvbXBvbmVudHMvX3NlZWtiYXIuc2NzcyIsImNvbXBvbmVudHMvX3NlZWtiYXJ0aHVtYm5haWwuc2NzcyIsImNvbXBvbmVudHMvX21ldGFkYXRhLnNjc3MiLCJjb21wb25lbnRzL192b2x1bWVzbGlkZXIuc2NzcyIsImNvbXBvbmVudHMvX2NvbnRyb2xiYXJzLnNjc3MiLCJjb21wb25lbnRzL19zZXR0aW5nc3BhbmVsLnNjc3MiLCJjb21wb25lbnRzL19zdWJ0aXRsZXMuc2NzcyIsImNvbXBvbmVudHMvX3RleHRidXR0b25zLnNjc3MiLCJjb21wb25lbnRzL19idWZmZXJpbmcuc2NzcyIsImNvbXBvbmVudHMvX2FkdmVydC5zY3NzIiwiY29tcG9uZW50cy9fcmVwbGF5LnNjc3MiLCJjb21wb25lbnRzL19lcnJvci5zY3NzIiwidmFyaWFudHMvX3BsYXllci1iYXNlLnNjc3MiLCJ2YXJpYW50cy9fcGxheWVyLWxhcmdlLnNjc3MiLCJ2YXJpYW50cy9fcGxheWVyLW1lZGl1bS5zY3NzIiwidmFyaWFudHMvX3BsYXllci1zbWFsbC5zY3NzIiwidmFyaWFudHMvX3BsYXllci1uYXRpdmUtbW9iaWxlLnNjc3MiLCJ2YXJpYW50cy9fcGxheWVyLWF1ZGlvLnNjc3MiLCJjb21wb25lbnRzL2F1ZGlvL19wb3N0ZXIuc2NzcyIsImNvbXBvbmVudHMvYXVkaW8vX3ZhcnMuc2NzcyIsImNvbXBvbmVudHMvYXVkaW8vX2Vycm9ycy5zY3NzIiwiY29tcG9uZW50cy9hdWRpby9fdG9wYmFyLnNjc3MiLCJjb21wb25lbnRzL2F1ZGlvL19tZXRhZGF0YS5zY3NzIiwiY29tcG9uZW50cy9hdWRpby9fc2Vla2Jhci5zY3NzIiwiY29tcG9uZW50cy9hdWRpby9fcGxheWJ1dHRvbi5zY3NzIiwiY29tcG9uZW50cy9hdWRpby9fYm90dG9tYmFyLnNjc3MiLCJjb21wb25lbnRzL2F1ZGlvL192b2x1bWVzbGlkZXIuc2NzcyIsImNvbXBvbmVudHMvYXVkaW8vX3JlcGxheS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQUFDO0VBQ2Ysb0RBQW9ELENBQUMsU0FBUztBQUFDLCtYQUErWCxhQUFhO0FBQUMsc0JBQXNCLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsVUFBVTtBQUFDLHdCQUF3QixtQkFBbUI7QUFBQyxtQ0FBbUMsWUFBWTtBQUFDLHlFQUF5RSxXQUFXO0FBQUMsb0ZBQW9GLGtEQUFrRCxDQUFDLDBDQUEwQztBQUFDLDhHQUE4Ryx1QkFBdUIsQ0FBQyxlQUFlO0FBQUMsdUNBQXVDLDBJQUEwSTtBQUFDLHdEQUF3RCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxjQUFjO0FBQUMscUJBQW1ILDhGQUE2RCxDQUE3RCw2REFBNkQsQ0FBQyxRQUFRLENBQUMsNkJBQTZCLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyw0Q0FBNEMsQ0FBQyxvQ0FBb0MsQ0FBQyxVQUFVO0FBQUMsa0NBQWtDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxzQkFBc0I7QUFBQywySUFBMkksbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLGFBQWE7QUFBQywyREFBMkQsY0FBYztBQUFDLHNF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 */
678
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9iaXRtb3Zpbi1wbGF5ZXItdWkvZGlzdC9jc3MvYml0bW92aW5wbGF5ZXItdWkubWluLmNzcyIsIm5wb3BsYXllci5zY3NzIiwidmFycy9fY29sb3JzLnNjc3MiLCJ2YXJzL19mb250cy5zY3NzIiwidmFycy9faWNvbnMuc2NzcyIsInZhcnMvX2F1ZGlvLnNjc3MiLCJjb21wb25lbnRzL19pY29ucy5zY3NzIiwiY29tcG9uZW50cy9faHVnZXBsYXliYWNrdG9nZ2xlYnV0dG9uLnNjc3MiLCJjb21wb25lbnRzL19uaWNhbS5zY3NzIiwiY29tcG9uZW50cy9fcGxheW5leHQuc2NzcyIsImNvbXBvbmVudHMvX3NlZWtiYXIuc2NzcyIsImNvbXBvbmVudHMvX3NlZWtiYXJ0aHVtYm5haWwuc2NzcyIsImNvbXBvbmVudHMvX21ldGFkYXRhLnNjc3MiLCJjb21wb25lbnRzL192b2x1bWVzbGlkZXIuc2NzcyIsImNvbXBvbmVudHMvX2NvbnRyb2xiYXJzLnNjc3MiLCJjb21wb25lbnRzL19zZXR0aW5nc3BhbmVsLnNjc3MiLCJjb21wb25lbnRzL19zdWJ0aXRsZXMuc2NzcyIsImNvbXBvbmVudHMvX3RleHRidXR0b25zLnNjc3MiLCJjb21wb25lbnRzL19idWZmZXJpbmcuc2NzcyIsImNvbXBvbmVudHMvX2FkdmVydC5zY3NzIiwiY29tcG9uZW50cy9fcmVwbGF5LnNjc3MiLCJjb21wb25lbnRzL19lcnJvci5zY3NzIiwidmFyaWFudHMvX3BsYXllci1iYXNlLnNjc3MiLCJ2YXJpYW50cy9fcGxheWVyLWxhcmdlLnNjc3MiLCJ2YXJpYW50cy9fcGxheWVyLW1lZGl1bS5zY3NzIiwidmFyaWFudHMvX3BsYXllci1zbWFsbC5zY3NzIiwidmFyaWFudHMvX3BsYXllci1uYXRpdmUtbW9iaWxlLnNjc3MiLCJ2YXJpYW50cy9fcGxheWVyLWF1ZGlvLnNjc3MiLCJjb21wb25lbnRzL2F1ZGlvL19wb3N0ZXIuc2NzcyIsImNvbXBvbmVudHMvYXVkaW8vX3ZhcnMuc2NzcyIsImNvbXBvbmVudHMvYXVkaW8vX2Vycm9ycy5zY3NzIiwiY29tcG9uZW50cy9hdWRpby9fdG9wYmFyLnNjc3MiLCJjb21wb25lbnRzL2F1ZGlvL19tZXRhZGF0YS5zY3NzIiwiY29tcG9uZW50cy9hdWRpby9fc2Vla2Jhci5zY3NzIiwiY29tcG9uZW50cy9hdWRpby9fcGxheWJ1dHRvbi5zY3NzIiwiY29tcG9uZW50cy9hdWRpby9fYm90dG9tYmFyLnNjc3MiLCJjb21wb25lbnRzL2F1ZGlvL192b2x1bWVzbGlkZXIuc2NzcyIsImNvbXBvbmVudHMvYXVkaW8vX3JlcGxheS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQUFDO0VBQ2Ysb0RBQW9ELENBQUMsU0FBUztBQUFDLCtYQUErWCxhQUFhO0FBQUMsc0JBQXNCLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsVUFBVTtBQUFDLHdCQUF3QixtQkFBbUI7QUFBQyxtQ0FBbUMsWUFBWTtBQUFDLHlFQUF5RSxXQUFXO0FBQUMsb0ZBQW9GLGtEQUFrRCxDQUFDLDBDQUEwQztBQUFDLDhHQUE4Ryx1QkFBdUIsQ0FBQyxlQUFlO0FBQUMsdUNBQXVDLDBJQUEwSTtBQUFDLHdEQUF3RCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxjQUFjO0FBQUMscUJBQW1ILDhGQUE2RCxDQUE3RCw2REFBNkQsQ0FBQyxRQUFRLENBQUMsNkJBQTZCLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyw0Q0FBNEMsQ0FBQyxvQ0FBb0MsQ0FBQyxVQUFVO0FBQUMsa0NBQWtDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxzQkFBc0I7QUFBQywySUFBMkksbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLGFBQWE7QUFBQywyREFBMkQsY0FBYztBQUFDLHNF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 */
@@ -45,7 +45,7 @@
45
45
  }
46
46
  }
47
47
 
48
- &.bmpui-player-state-prepared {
48
+ &.bmpui-player-state-prepared:not(.bmpui-native-mobile) {
49
49
  &.bmpui-controls-shown {
50
50
  .bmpui-ui-titlebar,
51
51
  .bmpui-ui-controlbar {
File without changes
@@ -1 +0,0 @@
1
- "use strict";
File without changes