@npo/player 1.10.3 → 1.11.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/README.md +5 -207
- package/lib/js/drm/verifydrm.js +3 -3
- package/lib/js/drm/verifydrm.js.map +1 -1
- package/lib/js/drm/verifydrm.test.js +1 -1
- package/lib/js/fragments/setfragments.js +25 -22
- package/lib/js/fragments/setfragments.js.map +1 -1
- package/lib/js/playeractions/handlers/error.js +1 -1
- package/lib/js/playeractions/handlers/error.js.map +1 -1
- package/lib/js/tracking/handlers/eventbinding.js +1 -1
- package/lib/js/tracking/handlers/eventbinding.js.map +1 -1
- package/lib/js/ui/components/buttons.d.ts +5 -5
- package/lib/js/ui/components/buttons.js +11 -7
- package/lib/js/ui/components/buttons.js.map +1 -1
- package/lib/js/ui/components/controlbar.js +2 -2
- package/lib/js/ui/components/controlbar.js.map +1 -1
- package/lib/js/ui/components/ctabar.d.ts +1 -1
- package/lib/js/ui/components/ctabar.js.map +1 -1
- package/lib/js/ui/components/nativemobile/buttons.d.ts +2 -2
- package/lib/js/ui/components/nativemobile/buttons.js +8 -10
- package/lib/js/ui/components/nativemobile/buttons.js.map +1 -1
- package/lib/js/ui/components/nativemobile/controlbar.js +2 -2
- package/lib/js/ui/components/nativemobile/controlbar.js.map +1 -1
- package/lib/js/ui/components/nativemobile/ctabar.d.ts +1 -1
- package/lib/js/ui/components/nativemobile/ctabar.js.map +1 -1
- package/lib/js/ui/components/nativemobile/playnext.d.ts +1 -1
- package/lib/js/ui/components/nativemobile/playnext.js.map +1 -1
- package/lib/js/ui/components/nativemobile/topbar.d.ts +2 -2
- package/lib/js/ui/components/nativemobile/topbar.js +9 -1
- package/lib/js/ui/components/nativemobile/topbar.js.map +1 -1
- package/lib/js/ui/components/playnext.d.ts +1 -1
- package/lib/js/ui/components/playnext.js.map +1 -1
- package/lib/js/ui/components/settingspanel.js +6 -4
- package/lib/js/ui/components/settingspanel.js.map +1 -1
- package/lib/js/ui/components/topbar.d.ts +2 -1
- package/lib/js/ui/components/topbar.js +10 -2
- package/lib/js/ui/components/topbar.js.map +1 -1
- package/lib/js/ui/handlers/listboxhandlers.d.ts +2 -2
- package/lib/js/ui/handlers/listboxhandlers.js +2 -2
- package/lib/js/ui/handlers/listboxhandlers.js.map +1 -1
- package/lib/js/ui/handlers/timecontrolhandlers.d.ts +2 -2
- package/lib/js/ui/handlers/timecontrolhandlers.js +10 -14
- package/lib/js/ui/handlers/timecontrolhandlers.js.map +1 -1
- package/lib/js/ui/nativemobileuifactory.js +5 -1
- package/lib/js/ui/nativemobileuifactory.js.map +1 -1
- package/lib/js/ui/uicontainer.d.ts +2 -1
- package/lib/js/ui/uicontainer.js +2 -3
- package/lib/js/ui/uicontainer.js.map +1 -1
- package/lib/npoplayer.js +29 -16
- package/lib/npoplayer.js.map +1 -1
- package/lib/package.json +7 -6
- package/lib/src/js/ads/ster.d.ts +4 -0
- package/lib/src/js/ads/ster.test.d.ts +1 -0
- package/lib/src/js/api/getstreamobject.d.ts +3 -0
- package/lib/src/js/cdnproviders.d.ts +1 -0
- package/lib/src/js/checks/safari.d.ts +1 -0
- package/lib/src/js/checks/safari.test.d.ts +1 -0
- package/lib/src/js/drm/verifydrm.d.ts +4 -0
- package/lib/src/js/drm/verifydrm.test.d.ts +1 -0
- package/lib/src/js/fragments/setfragments.d.ts +4 -0
- package/lib/src/js/playeractions/customerrors.test.d.ts +1 -0
- package/lib/src/js/playeractions/handlers/customerrors.d.ts +50 -0
- package/lib/src/js/playeractions/handlers/error.d.ts +3 -0
- package/lib/src/js/playeractions/handlers/error.test.d.ts +1 -0
- package/lib/src/js/playeractions/handlers/handleoffsets.d.ts +6 -0
- package/lib/src/js/playeractions/handlers/handleoffsets.test.d.ts +1 -0
- package/lib/src/js/playeractions/handlers/processplayerconfig.d.ts +3 -0
- package/lib/src/js/playeractions/handlers/resolvekeypress.d.ts +3 -0
- package/lib/src/js/playeractions/playeractions.d.ts +4 -0
- package/lib/src/js/tracking/handlers/eventbinding.d.ts +3 -0
- package/lib/src/js/tracking/handlers/eventlogging.d.ts +2 -0
- package/lib/src/js/tracking/handlers/playertrackerinit.d.ts +4 -0
- package/lib/src/js/tracking/handlers/playertrackerstart.d.ts +1 -0
- package/lib/src/js/tracking/playertracker.d.ts +4 -0
- package/lib/src/js/ui/components/adbutton.d.ts +7 -0
- package/lib/src/js/ui/components/adlabel.d.ts +7 -0
- package/lib/src/js/ui/components/buttons.d.ts +30 -0
- package/lib/src/js/ui/components/controlbar.d.ts +3 -0
- package/lib/src/js/ui/components/ctabar.d.ts +9 -0
- package/lib/src/js/ui/components/nativemobile/addFragments.d.ts +1 -0
- package/lib/src/js/ui/components/nativemobile/buttons.d.ts +13 -0
- package/lib/src/js/ui/components/nativemobile/controlbar.d.ts +3 -0
- package/lib/src/js/ui/components/nativemobile/ctabar.d.ts +10 -0
- package/lib/src/js/ui/components/nativemobile/playnext.d.ts +10 -0
- package/lib/src/js/ui/components/nativemobile/titlebar.d.ts +2 -0
- package/lib/src/js/ui/components/nativemobile/topbar.d.ts +3 -0
- package/lib/src/js/ui/components/playnext.d.ts +11 -0
- package/lib/src/js/ui/components/settingspanel.d.ts +4 -0
- package/lib/src/js/ui/components/shared/playnextscreen.d.ts +2 -0
- package/lib/src/js/ui/components/titlebar.d.ts +3 -0
- package/lib/src/js/ui/components/topbar.d.ts +3 -0
- package/lib/src/js/ui/handlers/listboxhandlers.d.ts +5 -0
- package/lib/src/js/ui/handlers/nicamhandler.d.ts +2 -0
- package/lib/src/js/ui/handlers/nicamhandler.test.d.ts +1 -0
- package/lib/src/js/ui/handlers/playnexthandlers.d.ts +0 -0
- package/lib/src/js/ui/handlers/timecontrolhandlers.d.ts +3 -0
- package/lib/src/js/ui/nativemobileuicontainer.d.ts +6 -0
- package/lib/src/js/ui/nativemobileuifactory.d.ts +3 -0
- package/lib/src/js/ui/uicontainer.d.ts +4 -0
- package/lib/src/js/utilities/localizationconfig.d.ts +6 -0
- package/lib/src/js/utilities/printversion.d.ts +1 -0
- package/lib/src/js/utilities/utilities.d.ts +10 -0
- package/lib/src/npoplayer.d.ts +45 -0
- package/lib/src/npoplayer.test.d.ts +1 -0
- package/lib/src/types/classes.d.ts +4 -0
- package/lib/src/types/interfaces.d.ts +108 -0
- package/lib/types/interfaces.d.ts +2 -0
- package/lib/types/interfaces.js.map +1 -1
- package/package.json +7 -6
- package/src/scss/components/_seekbar.scss +2 -4
- package/src/scss/npoplayer.css +596 -1
- package/src/scss/npoplayer.scss +1 -1
- package/src/scss/variants/_player-base.scss +20 -1
- package/src/scss/vars/_fonts.scss +9 -9
- package/src/scss/vars/_icons.scss +1 -0
package/README.md
CHANGED
|
@@ -1,216 +1,14 @@
|
|
|
1
1
|
[](https://npo.nl)
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# NPO Player
|
|
4
4
|
|
|
5
|
-
The video player library for NPO and other broadcasters.
|
|
5
|
+
The video player library for NPO (Nederlandse Publieke Omroep) and other broadcasters.
|
|
6
6
|
|
|
7
7
|
# Documentation
|
|
8
|
-
|
|
9
|
-
# Basic usage
|
|
8
|
+
Extensive and up-to-date documentation is available at https://docs.npoplayer.nl
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
player.loadStream(jwt);
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
The parameters `container`, `playerConfig`, `npotag` (optional), `npotag` (optional), `jwt` passed to the functions need to be defined as below.
|
|
17
|
-
|
|
18
|
-
# JWT
|
|
19
|
-
|
|
20
|
-
The player library makes use of the JSON Web Token (JWT) technology. More information about using JWT can be found at this website [JWT.IO - JSON Web Tokens Introduction]
|
|
21
|
-
|
|
22
|
-
**Create your own unique JWT for each PRID**
|
|
23
|
-
|
|
24
|
-
To be able to load your stream for any player you need to make use of a [self generated JWT].
|
|
25
|
-
|
|
26
|
-
**JWT header:**
|
|
27
|
-
|
|
28
|
-
```json
|
|
29
|
-
{
|
|
30
|
-
"alg": "HS256",
|
|
31
|
-
"typ": "JWT"
|
|
32
|
-
}
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
**Payload:**
|
|
36
|
-
|
|
37
|
-
```js
|
|
38
|
-
const timestamp = Math.floor(Date.now() / 1000);
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
```json
|
|
42
|
-
{
|
|
43
|
-
"iat": timestamp,
|
|
44
|
-
"sub": "<< PRID >>",
|
|
45
|
-
"iss": "<< YOUR BROADCASTER NAME",
|
|
46
|
-
"cip": "<< IP FROM CLIENT >>",
|
|
47
|
-
"age": "26"
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
**Sign JWT:**
|
|
52
|
-
|
|
53
|
-
```js
|
|
54
|
-
HMACSHA256(
|
|
55
|
-
base64UrlEncode(header) + '.' + base64UrlEncode(payload),
|
|
56
|
-
your - 256 - bit - secret
|
|
57
|
-
);
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
**Example of generated JWT:**
|
|
61
|
-
|
|
62
|
-
```text
|
|
63
|
-
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
For every new request you make to the player library a new JWT needs to be sent to the NPO player library
|
|
67
|
-
|
|
68
|
-
## Player Container
|
|
69
|
-
|
|
70
|
-
The player SDK needs to know within which container it should render its video and UI components. In this example a `div`-element is used with a unique `id="my-player"`, which is the recommended approach in general.
|
|
71
|
-
|
|
72
|
-
```html
|
|
73
|
-
<div id="my-player"></div>
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
## Create a Player Configuration
|
|
77
|
-
|
|
78
|
-
A minimal player configuration requires the `key` property to be present, which expects a Player License Key. When served on `localhost`, no valid player license key is required to simplify development efforts.
|
|
79
|
-
|
|
80
|
-
```js
|
|
81
|
-
let playerConfig = {
|
|
82
|
-
key: '<< KEY >>'
|
|
83
|
-
};
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
You can however add optional values to customize the players' behaviour. For player events, (for now) you need to import it from the Bitmovin library with `import {PlayerEvent} from "bitmovin-player";`
|
|
87
|
-
|
|
88
|
-
```js
|
|
89
|
-
let playerConfig = {
|
|
90
|
-
key: '<< KEY >>',
|
|
91
|
-
analytics: {
|
|
92
|
-
key: '<< ANALYTICS KEY >>'
|
|
93
|
-
},
|
|
94
|
-
playback: {
|
|
95
|
-
muted: false,
|
|
96
|
-
autoplay: true
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## Create an NPO Tag instance
|
|
102
|
-
|
|
103
|
-
For analytics purposes you can add and existing NPO Tag instance to the player or properties to create one.
|
|
104
|
-
|
|
105
|
-
```js
|
|
106
|
-
let npotag = {
|
|
107
|
-
brand: '[YOUR_COMPANY]',
|
|
108
|
-
brand_id: 1,
|
|
109
|
-
platform: '[web/ios/android]',
|
|
110
|
-
platform_version: '[YOUR_PLATFORM_VERSION]',
|
|
111
|
-
debug: false
|
|
112
|
-
};
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## Optional: Options
|
|
116
|
-
|
|
117
|
-
There are several options you can use for the players behaviour.
|
|
118
|
-
|
|
119
|
-
```js
|
|
120
|
-
let options = {
|
|
121
|
-
//properties
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
player.loadStream(jwt, options);
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
**Available properties**
|
|
128
|
-
`sourceConfig` - object: used for defining information about the source
|
|
129
|
-
`fragments` - object: used for defining and playing fragments
|
|
130
|
-
`endpoint` - string: the endpoint used to get the stream-link
|
|
131
|
-
|
|
132
|
-
The following properties need to be added directly into the options object.
|
|
133
|
-
|
|
134
|
-
**Source configuration**
|
|
135
|
-
The source configuration is used for defining information about the source like title, description, dash streamurl, hls streamurl, drm, subtitles, thumbnails etc.
|
|
136
|
-
The configuration is created by the library but you can overwrite this by adding a custom config to the `loadStream` function
|
|
137
|
-
|
|
138
|
-
```js
|
|
139
|
-
let options = {
|
|
140
|
-
/* ... */
|
|
141
|
-
sourceConfig: {
|
|
142
|
-
title: 'Video title',
|
|
143
|
-
description: 'Video description',
|
|
144
|
-
poster: '<POSTER IMAGE URL>',
|
|
145
|
-
thumbnailTrack: '<THUMBNAIL TRACK URL>',
|
|
146
|
-
subtitleTracks: [
|
|
147
|
-
{
|
|
148
|
-
url: '<SUBTITLE TRACK URL>'
|
|
149
|
-
}
|
|
150
|
-
],
|
|
151
|
-
analytics: {
|
|
152
|
-
title: 'Program title - Episode title'
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
};
|
|
156
|
-
|
|
157
|
-
player.loadStream(jwt, options);
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
**Fragments**
|
|
161
|
-
If you want to load a fragment of a video you can use the fragments property:
|
|
162
|
-
(currently there is only support for one fragment)
|
|
163
|
-
|
|
164
|
-
```js
|
|
165
|
-
let options = {
|
|
166
|
-
/* ... */
|
|
167
|
-
fragments: {
|
|
168
|
-
sections: [{ time: 500, duration: 610, title: 'Section 1' }]
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
|
|
172
|
-
player.loadStream(jwt, options);
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
## Create a new Player Instance
|
|
176
|
-
|
|
177
|
-
Initiate a new player instance by providing it with a reference to the DOM element of your player-div and the player configuration object you defined earlier.
|
|
178
|
-
Then load a video or stream with the generated JWT and an optional sourceConfig.
|
|
179
|
-
|
|
180
|
-
```js
|
|
181
|
-
let container = document.getElementById('my-player');
|
|
182
|
-
let jwt = '<< OWN CREATED JWT >>';
|
|
183
|
-
|
|
184
|
-
let player = new npoplayer(container, options);
|
|
185
|
-
player.loadStream(jwt);
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
## Customize the player colors
|
|
189
|
-
|
|
190
|
-
The player colors can be edited by using the CSS variables that are exposed by the player. The variables are prefixed with `--npo-player-`.
|
|
191
|
-
The variables can be used in the following way:
|
|
192
|
-
|
|
193
|
-
```css
|
|
194
|
-
#my-player {
|
|
195
|
-
--npo-player-white: #ffffff;
|
|
196
|
-
--npo-player-primarycolor: #ff6d00;
|
|
197
|
-
--npo-player-secondarycolor: #1f3353;
|
|
198
|
-
--npo-player-textcolor: #ffffff;
|
|
199
|
-
--npo-player-bottomcolor: linear-gradient(
|
|
200
|
-
180deg,
|
|
201
|
-
transparent,
|
|
202
|
-
rgba(30, 30, 30, 0.7)
|
|
203
|
-
); //The gradient color "glow" at the bottom of the player
|
|
204
|
-
--npo-player-topcolor: linear-gradient(
|
|
205
|
-
0deg,
|
|
206
|
-
transparent,
|
|
207
|
-
rgba(0, 0, 0, 0.7)
|
|
208
|
-
); //The gradient color "glow" at the top of the player
|
|
209
|
-
--npo-player-bufferingcolor: rgba(255, 109, 0, 0);
|
|
210
|
-
}
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
Where `#my-player` is the container element that the player is initialized in.
|
|
10
|
+
# Changelog
|
|
11
|
+
The changelog is available at https://docs.npoplayer.nl/implementation/web/changelog/
|
|
214
12
|
|
|
215
13
|
## License
|
|
216
14
|
|
package/lib/js/drm/verifydrm.js
CHANGED
|
@@ -6,7 +6,7 @@ export async function verifyDRM(npoplayer, player, payload) {
|
|
|
6
6
|
const drmJsonTimestamp = base64ToObject(drmBase64).iat;
|
|
7
7
|
const currentTime = (Date.now() / 1000) | 0;
|
|
8
8
|
if (drmJsonTimestamp >= currentTime) {
|
|
9
|
-
void player
|
|
9
|
+
void player.load(npoplayer.sourceConfig);
|
|
10
10
|
}
|
|
11
11
|
else {
|
|
12
12
|
console.error('Er ging iets mis. Item wordt herladen.');
|
|
@@ -15,11 +15,11 @@ export async function verifyDRM(npoplayer, player, payload) {
|
|
|
15
15
|
const clonedStreamObject = JSON.parse(JSON.stringify(npoplayer.streamObject));
|
|
16
16
|
clonedStreamObject.stream.drmToken = newDrmToken;
|
|
17
17
|
npoplayer.streamObject = clonedStreamObject;
|
|
18
|
-
void player
|
|
18
|
+
void player.load(npoplayer.sourceConfig);
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
else {
|
|
22
|
-
void player
|
|
22
|
+
void player.load(npoplayer.sourceConfig);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=verifydrm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifydrm.js","sourceRoot":"","sources":["../../../../src/js/drm/verifydrm.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAKxD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAE,SAAoB,EAAE,MAAiB,EAAE,OAAmB;IACzF,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE;QAChD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACrE,MAAM,gBAAgB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,CAAA;QACtD,MAAM,WAAW,GAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QAEnD,IAAI,gBAAgB,IAAI,WAAW,EAAE;YACjC,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"verifydrm.js","sourceRoot":"","sources":["../../../../src/js/drm/verifydrm.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAKxD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAE,SAAoB,EAAE,MAAiB,EAAE,OAAmB;IACzF,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE;QAChD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACrE,MAAM,gBAAgB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,CAAA;QACtD,MAAM,WAAW,GAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QAEnD,IAAI,gBAAgB,IAAI,WAAW,EAAE;YACjC,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;SAC3C;aAAM;YAEH,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;YAEvD,MAAM,kBAAkB,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YACpE,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAA;YAGtD,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CACjC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,CACzC,CAAA;YACD,kBAAkB,CAAC,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAA;YAEhD,SAAS,CAAC,YAAY,GAAG,kBAAkB,CAAA;YAC3C,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;SAC3C;KACJ;SAAM;QACH,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;KAC3C;AACL,CAAC"}
|
|
@@ -2,64 +2,67 @@ import { PlayerEvent } from 'bitmovin-player';
|
|
|
2
2
|
export async function setFragments(player, uiManager, fragments) {
|
|
3
3
|
const fragment = fragments.sections[0];
|
|
4
4
|
const playFragmentFromStart = () => {
|
|
5
|
-
player
|
|
6
|
-
if (player
|
|
7
|
-
void player
|
|
5
|
+
player.seek(fragment.start);
|
|
6
|
+
if (player.isPaused())
|
|
7
|
+
void player.play();
|
|
8
8
|
};
|
|
9
|
+
const unplayableClass = 'seekbar-marker-unplayable';
|
|
9
10
|
const addMarkers = () => {
|
|
10
11
|
const timelineMarkers = [
|
|
11
12
|
{
|
|
12
13
|
time: 0,
|
|
13
14
|
duration: fragment.start,
|
|
14
15
|
title: 'Niet beschikbaar',
|
|
15
|
-
cssClasses: [
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
time: fragment.start,
|
|
19
|
-
duration: fragment.end - fragment.start,
|
|
20
|
-
title: fragment.title,
|
|
21
|
-
cssClasses: ['seekbar-marker-interval']
|
|
16
|
+
cssClasses: [unplayableClass]
|
|
22
17
|
},
|
|
23
18
|
{
|
|
24
19
|
time: fragment.end,
|
|
25
20
|
duration: 10000000,
|
|
26
21
|
title: 'Niet beschikbaar',
|
|
27
|
-
cssClasses: [
|
|
22
|
+
cssClasses: [unplayableClass]
|
|
28
23
|
},
|
|
29
24
|
];
|
|
30
25
|
timelineMarkers.forEach(function (marker) {
|
|
31
|
-
uiManager
|
|
26
|
+
uiManager.addTimelineMarker(marker);
|
|
32
27
|
});
|
|
33
28
|
playFragmentFromStart();
|
|
34
29
|
};
|
|
35
30
|
const removeMarkers = () => {
|
|
36
|
-
uiManager
|
|
37
|
-
uiManager
|
|
31
|
+
uiManager.getTimelineMarkers().forEach(marker => {
|
|
32
|
+
uiManager.removeTimelineMarker(marker);
|
|
38
33
|
});
|
|
39
34
|
};
|
|
35
|
+
const setTitle = () => {
|
|
36
|
+
const element = document.querySelector('.bmpui-npo-player .bmpui-seekbar-label-title');
|
|
37
|
+
if (element !== null && element.textContent === '') {
|
|
38
|
+
element.textContent = fragment.title || '';
|
|
39
|
+
}
|
|
40
|
+
};
|
|
40
41
|
const checkFunction = (e) => {
|
|
41
42
|
if (fragment == null)
|
|
42
43
|
return;
|
|
43
44
|
if (e.time > fragment.end) {
|
|
44
|
-
player
|
|
45
|
-
player
|
|
45
|
+
player.seek(Math.max(fragment.start, fragment.end));
|
|
46
|
+
player.pause();
|
|
46
47
|
}
|
|
47
48
|
else if (e.time < fragment.start) {
|
|
48
|
-
player
|
|
49
|
+
player.seek(fragment.start);
|
|
49
50
|
}
|
|
51
|
+
setTitle();
|
|
50
52
|
};
|
|
51
53
|
const seekFunction = (e) => {
|
|
52
54
|
if (fragment == null)
|
|
53
55
|
return;
|
|
54
56
|
const seekTarget = e.seekTarget ? e.seekTarget : e.to.time;
|
|
55
57
|
if (seekTarget > fragment.end || seekTarget < fragment.start) {
|
|
56
|
-
player
|
|
58
|
+
player.seek(Math.max(fragment.start, Math.min(fragment.end, seekTarget)));
|
|
57
59
|
}
|
|
60
|
+
setTitle();
|
|
58
61
|
};
|
|
59
|
-
player
|
|
60
|
-
player
|
|
61
|
-
player
|
|
62
|
-
player
|
|
62
|
+
player.off(PlayerEvent.TimeChanged, checkFunction);
|
|
63
|
+
player.off(PlayerEvent.Seek, seekFunction);
|
|
64
|
+
player.on(PlayerEvent.TimeChanged, checkFunction);
|
|
65
|
+
player.on(PlayerEvent.Seek, seekFunction);
|
|
63
66
|
removeMarkers();
|
|
64
67
|
addMarkers();
|
|
65
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setfragments.js","sourceRoot":"","sources":["../../../../src/js/fragments/setfragments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAkB,MAAM,iBAAiB,CAAA;AAIxE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAE,MAAiB,EAAE,SAAoB,EAAE,SAAoB;IAC7F,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAEtC,MAAM,qBAAqB,GAAG,GAAG,EAAE;QAC/B,MAAM,
|
|
1
|
+
{"version":3,"file":"setfragments.js","sourceRoot":"","sources":["../../../../src/js/fragments/setfragments.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ export function handlePlayerError(player, uiComponents, input) {
|
|
|
4
4
|
message = input;
|
|
5
5
|
}
|
|
6
6
|
console.error('Er is iets mis met het ophalen van de stream.', input);
|
|
7
|
-
player
|
|
7
|
+
player.unload();
|
|
8
8
|
if (uiComponents.controlbar)
|
|
9
9
|
uiComponents.controlbar.hide();
|
|
10
10
|
if (uiComponents.errorMessageOverlay == null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../src/js/playeractions/handlers/error.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,iBAAiB,CAC7B,MAAiB,EACjB,YAA0B,EAC1B,KAAU;IAEV,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC3B,OAAO,GAAG,KAAK,CAAC;KACnB;IAED,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;IAEtE,MAAM,
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../src/js/playeractions/handlers/error.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,iBAAiB,CAC7B,MAAiB,EACjB,YAA0B,EAC1B,KAAU;IAEV,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC3B,OAAO,GAAG,KAAK,CAAC;KACnB;IAED,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;IAEtE,MAAM,CAAC,MAAM,EAAE,CAAC;IAEhB,IAAI,YAAY,CAAC,UAAU;QAAE,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAE5D,IAAI,YAAY,CAAC,mBAAmB,IAAI,IAAI;QAAE,OAAO;IACrD,YAAY,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;IACvC,YAAY,CAAC,mBAA2B,CAAC,UAAU,CAAC,OAAO,CACxD,OAAO,IAAI,kCAAkC,CAChD,CAAC;AACN,CAAC"}
|
|
@@ -14,7 +14,7 @@ export function bindPlayerEvents(npoplayer, player) {
|
|
|
14
14
|
{ event: PlayerEvent.TimeChanged, name: 'time' },
|
|
15
15
|
{
|
|
16
16
|
event: PlayerEvent.ViewModeChanged,
|
|
17
|
-
name: player
|
|
17
|
+
name: player.getViewMode() === ViewMode.Fullscreen
|
|
18
18
|
? 'fullscreen'
|
|
19
19
|
: 'windowed'
|
|
20
20
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventbinding.js","sourceRoot":"","sources":["../../../../../src/js/tracking/handlers/eventbinding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,WAAW,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAUzC,MAAM,UAAU,gBAAgB,CAAE,SAAoB,EAAE,MAAiB;IACrE,IAAI,MAAM,IAAI,IAAI;QAAE,OAAM;IAE1B,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,MAAM,YAAY,GAAG;QACjB,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;QAC5C,EAAE,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE;QAC1D,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE;QACnD,EAAE,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE;QACtD,EAAE,KAAK,EAAE,WAAW,CAAC,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE;QAC7D,EAAE,KAAK,EAAE,WAAW,CAAC,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE;QACzD,EAAE,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;QAChD;YACI,KAAK,EAAE,WAAW,CAAC,eAAe;YAClC,IAAI,EACI,MAAM,
|
|
1
|
+
{"version":3,"file":"eventbinding.js","sourceRoot":"","sources":["../../../../../src/js/tracking/handlers/eventbinding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import { type PlayerAPI } from 'bitmovin-player';
|
|
2
2
|
import { Button, ControlBar } from 'bitmovin-player-ui';
|
|
3
3
|
import type NpoPlayer from '../../../npoplayer';
|
|
4
|
-
export declare function createMiddleButtons(player: PlayerAPI
|
|
4
|
+
export declare function createMiddleButtons(player: PlayerAPI): ControlBar;
|
|
5
5
|
export declare function createRewindButton(player: PlayerAPI | null): Button<{
|
|
6
6
|
cssClass: string;
|
|
7
7
|
}>;
|
|
8
8
|
export declare function createForwardButton(player: PlayerAPI | null): Button<{
|
|
9
9
|
cssClass: string;
|
|
10
10
|
}>;
|
|
11
|
-
export declare function createPlayNextButton(player: PlayerAPI
|
|
11
|
+
export declare function createPlayNextButton(player: PlayerAPI, npoplayer: NpoPlayer): Button<{
|
|
12
12
|
cssClass: string;
|
|
13
13
|
text: string;
|
|
14
14
|
hidden: false;
|
|
15
15
|
}>;
|
|
16
|
-
export declare function createskipIntroButton(player: PlayerAPI
|
|
16
|
+
export declare function createskipIntroButton(player: PlayerAPI): Button<{
|
|
17
17
|
cssClass: string;
|
|
18
18
|
text: string;
|
|
19
19
|
hidden: true;
|
|
20
20
|
}>;
|
|
21
|
-
export declare function createGoBackLiveButton(player: PlayerAPI
|
|
21
|
+
export declare function createGoBackLiveButton(player: PlayerAPI): Button<{
|
|
22
22
|
cssClass: string;
|
|
23
23
|
text: string;
|
|
24
24
|
hidden: true;
|
|
25
25
|
}>;
|
|
26
|
-
export declare function createWatchFromStartButton(player: PlayerAPI
|
|
26
|
+
export declare function createWatchFromStartButton(player: PlayerAPI, npoplayer: NpoPlayer): Button<{
|
|
27
27
|
cssClass: string;
|
|
28
28
|
text: string;
|
|
29
29
|
hidden: true;
|
|
@@ -15,18 +15,22 @@ export function createRewindButton(player) {
|
|
|
15
15
|
const rewindButton = new Button({
|
|
16
16
|
cssClass: 'ui-rewindbutton bmpui-ui-button'
|
|
17
17
|
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
if (player) {
|
|
19
|
+
rewindButton.onClick.subscribe(() => {
|
|
20
|
+
rewind(player);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
21
23
|
return rewindButton;
|
|
22
24
|
}
|
|
23
25
|
export function createForwardButton(player) {
|
|
24
26
|
const forwardButton = new Button({
|
|
25
27
|
cssClass: 'ui-forwardbutton bmpui-ui-button'
|
|
26
28
|
});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
if (player) {
|
|
30
|
+
forwardButton.onClick.subscribe(() => {
|
|
31
|
+
forward(player);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
30
34
|
return forwardButton;
|
|
31
35
|
}
|
|
32
36
|
export function createPlayNextButton(player, npoplayer) {
|
|
@@ -75,7 +79,7 @@ export function createWatchFromStartButton(player, npoplayer) {
|
|
|
75
79
|
hidden: true
|
|
76
80
|
});
|
|
77
81
|
watchFromStartButton.onClick.subscribe(() => {
|
|
78
|
-
if ((player
|
|
82
|
+
if ((player.isLive()) ?? false)
|
|
79
83
|
npoplayer.watchFromStart();
|
|
80
84
|
if (npoplayer.uiComponents.watchFromStartButton)
|
|
81
85
|
npoplayer.uiComponents.watchFromStartButton.hide();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttons.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/buttons.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE7E,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAA;AAEjE,MAAM,UAAU,mBAAmB,CAAE,
|
|
1
|
+
{"version":3,"file":"buttons.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/buttons.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,8 @@ export function createControlBar(npoplayer, settingsPanel) {
|
|
|
11
11
|
const chromeCastButton = new CastToggleButton({
|
|
12
12
|
hidden: true
|
|
13
13
|
});
|
|
14
|
-
|
|
15
|
-
if (
|
|
14
|
+
player?.on(PlayerEvent.CastAvailable, () => {
|
|
15
|
+
if (player.isCastAvailable())
|
|
16
16
|
chromeCastButton.show();
|
|
17
17
|
});
|
|
18
18
|
const controlbar = new ControlBar({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controlbar.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/controlbar.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,OAAO,EACP,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,MAAM,EACN,4BAA4B,EAC5B,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EAEzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAEnE,MAAM,UAAU,gBAAgB,CAC5B,SAAoB,EACpB,aAA4B;IAE5B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAA;IAE/B,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC/C,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAEjD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,YAAY,EAAE,EAAE,CAAC,CAAA;IAC1D,SAAS,CAAC,YAAY,CAAC,OAAO,GAAG,OAAO,CAAA;IAExC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;QAC1C,MAAM,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,
|
|
1
|
+
{"version":3,"file":"controlbar.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/controlbar.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,OAAO,EACP,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,MAAM,EACN,4BAA4B,EAC5B,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EAEzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAEnE,MAAM,UAAU,gBAAgB,CAC5B,SAAoB,EACpB,aAA4B;IAE5B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAA;IAE/B,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC/C,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAEjD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,YAAY,EAAE,EAAE,CAAC,CAAA;IAC1D,SAAS,CAAC,YAAY,CAAC,OAAO,GAAG,OAAO,CAAA;IAExC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;QAC1C,MAAM,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,GAAG,EAAE;QACvC,IAAG,MAAM,CAAC,eAAe,EAAE;YAAE,gBAAgB,CAAC,IAAI,EAAE,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;QAC9B,UAAU,EAAE;YACR,aAAa;YACb,IAAI,SAAS,CAAC;gBACV,UAAU,EAAE;oBACR,IAAI,iBAAiB,CAAC;wBAClB,aAAa,EAAE,qBAAqB,CAAC,WAAW;wBAChD,kBAAkB,EAAE,IAAI;wBACxB,UAAU,EAAE,CAAC,cAAc,CAAC;qBAC/B,CAAC;oBACF,OAAO;oBACP,IAAI,iBAAiB,CAAC;wBAClB,aAAa,EAAE,qBAAqB,CAAC,SAAS;wBAC9C,UAAU,EAAE,CAAC,YAAY,CAAC;qBAC7B,CAAC;iBACL;gBACD,UAAU,EAAE,CAAC,gBAAgB,CAAC;aACjC,CAAC;YACF,IAAI,SAAS,CAAC;gBACV,UAAU,EAAE;oBACR,IAAI,oBAAoB,EAAE;oBAC1B,IAAI,kBAAkB,EAAE;oBACxB,IAAI,YAAY,EAAE;oBAClB,YAAY;oBACZ,aAAa;oBACb,IAAI,MAAM,EAAE;oBACZ,GAAG,CAAC,QAAQ,CAAC,uBAAuB,IAAI,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/I,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1D,gBAAgB;oBAChB,IAAI,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC;oBAC3C,IAAI,sBAAsB,EAAE;iBAC/B;gBACD,UAAU,EAAE,CAAC,mBAAmB,CAAC;aACpC,CAAC;SACL;QACD,UAAU,EAAE,CAAC,sBAAsB,CAAC;KACvC,CAAC,CAAA;IAGF,SAAS,CAAC,YAAY,CAAC,UAAU,GAAG,UAAU,CAAA;IAE9C,OAAO,UAAU,CAAA;AACrB,CAAC"}
|
|
@@ -3,7 +3,7 @@ import type NpoPlayer from '../../../npoplayer';
|
|
|
3
3
|
import { type PlayerAPI } from 'bitmovin-player';
|
|
4
4
|
import { ButtonConfig } from 'bitmovin-player-ui/dist/js/framework/components/button';
|
|
5
5
|
import { LabelConfig } from 'bitmovin-player-ui/dist/js/framework/components/label';
|
|
6
|
-
export declare function createCTABar(player: PlayerAPI
|
|
6
|
+
export declare function createCTABar(player: PlayerAPI, npoplayer: NpoPlayer, variant: string): Container<{
|
|
7
7
|
components: (Button<ButtonConfig> | Label<LabelConfig>)[];
|
|
8
8
|
cssClasses: string[];
|
|
9
9
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ctabar.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/ctabar.ts"],"names":[],"mappings":"AAUA,OAAO,EAAU,SAAS,EAAS,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EACH,sBAAsB,EACtB,0BAA0B,EAC7B,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAczC,MAAM,UAAU,YAAY,CAAE,
|
|
1
|
+
{"version":3,"file":"ctabar.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/ctabar.ts"],"names":[],"mappings":"AAUA,OAAO,EAAU,SAAS,EAAS,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EACH,sBAAsB,EACtB,0BAA0B,EAC7B,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAczC,MAAM,UAAU,YAAY,CAAE,MAAiB,EAAE,SAAoB,EAAE,OAAe;IAClF,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAE1E,IAAI,aAAa,GAAkD;QAC/D,oBAAoB;QACpB,gBAAgB;KACnB,CAAA;IAED,IAAI,OAAO,KAAK,IAAI,EAAE;QAClB,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;QACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;QAC1C,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3B,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC5B,OAAO,CAAC,IAAI,EAAE,CAAA;KACjB;IAED,OAAO,IAAI,SAAS,CAAC;QACjB,UAAU,EAAE,aAAa;QACzB,UAAU,EAAE,CAAC,wBAAwB,CAAC;KACzC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type PlayerAPI } from 'bitmovin-player';
|
|
2
2
|
import { Button, SettingsPanel, SettingsToggleButton } from 'bitmovin-player-ui';
|
|
3
|
-
export declare function createPlayNextButton(player: PlayerAPI
|
|
3
|
+
export declare function createPlayNextButton(player: PlayerAPI): Button<{
|
|
4
4
|
cssClass: string;
|
|
5
5
|
text: string;
|
|
6
6
|
hidden: false;
|
|
@@ -10,4 +10,4 @@ export declare function createWatchFromStartButton(): Button<{
|
|
|
10
10
|
text: string;
|
|
11
11
|
hidden: true;
|
|
12
12
|
}>;
|
|
13
|
-
export declare function createSettingsButton(
|
|
13
|
+
export declare function createSettingsButton(settingsPanel: SettingsPanel): SettingsToggleButton;
|
|
@@ -27,17 +27,15 @@ export function createWatchFromStartButton() {
|
|
|
27
27
|
hidden: true
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
|
-
export function createSettingsButton(
|
|
30
|
+
export function createSettingsButton(settingsPanel) {
|
|
31
31
|
const customSettingsToggleButton = new SettingsToggleButton({ settingsPanel });
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
});
|
|
40
|
-
}
|
|
32
|
+
customSettingsToggleButton.onToggleOn.subscribe(() => {
|
|
33
|
+
const result = sendCustomMessage(CustomMessages.TOGGLE_SETTINGS_PANEL);
|
|
34
|
+
if (result.defaultActionRequired === false) {
|
|
35
|
+
settingsPanel.hide();
|
|
36
|
+
customSettingsToggleButton.off();
|
|
37
|
+
}
|
|
38
|
+
});
|
|
41
39
|
return customSettingsToggleButton;
|
|
42
40
|
}
|
|
43
41
|
//# sourceMappingURL=buttons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttons.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/buttons.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAiB,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAA8B,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE1F,MAAM,UAAU,oBAAoB,
|
|
1
|
+
{"version":3,"file":"buttons.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/buttons.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAiB,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAA8B,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE1F,MAAM,UAAU,oBAAoB,CAAE,MAAiB;IACnD,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC;QAC9B,QAAQ,EACJ,mEAAmE;QACvE,IAAI,EAAE,+CAA+C;QACrD,MAAM,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,IAAI,MAAM,IAAI,IAAI,EAAE;QAChB,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;YAClC,MAAM,MAAM,GAA+B,iBAAiB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;YACzF,IAAI,MAAM,CAAC,qBAAqB,KAAK,IAAI,EAAE;gBACvC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;aAC9B;iBAAM;gBACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;aACnC;QACL,CAAC,CAAC,CAAA;KACL;IAED,OAAO,cAAc,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,0BAA0B;IACtC,OAAO,IAAI,MAAM,CAAC;QACd,QAAQ,EAAE,uDAAuD;QACjE,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,IAAI;KACf,CAAC,CAAA;AACN,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAE,aAA4B;IAC9D,MAAM,0BAA0B,GAAG,IAAI,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAA;IAE9E,0BAA0B,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE;QACjD,MAAM,MAAM,GAA+B,iBAAiB,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAA;QAClG,IAAI,MAAM,CAAC,qBAAqB,KAAK,KAAK,EAAE;YACxC,aAAa,CAAC,IAAI,EAAE,CAAA;YACpB,0BAA0B,CAAC,GAAG,EAAE,CAAA;SACnC;IACL,CAAC,CAAC,CAAA;IAEF,OAAO,0BAA0B,CAAC;AACtC,CAAC"}
|
|
@@ -8,8 +8,8 @@ export function createControlBar(player, settingsPanel) {
|
|
|
8
8
|
const chromeCastButton = new CastToggleButton({
|
|
9
9
|
hidden: true
|
|
10
10
|
});
|
|
11
|
-
player
|
|
12
|
-
if (player
|
|
11
|
+
player.on(PlayerEvent.CastAvailable, () => {
|
|
12
|
+
if (player.isCastAvailable())
|
|
13
13
|
chromeCastButton.show();
|
|
14
14
|
});
|
|
15
15
|
return new ControlBar({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controlbar.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/controlbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EACH,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,OAAO,EACP,YAAY,EAEZ,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,MAAM,EACN,4BAA4B,EAC5B,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAE/D,MAAM,UAAU,gBAAgB,CAC5B,MAAiB,EACjB,aAA4B;IAE5B,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC/C,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAEjD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;QAC1C,MAAM,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,MAAM,
|
|
1
|
+
{"version":3,"file":"controlbar.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/controlbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EACH,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,OAAO,EACP,YAAY,EAEZ,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,MAAM,EACN,4BAA4B,EAC5B,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAE/D,MAAM,UAAU,gBAAgB,CAC5B,MAAiB,EACjB,aAA4B;IAE5B,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC/C,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAEjD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;QAC1C,MAAM,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,GAAG,EAAE;QACtC,IAAG,MAAM,CAAC,eAAe,EAAE;YAAE,gBAAgB,CAAC,IAAI,EAAE,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,OAAO,IAAI,UAAU,CAAC;QAClB,UAAU,EAAE;YACR,aAAa;YACb,IAAI,SAAS,CAAC;gBACV,UAAU,EAAE;oBACR,IAAI,iBAAiB,CAAC;wBAClB,aAAa,EAAE,qBAAqB,CAAC,WAAW;wBAChD,kBAAkB,EAAE,IAAI;wBACxB,UAAU,EAAE,CAAC,cAAc,CAAC;qBAC/B,CAAC;oBACF,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,YAAY,EAAE,EAAE,CAAC;oBAC1C,IAAI,iBAAiB,CAAC;wBAClB,aAAa,EAAE,qBAAqB,CAAC,SAAS;wBAC9C,UAAU,EAAE,CAAC,YAAY,CAAC;qBAC7B,CAAC;iBACL;gBACD,UAAU,EAAE,CAAC,gBAAgB,CAAC;aACjC,CAAC;YACF,IAAI,SAAS,CAAC;gBACV,UAAU,EAAE;oBACR,IAAI,oBAAoB,EAAE;oBAC1B,IAAI,kBAAkB,EAAE;oBACxB,IAAI,YAAY,EAAE;oBAClB,YAAY;oBACZ,aAAa;oBACb,IAAI,MAAM,EAAE;oBACZ,GAAG,CAAC,QAAQ,CAAC,uBAAuB,IAAI,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/I,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1D,gBAAgB;oBAChB,IAAI,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC;oBAC3C,IAAI,sBAAsB,EAAE;iBAC/B;gBACD,UAAU,EAAE,CAAC,mBAAmB,CAAC;aACpC,CAAC;SACL;KACJ,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Container } from 'bitmovin-player-ui';
|
|
2
2
|
import { type PlayerAPI } from 'bitmovin-player';
|
|
3
|
-
export declare function createCTABar(player: PlayerAPI
|
|
3
|
+
export declare function createCTABar(player: PlayerAPI): Container<{
|
|
4
4
|
components: import("bitmovin-player-ui").Button<{
|
|
5
5
|
cssClass: string;
|
|
6
6
|
text: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ctabar.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/ctabar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAGnD,MAAM,UAAU,YAAY,CAAE,
|
|
1
|
+
{"version":3,"file":"ctabar.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/ctabar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAGnD,MAAM,UAAU,YAAY,CAAE,MAAiB;IAC3C,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,oBAAoB,GAAG,0BAA0B,EAAE,CAAA;IAEzD,OAAO,IAAI,SAAS,CAAC;QACjB,UAAU,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;QACpD,UAAU,EAAE,CAAC,wBAAwB,CAAC;KACzC,CAAC,CAAA;AACN,CAAC"}
|