@signageos/front-applet 6.0.0 → 6.1.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 (31) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/dist/bundle.js +1 -1
  3. package/dist/bundle.js.map +1 -1
  4. package/docs/js-api/js-video-stream.md +235 -26
  5. package/es6/FrontApplet/Input/Input.js +7 -1
  6. package/es6/FrontApplet/Input/Input.js.map +1 -1
  7. package/es6/FrontApplet/Stream/IStreamMessage.d.ts +2 -4
  8. package/es6/FrontApplet/Stream/IStreamTrackInfo.d.ts +23 -0
  9. package/es6/FrontApplet/Stream/{IStreamEventListener.js → IStreamTrackInfo.js} +1 -1
  10. package/es6/FrontApplet/Stream/IStreamTrackInfo.js.map +1 -0
  11. package/es6/FrontApplet/Stream/Stream.d.ts +13 -7
  12. package/es6/FrontApplet/Stream/Stream.js +58 -5
  13. package/es6/FrontApplet/Stream/Stream.js.map +1 -1
  14. package/es6/FrontApplet/Stream/streamEventProperties.d.ts +21 -0
  15. package/es6/FrontApplet/Stream/{IStreamEventProperties.js → streamEventProperties.js} +1 -1
  16. package/es6/FrontApplet/Stream/streamEventProperties.js.map +1 -0
  17. package/es6/FrontApplet/Stream/streamEvents.d.ts +13 -0
  18. package/es6/FrontApplet/Stream/streamEvents.js +3 -0
  19. package/es6/FrontApplet/Stream/streamEvents.js.map +1 -0
  20. package/es6/FrontApplet/Stream/streamListeners.d.ts +10 -0
  21. package/es6/FrontApplet/Stream/streamListeners.js +3 -0
  22. package/es6/FrontApplet/Stream/streamListeners.js.map +1 -0
  23. package/es6/FrontApplet/Video/IOptions.d.ts +23 -0
  24. package/package.json +2 -1
  25. package/es6/FrontApplet/Stream/IStreamEvent.d.ts +0 -9
  26. package/es6/FrontApplet/Stream/IStreamEvent.js +0 -5
  27. package/es6/FrontApplet/Stream/IStreamEvent.js.map +0 -1
  28. package/es6/FrontApplet/Stream/IStreamEventListener.d.ts +0 -5
  29. package/es6/FrontApplet/Stream/IStreamEventListener.js.map +0 -1
  30. package/es6/FrontApplet/Stream/IStreamEventProperties.d.ts +0 -10
  31. package/es6/FrontApplet/Stream/IStreamEventProperties.js.map +0 -1
@@ -21,18 +21,27 @@ Methods to play or stop video streams.
21
21
  | `prepare()` | Prepare video stream in the background | 4.7.0 |
22
22
  | `play()` | Start playing video stream | 1.0.18 |
23
23
  | `stop()` | Stop video stream | 1.0.18 |
24
+ | `getTracks()` | Get all tracks of the stream | 6.1.0 |
25
+ | `selectTrack()` | Select track of the stream | 6.1.0 |
26
+ | `resetTrack()` | Reset track of the stream | 6.1.0 |
24
27
  | `onConnected()` | Calls a listener callback when stream connects | 1.0.20 |
25
28
  | `onDisconnected()` | Calls a listener callback when stream disconnects | 1.0.20 |
26
29
  | `onError()` | Calls a listener callback when an unexpected stream error occurs | 1.0.20 |
27
30
  | `onPlay()` | Calls a listener callback when stream starts playing | 5.12.0 |
28
31
  | `onStop()` | Calls a listener callback when stream stops | 5.12.0 |
29
32
  | `onPrepare()` | Calls a listener callback when stream prepares | 5.12.0 |
33
+ | `onTracksChanged()`| Calls a listener callback when stream tracks change | 6.1.0 |
30
34
  :::
31
35
 
32
36
  ::: alert alert--warning
33
37
  Are you using **Samsung Tizen** to play streams? [Read more about limitation and Tizen-specific details](https://docs.signageos.io/hc/en-us/articles/4405387373458).
34
38
  :::
35
39
 
40
+ ::: alert alert--danger
41
+ Be aware version of JS API (v6.0.0+) changed how stream functions `play()` and `prepare()` work. For using an options object
42
+ you need to our latest core app versions. If you are using older core app versions, you need to use deprecated format.
43
+ :::
44
+
36
45
  ## prepare()
37
46
  Calls the internal player and prepares a video stream in memory, so it can later start playing instantaneously.
38
47
 
@@ -49,18 +58,44 @@ If you want to play a video stream in full screen mode, use x = y = 0 and width
49
58
  | `y` | Number | <div class="red">Yes</div> | Stream y-position on the screen |
50
59
  | `width` | Number | <div class="red">Yes</div> | Stream width on the screen |
51
60
  | `height` | Number | <div class="red">Yes</div> | Stream height on the screen |
52
- | `options` | Object | <div class="red">Yes</div> | Additional options for the stream |
61
+ | `options` | Object | <div class="red">Yes</div> | Additional options for the stream |
53
62
  :::
54
63
 
55
64
  ### Options object
56
65
  ::: table-responsive
57
66
  | Key | Type | Required | Description |
58
67
  | ------------ | --------------------------- | :--------------------------: | --------------------------------------------- |
59
- | `protocol` | String | <div class="red">Yes</div> | Protocol that the stream is using |
68
+ | `protocol` | String | <div class="red">Yes</div> | Protocol that the stream is using |
60
69
  |^^|^^|^^| Types: `HLS`, `RTP`, `HTTP`, `UDP`, `RTMP`, `RTSP`. |
61
- | `background` | Boolean | <div class="yellow">No</div> | Prepare stream in the background |
70
+ | `background` | Boolean | <div class="yellow">No</div> | Prepare stream in the background |
71
+ | `trackSelection`| Object | <div class="yellow">No</div> | Track selection options |
72
+ | `drm` | Object | <div class="yellow">No</div> | DRM options |
73
+ :::
74
+
75
+ ### Track selection object
76
+ ::: table-responsive
77
+ | Key | Type | Required | Description |
78
+ | ------------ | --------------------------- | :--------------------------: | --------------------------------------------- |
79
+ | `maxAudioChannelCount` | Number | <div class="yellow">No</div> | Maximum number of audio channels to play |
80
+ | `minVideoSize` | Object | <div class="yellow">No</div> | Minimum video size to play |
81
+ |^^|^^|^^| Object with `width` and `height` properties |
82
+ | `maxVideoSize` | Object | <div class="yellow">No</div> | Maximum video size to play |
83
+ |^^|^^|^^| Object with `width` and `height` properties |
84
+ | `preferredAudioLanguages` | Array of strings | <div class="yellow">No</div> | Preferred audio languages to play |
85
+ | `preferredTextLanguages` | Array of strings | <div class="yellow">No</div> | Preferred text languages to play |
86
+ :::
87
+
88
+ ### DRM object
89
+ ::: table-responsive
90
+ | Key | Type | Required | Description |
91
+ | ------------ | --------------------------- | :--------------------------: | --------------------------------------------- |
92
+ | `scheme` | String | <div class="red">Yes</div> | DRM scheme |
93
+ |^^|^^|^^| Types: `CommonPSSH`, `ClearKey`, `Widevine`, `PlayReady` or own value |
94
+ | `licenseUri` | String | <div class="red">Yes</div> | DRM license URI |
95
+ | `licenseRequestHeaders` | Object | <div class="yellow">No</div> | DRM license request headers |
62
96
  :::
63
97
 
98
+
64
99
  ### Javascript syntax
65
100
  ```javascript
66
101
  // Example with specific protocol type
@@ -118,6 +153,9 @@ If you want to play a video stream in full screen mode, use x = y = 0 and width
118
153
  |^^|^^|^^| Default value: false |
119
154
  | `autoReconnectInterval` | Number | <div class="yellow">No</div> | Interval in miliseconds between reconnect attempts |
120
155
  |^^|^^|^^| Default value: 30000 ms |
156
+ | `volume` | Number | <div class="yellow">No</div> | Volume of the stream |
157
+ | `trackSelection`| Object | <div class="yellow">No</div> | Track selection options |
158
+ | `drm` | Object | <div class="yellow">No</div> | DRM options |
121
159
  :::
122
160
 
123
161
  ### Javascript syntax
@@ -170,6 +208,84 @@ await sos.stream.stop(uri, x, y, width, height);
170
208
  | `height` | Number | <div class="red">Yes</div> | Stream height on the screen |
171
209
  :::
172
210
 
211
+ ## getTracks()
212
+ Get all tracks of the selected stream.
213
+
214
+ ### Javascript syntax
215
+ ```javascript
216
+ const videoId = {
217
+ uri: 'http://example.com/stream.m3u8',
218
+ x: 0,
219
+ y: 0,
220
+ width: 1920,
221
+ height: 1080,
222
+ };
223
+
224
+ const tracks = await sos.stream.getTracks(videoId); // Promise<ITrackInfo[]>
225
+ ```
226
+
227
+ ### Parameters:
228
+ ::: table-responsive
229
+ | Param | Type | Required | Description |
230
+ | -------------- | --------------------------- | :------------------------: | --------------------------------------------- |
231
+ | `videoId` | Object | <div class="red">Yes</div> | Video ID object of selected stream |
232
+ :::
233
+
234
+ ### Example of returned value
235
+ ```javascript
236
+ [
237
+ {
238
+ trackType: 'VIDEO', // string - AUDIO, VIDEO, TEXT
239
+ mimeType: 'video/mp4', // string
240
+ videoSize: { // object
241
+ width: 1920, // number
242
+ height: 1080, // number
243
+ },
244
+ groupId: '1', // string
245
+ trackIndex: 1, // number
246
+ selected: true, // boolean
247
+ language: 'en', // string
248
+ supported: true, // boolean
249
+ }
250
+ ]
251
+ ```
252
+
253
+ ## selectTrack()
254
+ Select track of the selected stream.
255
+
256
+ ### Javascript syntax
257
+ ```javascript
258
+ await sos.stream.selectTrack(videoId, trackType, groupId, trackIndex); // Promise<void>
259
+ ```
260
+
261
+ ### Parameters:
262
+ ::: table-responsive
263
+ | Param | Type | Required | Description |
264
+ | -------------- | --------------------------- | :------------------------: | --------------------------------------------- |
265
+ | `videoId` | Object | <div class="red">Yes</div> | Video ID object of selected stream |
266
+ | `trackType` | String | <div class="red">Yes</div> | Track type - `AUDIO`, `VIDEO`, `TEXT` |
267
+ | `groupId` | String | <div class="red">Yes</div> | Group ID of selected track |
268
+ | `trackIndex` | Number | <div class="red">Yes</div> | Index of selected track |
269
+ :::
270
+
271
+ ## resetTrack()
272
+ Reset track of the selected stream.
273
+
274
+ ### Javascript syntax
275
+ ```javascript
276
+ await sos.stream.resetTrack(videoId, trackType); // Promise<void>
277
+ await sos.stream.resetTrack(videoId, trackType, groupId); // Promise<void>
278
+ ```
279
+
280
+ ### Parameters:
281
+ ::: table-responsive
282
+ | Param | Type | Required | Description |
283
+ | -------------- | --------------------------- | :------------------------: | --------------------------------------------- |
284
+ | `videoId` | Object | <div class="red">Yes</div> | Video ID object of selected stream |
285
+ | `trackType` | String | <div class="red">Yes</div> | Track type - `AUDIO`, `VIDEO`, `TEXT` |
286
+ | `groupId` | String | <div class="yellow">No</div> | Group ID of selected track |
287
+ :::
288
+
173
289
  ## Event onConnected()
174
290
  Calls a listener callback everytime `connected` event is emitted.
175
291
 
@@ -230,38 +346,76 @@ sos.stream.onPrepare((event) => {
230
346
  });
231
347
  ```
232
348
 
349
+ ## Event onTracksChanged()
350
+ Calls a listener callback everytime `tracks_changed` event is emitted.
351
+
352
+ ### Javascript syntax
353
+ ```javascript
354
+ sos.stream.onTracksChanged((event) => {
355
+ // do something
356
+ });
357
+ ```
358
+
233
359
  ## Stream events
234
360
  All stream events have the same format.
235
361
 
236
- `type` property contains string with the event type. Type can be `connected`, `disconnected` or `error`.
362
+ `type` property contains string with the event type. Type can be `connected`, `disconnected`, `error` or `tracks_changed`.
237
363
 
238
364
  `srcArguments` property contains parameters of the source stream, that emitted the event.
239
365
  That way, if multiple streams are playing at once, you can associate the events with each stream instance.
240
366
 
241
- Example event:
367
+ Example of **connected**, **disconnected** event:
242
368
  ```json
243
369
  {
244
- "type": "connected",
370
+ "type": "<type>",
245
371
  "srcArguments": {
246
372
  "uri": "<uri>",
247
373
  "x": 0,
248
374
  "y": 0,
249
375
  "width": 1920,
250
376
  "height": 1080,
251
- "options": {
252
- "protocol": "RTP",
253
- "background": false,
254
- "autoReconnect": true,
255
- "autoReconnectInterval": 30000,
256
- },
377
+ "protocol": "HTTP"
257
378
  }
258
379
  }
259
380
  ```
260
381
 
382
+ Example of **tracks_changed** event:
383
+ ```json
384
+ {
385
+ "type": "tracks_changed",
386
+ "srcArguments": {
387
+ "uri": "<uri>",
388
+ "x": 0,
389
+ "y": 0,
390
+ "width": 1920,
391
+ "height": 1080,
392
+ "tracks": [] // Array of ITrackInfo
393
+ }
394
+ }
395
+ ```
396
+
397
+ Example of **error** event:
398
+ ```json
399
+ {
400
+ "type": "error",
401
+ "srcArguments": {
402
+ "uri": "<uri>",
403
+ "x": 0,
404
+ "y": 0,
405
+ "width": 1920,
406
+ "height": 1080,
407
+ "protocol": "HTTP"
408
+ },
409
+ "errorMessage": "Some error message"
410
+ }
411
+ ```
412
+
261
413
  ## Usage with Typescript
262
414
  You can also use all these methods with [signageOS TypeScript](https://docs.signageos.io/hc/en-us/articles/4405069154962#signageos-typescript).
263
415
 
264
416
  ```typescript
417
+ type StreamProtocol = 'HLS' | 'RTP' | 'HTTP' | 'UDP' | 'RTMP' | 'RTSP';
418
+ type DrmScheme = "CommonPSSH" | "ClearKey" | "Widevine" | "PlayReady" | string;
265
419
  interface StreamEvent {
266
420
  type: 'connected' | 'disconnected' | 'error' | 'stop' | 'prepare' | 'play',
267
421
  srcArguments: {
@@ -270,40 +424,91 @@ interface StreamEvent {
270
424
  y: number;
271
425
  width: number;
272
426
  height: number;
427
+ protocol?: StreamProtocol;
273
428
  },
429
+ }
430
+ interface IVideoProperties {
431
+ uri: string;
432
+ x: number;
433
+ y: number;
434
+ width: number;
435
+ height: number;
436
+ }
437
+ type TrackType = 'AUDIO' | 'VIDEO' | 'TEXT';
438
+ type ITrackInfo = IVideoTrack | IAudioTrack | ITextTrack;
439
+ interface ITrack<T extends TrackType> {
440
+ trackType: T;
441
+ mimeType: string;
442
+ groupId: string;
443
+ trackIndex: number;
444
+ selected: boolean;
445
+ language: string | null;
446
+ supported: boolean;
447
+ }
448
+ interface IVideoTrack extends ITrack<'VIDEO'> {
449
+ videoSize: { width: number; height: number };
450
+ }
451
+ interface IAudioTrack extends ITrack<'AUDIO'> {
452
+ channelCount: number;
453
+ }
454
+ interface ITextTrack extends ITrack<'TEXT'> {
455
+ selection: 'default' | 'forced' | 'autoselect';
456
+ }
457
+ prepare(
458
+ uri: string;
459
+ x: number;
460
+ y: number;
461
+ width: number;
462
+ height: number;
274
463
  options: {
275
- protocol: string;
464
+ protocol: StreamProtocol;
276
465
  background?: boolean;
277
466
  autoReconnect?: boolean;
278
467
  autoReconnectInterval?: number;
468
+ trackSelection?: {
469
+ maxAudioChannelCount?: number;
470
+ minVideoSize?: { width: number; height: number };
471
+ maxVideoSize?: { width: number; height: number };
472
+ preferredAudioLanguages?: string[];
473
+ preferredTextLanguages?: string[];
474
+ };
475
+ drm?: {
476
+ scheme: DrmScheme;
477
+ licenseUri: string;
478
+ licenseRequestHeaders: { [key: string]: string };
479
+ };
279
480
  }
280
- }
481
+ ): Promise<void>;
281
482
  play(
282
- uri: string;
283
- x: number;
284
- y: number;
285
- width: number;
286
- height: number;
483
+ uri: string;
484
+ x: number;
485
+ y: number;
486
+ width: number;
487
+ height: number;
287
488
  options: {
288
- protocol: 'HLS' | 'RTP' | 'HTTP' | 'UDP' | 'RTMP' | 'RTSP';
489
+ protocol: StreamProtocol;
289
490
  background?: boolean;
290
491
  autoReconnect?: boolean;
291
492
  autoReconnectInterval?: number;
292
493
  }
293
494
  ): Promise<void>;
294
495
  stop(
295
- uri: string,
296
- x: number,
297
- y: number,
298
- width: number,
299
- height: number
496
+ uri: string,
497
+ x: number,
498
+ y: number,
499
+ width: number,
500
+ height: number
300
501
  ): Promise<void>;
502
+ getTracks(videoId: IVideoProperties): Promise<ITrackInfo[]>;
503
+ selectTrack(videoId: IVideoProperties, trackType: TrackType, groupId: string, trackIndex: number): Promise<void>;
504
+ resetTrack(videoId: IVideoProperties, trackType: TrackType, groupId?: string): Promise<void>;
301
505
  onConnected(listener: (event: StreamEvent) => void): void;
302
506
  onDisconnected(listener: (event: StreamEvent) => void): void;
303
- onError(listener: (event: StreamEvent) => void): void;
507
+ onError(listener: (event: StreamErrorEvent) => void): void;
304
508
  onPlay(listener: (event: StreamEvent) => void): void;
305
509
  onStop(listener: (event: StreamEvent) => void): void;
306
510
  onPrepare(listener: (event: StreamEvent) => void): void;
511
+ onTracksChanged(listener: (event: StreamTracksChangedEvent) => void): void;
307
512
  ```
308
513
 
309
514
  ## Errors
@@ -315,4 +520,8 @@ Although we are doing our best, following errors may occur when working with the
315
520
  | 41401 | AppletStreamError | Invalid stream protocol type: `protocol` |
316
521
  | 51301 | InternalStreamError | Couldn't stop the stream before playing the new one. |
317
522
  | 51301 | InternalStreamError | Couldn't stop the stream. |
523
+ | 51302 | InternalStreamError | Couldn't prepare the stream. |
524
+ | 51303 | InternalStreamError | Couldn't get stream tracks. |
525
+ | 51304 | InternalStreamError | Couldn't select stream track. |
526
+ | 51305 | InternalStreamError | Couldn't reset stream track. |
318
527
  :::
@@ -39,8 +39,14 @@ class Input {
39
39
  this.eventEmitter.removeAllListeners();
40
40
  }
41
41
  dispatchEventToParent(event) {
42
+ var _a, _b, _c;
42
43
  return __awaiter(this, void 0, void 0, function* () {
43
- this.window.parent.document.dispatchEvent(new KeyboardEvent('keyup', event));
44
+ if ((_c = (_b = (_a = this.window) === null || _a === void 0 ? void 0 : _a.parent) === null || _b === void 0 ? void 0 : _b.document) === null || _c === void 0 ? void 0 : _c.dispatchEvent) {
45
+ this.window.parent.document.dispatchEvent(new KeyboardEvent('keyup', event));
46
+ }
47
+ else {
48
+ console.warn('Parent window or document is not defined');
49
+ }
44
50
  });
45
51
  }
46
52
  getMessage(name) {
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../src/FrontApplet/Input/Input.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAAsC;AAItC,mDAA4C;AAE5C,MAAqB,KAAK;IAIzB,YAA4B,MAAc,EAAU,aAAqB;QAA7C,WAAM,GAAN,MAAM,CAAQ;QAAU,kBAAa,GAAb,aAAa,CAAQ;QACxE,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAY,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;IACpG,CAAC;IAEM,OAAO,CAAC,QAA6B;QAC3C,kBAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAEM,iBAAiB,CAAC,IAAsB;QAC9C,QAAQ,IAAI,CAAC,IAAI,EAAE;YAClB,KAAK,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC5B,MAAM,UAAU,GAAgB;oBAC/B,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;iBACrB,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBAC5C,MAAM;YACP,QAAQ;SACR;IACF,CAAC;IAEM,oBAAoB;QAC1B,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;IACxC,CAAC;IAEa,qBAAqB,CAAC,KAAoB;;YACvD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9E,CAAC;KAAA;IAEO,UAAU,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,KAAK,CAAC,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC;IACrE,CAAC;;AAtCF,wBAuCC;AAtCc,oBAAc,GAAW,OAAO,CAAC"}
1
+ {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../src/FrontApplet/Input/Input.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAAsC;AAItC,mDAA4C;AAE5C,MAAqB,KAAK;IAIzB,YAA4B,MAAc,EAAU,aAAqB;QAA7C,WAAM,GAAN,MAAM,CAAQ;QAAU,kBAAa,GAAb,aAAa,CAAQ;QACxE,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAY,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;IACpG,CAAC;IAEM,OAAO,CAAC,QAA6B;QAC3C,kBAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAEM,iBAAiB,CAAC,IAAsB;QAC9C,QAAQ,IAAI,CAAC,IAAI,EAAE;YAClB,KAAK,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC5B,MAAM,UAAU,GAAgB;oBAC/B,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;iBACrB,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBAC5C,MAAM;YACP,QAAQ;SACR;IACF,CAAC;IAEM,oBAAoB;QAC1B,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;IACxC,CAAC;IAEa,qBAAqB,CAAC,KAAoB;;;YACvD,IAAI,MAAA,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,0CAAE,QAAQ,0CAAE,aAAa,EAAE;gBACjD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;aAC7E;iBAAM;gBACN,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;aACzD;;KACD;IAEO,UAAU,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,KAAK,CAAC,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC;IACrE,CAAC;;AA1CF,wBA2CC;AA1Cc,oBAAc,GAAW,OAAO,CAAC"}
@@ -1,6 +1,4 @@
1
1
  import IMessage from '../IMessage';
2
- import IStreamEventProperties from './IStreamEventProperties';
3
- declare type IStreamMessage = IMessage & IStreamEventProperties & {
4
- errorMessage?: string;
5
- };
2
+ import { IStreamErrorEventProperties, IStreamEventProperties, IStreamTracksChangedEventProperties } from './streamEventProperties';
3
+ declare type IStreamMessage = IMessage & IStreamEventProperties & IStreamErrorEventProperties & IStreamTracksChangedEventProperties;
6
4
  export default IStreamMessage;
@@ -0,0 +1,23 @@
1
+ export declare type TrackType = 'TEXT' | 'AUDIO' | 'VIDEO';
2
+ export declare type ITrackInfo = ITrackVideoInfo | ITrackAudioInfo | ITrackTextInfo;
3
+ export interface ITrack<T extends TrackType> {
4
+ trackType: T;
5
+ mimeType: string;
6
+ groupId: string;
7
+ trackIndex: number;
8
+ selected: boolean;
9
+ language: string | null;
10
+ supported: boolean;
11
+ }
12
+ export interface ITrackVideoInfo extends ITrack<'VIDEO'> {
13
+ videoSize: {
14
+ width: number;
15
+ height: number;
16
+ };
17
+ }
18
+ export interface ITrackAudioInfo extends ITrack<'AUDIO'> {
19
+ channelCount: number;
20
+ }
21
+ export interface ITrackTextInfo extends ITrack<'TEXT'> {
22
+ selection: string[];
23
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IStreamEventListener.js.map
3
+ //# sourceMappingURL=IStreamTrackInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IStreamTrackInfo.js","sourceRoot":"","sources":["../../../src/FrontApplet/Stream/IStreamTrackInfo.ts"],"names":[],"mappings":""}
@@ -1,18 +1,24 @@
1
1
  import IPostMessage from '../IPostMessage';
2
2
  import StreamProtocol from './StreamProtocol';
3
3
  import IStreamMessage from './IStreamMessage';
4
- import IStreamEventListener from './IStreamEventListener';
5
- import { IStreamOptions } from '../Video/IOptions';
4
+ import { IStreamOptions, IStreamPrepareOptions } from '../Video/IOptions';
5
+ import { ITrackInfo, TrackType } from './IStreamTrackInfo';
6
+ import { IStreamErrorEventListener, IStreamEventListener, IStreamTracksChangedEventListener } from './streamListeners';
7
+ import IVideoProperties from '../Video/IVideoProperties';
6
8
  export default class Stream {
7
9
  private messagePrefix;
8
10
  private postMessage;
9
11
  static MESSAGE_PREFIX: string;
10
12
  private eventEmitter;
11
- constructor(messagePrefix: string, postMessage: IPostMessage<void>);
12
- prepare(uri: string, x: number, y: number, width: number, height: number, options?: IStreamOptions | keyof typeof StreamProtocol): Promise<void>;
13
- play(uri: string, x: number, y: number, width: number, height: number, options?: IStreamOptions | keyof typeof StreamProtocol): Promise<void>;
14
- stop(uri: string, x: number, y: number, width: number, height: number): Promise<void>;
15
- onError(listener: IStreamEventListener<'error'>): void;
13
+ constructor(messagePrefix: string, postMessage: IPostMessage<any>);
14
+ prepare(uri: string, x: number, y: number, width: number, height: number, options?: IStreamPrepareOptions | keyof typeof StreamProtocol): Promise<any>;
15
+ play(uri: string, x: number, y: number, width: number, height: number, options?: IStreamOptions | keyof typeof StreamProtocol): Promise<any>;
16
+ stop(uri: string, x: number, y: number, width: number, height: number): Promise<any>;
17
+ getTracks(videoId: IVideoProperties): Promise<ITrackInfo[]>;
18
+ selectTrack(videoId: IVideoProperties, trackType: TrackType, groupId: string, trackIndex: number): Promise<void>;
19
+ resetTrack(videoId: IVideoProperties, trackType: TrackType, groupId?: string): Promise<void>;
20
+ onTracksChanged(listener: IStreamTracksChangedEventListener): void;
21
+ onError(listener: IStreamErrorEventListener): void;
16
22
  onConnected(listener: IStreamEventListener<'connected'>): void;
17
23
  onDisconnected(listener: IStreamEventListener<'disconnected'>): void;
18
24
  onPrepare(listener: IStreamEventListener<'prepare'>): void;
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  const events_1 = require("events");
4
13
  const StreamProtocol_1 = require("./StreamProtocol");
@@ -29,7 +38,7 @@ class Stream {
29
38
  y,
30
39
  width,
31
40
  height,
32
- options: streamOptions,
41
+ protocol: streamOptions.protocol,
33
42
  },
34
43
  });
35
44
  return this.postMessage({
@@ -73,7 +82,7 @@ class Stream {
73
82
  y,
74
83
  width,
75
84
  height,
76
- options: streamOptions,
85
+ protocol: streamOptions.protocol,
77
86
  },
78
87
  });
79
88
  return this.postMessage({
@@ -108,6 +117,36 @@ class Stream {
108
117
  height,
109
118
  });
110
119
  }
120
+ getTracks(videoId) {
121
+ return __awaiter(this, void 0, void 0, function* () {
122
+ Validate_1.default({ videoId }).required().object();
123
+ const { tracks } = yield this.postMessage({ type: this.getMessage('get_tracks'), videoId });
124
+ return tracks;
125
+ });
126
+ }
127
+ selectTrack(videoId, trackType, groupId, trackIndex) {
128
+ return __awaiter(this, void 0, void 0, function* () {
129
+ Validate_1.default({ videoId }).required().object();
130
+ Validate_1.default({ trackType }).required().string();
131
+ Validate_1.default({ groupId }).required().string();
132
+ Validate_1.default({ trackIndex }).required().number();
133
+ return this.postMessage({ type: this.getMessage('select_track'), videoId, trackType, groupId, trackIndex });
134
+ });
135
+ }
136
+ resetTrack(videoId, trackType, groupId) {
137
+ return __awaiter(this, void 0, void 0, function* () {
138
+ Validate_1.default({ videoId }).required().object();
139
+ Validate_1.default({ trackType }).required().string();
140
+ if (groupId) {
141
+ Validate_1.default({ groupId }).string();
142
+ }
143
+ return this.postMessage({ type: this.getMessage('reset_track'), videoId, trackType, groupId });
144
+ });
145
+ }
146
+ onTracksChanged(listener) {
147
+ Validate_1.default({ listener }).required().function();
148
+ this.eventEmitter.on('tracks_changed', listener);
149
+ }
111
150
  onError(listener) {
112
151
  Validate_1.default({ listener }).required().function();
113
152
  this.eventEmitter.on('error', listener);
@@ -133,6 +172,7 @@ class Stream {
133
172
  this.eventEmitter.on('stop', listener);
134
173
  }
135
174
  handleMessageData(data) {
175
+ var _a, _b, _c, _d, _e, _f;
136
176
  switch (data.type) {
137
177
  case this.getMessage('error'):
138
178
  this.createAndEmitEvent('error', {
@@ -143,7 +183,7 @@ class Stream {
143
183
  y: data.y,
144
184
  width: data.width,
145
185
  height: data.height,
146
- options: data.options,
186
+ protocol: (_b = (_a = data.options) === null || _a === void 0 ? void 0 : _a.protocol) !== null && _b !== void 0 ? _b : data.protocol,
147
187
  },
148
188
  errorMessage: data.errorMessage,
149
189
  });
@@ -157,7 +197,7 @@ class Stream {
157
197
  y: data.y,
158
198
  width: data.width,
159
199
  height: data.height,
160
- options: data.options,
200
+ protocol: (_d = (_c = data.options) === null || _c === void 0 ? void 0 : _c.protocol) !== null && _d !== void 0 ? _d : data.protocol,
161
201
  },
162
202
  });
163
203
  break;
@@ -170,8 +210,21 @@ class Stream {
170
210
  y: data.y,
171
211
  width: data.width,
172
212
  height: data.height,
173
- options: data.options,
213
+ protocol: (_f = (_e = data.options) === null || _e === void 0 ? void 0 : _e.protocol) !== null && _f !== void 0 ? _f : data.protocol,
214
+ },
215
+ });
216
+ break;
217
+ case this.getMessage('tracks_changed'):
218
+ this.createAndEmitEvent('tracks_changed', {
219
+ type: 'tracks_changed',
220
+ srcArguments: {
221
+ uri: data.uri,
222
+ x: data.x,
223
+ y: data.y,
224
+ width: data.width,
225
+ height: data.height,
174
226
  },
227
+ tracks: data.tracks,
175
228
  });
176
229
  break;
177
230
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../../src/FrontApplet/Stream/Stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../../src/FrontApplet/Stream/Stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { IStreamOptions, IStreamPrepareOptions } from '../Video/IOptions';
2
+ import { ITrackInfo } from './IStreamTrackInfo';
3
+ import StreamProtocol from './StreamProtocol';
4
+ export interface IStreamEventProperties {
5
+ uri: string;
6
+ x: number;
7
+ y: number;
8
+ width: number;
9
+ height: number;
10
+ protocol?: keyof typeof StreamProtocol;
11
+ /**
12
+ * @deprecated Events should not return options object instead should return protocol {@link protocol}
13
+ */
14
+ options?: IStreamOptions | IStreamPrepareOptions;
15
+ }
16
+ export interface IStreamErrorEventProperties extends IStreamEventProperties {
17
+ errorMessage?: string;
18
+ }
19
+ export interface IStreamTracksChangedEventProperties extends IStreamEventProperties {
20
+ tracks: ITrackInfo[];
21
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IStreamEventProperties.js.map
3
+ //# sourceMappingURL=streamEventProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamEventProperties.js","sourceRoot":"","sources":["../../../src/FrontApplet/Stream/streamEventProperties.ts"],"names":[],"mappings":""}