@signageos/front-applet 5.12.0 → 5.12.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/CHANGELOG.md +5 -0
- package/dist/bundle.js +1 -1
- package/dist/bundle.js.map +1 -1
- package/docs/js-api/js-video-stream.md +88 -8
- package/es6/FrontApplet/Stream/Stream.d.ts +3 -3
- package/es6/FrontApplet/Stream/Stream.js +18 -18
- package/es6/FrontApplet/Stream/Stream.js.map +1 -1
- package/package.json +1 -1
|
@@ -24,6 +24,9 @@ Methods to play or stop video streams.
|
|
|
24
24
|
| `onConnected()` | Calls a listener callback when stream connects | 1.0.20 |
|
|
25
25
|
| `onDisconnected()` | Calls a listener callback when stream disconnects | 1.0.20 |
|
|
26
26
|
| `onError()` | Calls a listener callback when an unexpected stream error occurs | 1.0.20 |
|
|
27
|
+
| `onPlay()` | Calls a listener callback when stream starts playing | 5.12.0 |
|
|
28
|
+
| `onStop()` | Calls a listener callback when stream stops | 5.12.0 |
|
|
29
|
+
| `onPrepare()` | Calls a listener callback when stream prepares | 5.12.0 |
|
|
27
30
|
:::
|
|
28
31
|
|
|
29
32
|
::: alert alert--warning
|
|
@@ -48,11 +51,22 @@ If you want to play a video stream in full screen mode, use x = y = 0 and width
|
|
|
48
51
|
| `height` | Number | <div class="red">Yes</div> | Stream height on the screen |
|
|
49
52
|
| `protocol` | String | <div class="red">Yes</div> | Protocol that the stream is using |
|
|
50
53
|
|^^|^^|^^| Types: `HLS`, `RTP`, `HTTP`, `UDP`, `RTMP`, `RTSP`. |
|
|
54
|
+
| `options` | Object | <div class="red">No</div> | Additional options for the stream |
|
|
55
|
+
:::
|
|
56
|
+
|
|
57
|
+
### Options object
|
|
58
|
+
::: table-responsive
|
|
59
|
+
| Key | Type | Required | Description |
|
|
60
|
+
| ------------ | --------------------------- | :--------------------------: | --------------------------------------------- |
|
|
61
|
+
| `background` | Boolean | <div class="red">No</div> | Prepare stream in the background |
|
|
51
62
|
:::
|
|
52
63
|
|
|
53
64
|
### Javascript syntax
|
|
54
65
|
```javascript
|
|
55
66
|
await sos.stream.prepare(uri, x, y, width, height, protocol);
|
|
67
|
+
|
|
68
|
+
// Example with options - prepare stream in the background
|
|
69
|
+
await sos.stream.prepare(uri, x, y, width, height, protocol, { background: true });
|
|
56
70
|
```
|
|
57
71
|
|
|
58
72
|
<div class="row d-flex align-content-stretch force-padding-20">
|
|
@@ -89,11 +103,28 @@ If you want to play a video stream in full screen mode, use x = y = 0 and width
|
|
|
89
103
|
| `height` | Number | <div class="red">Yes</div> | Stream height on the screen |
|
|
90
104
|
| `protocol` | String | <div class="red">Yes</div> | Protocol that the stream is using |
|
|
91
105
|
|^^|^^|^^| Types: `HLS`, `RTP`, `HTTP`, `UDP`, `RTMP`, `RTSP`. |
|
|
106
|
+
| `options` | Object | <div class="red">No</div> | Additional options for the stream |
|
|
107
|
+
:::
|
|
108
|
+
|
|
109
|
+
### Options object
|
|
110
|
+
::: table-responsive
|
|
111
|
+
| Key | Type | Required | Description |
|
|
112
|
+
| ------------ | --------------------------- | :--------------------------: | --------------------------------------------- |
|
|
113
|
+
| `autoReconnect` | Boolean | <div class="red">No</div> | Automatically reconnect stream when it disconnects |
|
|
114
|
+
|^^|^^|^^| Default value: false |
|
|
115
|
+
| `autoReconnectInterval` | Number | <div class="red">No</div> | Interval in miliseconds between reconnect attempts |
|
|
116
|
+
|^^|^^|^^| Default value: 30000 ms |
|
|
92
117
|
:::
|
|
93
118
|
|
|
94
119
|
### Javascript syntax
|
|
95
120
|
```javascript
|
|
96
121
|
await sos.stream.play(uri, x, y, width, height, protocol);
|
|
122
|
+
|
|
123
|
+
// Example with options - enable auto reconnect
|
|
124
|
+
await sos.stream.play(uri, x, y, width, height, protocol, { autoReconnect: true });
|
|
125
|
+
|
|
126
|
+
// Example with options - reconnect every 10 seconds
|
|
127
|
+
await sos.stream.play(uri, x, y, width, height, protocol, { autoReconnect: true, autoReconnectInterval: 10000 });
|
|
97
128
|
```
|
|
98
129
|
|
|
99
130
|
<div class="row d-flex align-content-stretch force-padding-20">
|
|
@@ -161,6 +192,36 @@ sos.stream.onError((event) => {
|
|
|
161
192
|
});
|
|
162
193
|
```
|
|
163
194
|
|
|
195
|
+
## Event onPlay()
|
|
196
|
+
Calls a listener callback everytime `play` event is emitted.
|
|
197
|
+
|
|
198
|
+
### Javascript syntax
|
|
199
|
+
```javascript
|
|
200
|
+
sos.stream.onPlay((event) => {
|
|
201
|
+
// do something
|
|
202
|
+
});
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Event onStop()
|
|
206
|
+
Calls a listener callback everytime `stop` event is emitted.
|
|
207
|
+
|
|
208
|
+
### Javascript syntax
|
|
209
|
+
```javascript
|
|
210
|
+
sos.stream.onStop((event) => {
|
|
211
|
+
// do something
|
|
212
|
+
});
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Event onPrepare()
|
|
216
|
+
Calls a listener callback everytime `prepare` event is emitted.
|
|
217
|
+
|
|
218
|
+
### Javascript syntax
|
|
219
|
+
```javascript
|
|
220
|
+
sos.stream.onPrepare((event) => {
|
|
221
|
+
// do something
|
|
222
|
+
});
|
|
223
|
+
```
|
|
224
|
+
|
|
164
225
|
## Stream events
|
|
165
226
|
All stream events have the same format.
|
|
166
227
|
|
|
@@ -179,16 +240,22 @@ Example event:
|
|
|
179
240
|
"y": 0,
|
|
180
241
|
"width": 1920,
|
|
181
242
|
"height": 1080,
|
|
182
|
-
"protocol": "RTP"
|
|
243
|
+
"protocol": "RTP",
|
|
244
|
+
"options": {
|
|
245
|
+
"background": false,
|
|
246
|
+
"autoReconnect": true,
|
|
247
|
+
"autoReconnectInterval": 30000,
|
|
248
|
+
},
|
|
183
249
|
}
|
|
184
250
|
}
|
|
185
251
|
```
|
|
186
252
|
|
|
187
253
|
## Usage with Typescript
|
|
188
254
|
You can also use all these methods with [signageOS TypeScript](https://docs.signageos.io/hc/en-us/articles/4405069154962#signageos-typescript).
|
|
255
|
+
|
|
189
256
|
```typescript
|
|
190
257
|
interface StreamEvent {
|
|
191
|
-
type: 'connected' | 'disconnected' | 'error',
|
|
258
|
+
type: 'connected' | 'disconnected' | 'error' | 'stop' | 'prepare' | 'play',
|
|
192
259
|
srcArguments: {
|
|
193
260
|
uri: string;
|
|
194
261
|
x: number;
|
|
@@ -196,15 +263,25 @@ interface StreamEvent {
|
|
|
196
263
|
width: number;
|
|
197
264
|
height: number;
|
|
198
265
|
protocol: string;
|
|
266
|
+
},
|
|
267
|
+
options?: {
|
|
268
|
+
background?: boolean;
|
|
269
|
+
autoReconnect?: boolean;
|
|
270
|
+
autoReconnectInterval?: number;
|
|
199
271
|
}
|
|
200
272
|
}
|
|
201
273
|
play(
|
|
202
|
-
uri: string
|
|
203
|
-
x: number
|
|
204
|
-
y: number
|
|
205
|
-
width: number
|
|
206
|
-
height: number
|
|
207
|
-
protocolType: 'HLS' | 'RTP' | 'HTTP' | 'UDP' | 'RTMP' | 'RTSP'
|
|
274
|
+
uri: string;
|
|
275
|
+
x: number;
|
|
276
|
+
y: number;
|
|
277
|
+
width: number;
|
|
278
|
+
height: number;
|
|
279
|
+
protocolType: 'HLS' | 'RTP' | 'HTTP' | 'UDP' | 'RTMP' | 'RTSP';
|
|
280
|
+
options?: {
|
|
281
|
+
background?: boolean;
|
|
282
|
+
autoReconnect?: boolean;
|
|
283
|
+
autoReconnectInterval?: number;
|
|
284
|
+
}
|
|
208
285
|
): Promise<void>;
|
|
209
286
|
stop(
|
|
210
287
|
uri: string,
|
|
@@ -216,6 +293,9 @@ stop(
|
|
|
216
293
|
onConnected(listener: (event: StreamEvent) => void): void;
|
|
217
294
|
onDisconnected(listener: (event: StreamEvent) => void): void;
|
|
218
295
|
onError(listener: (event: StreamEvent) => void): void;
|
|
296
|
+
onPlay(listener: (event: StreamEvent) => void): void;
|
|
297
|
+
onStop(listener: (event: StreamEvent) => void): void;
|
|
298
|
+
onPrepare(listener: (event: StreamEvent) => void): void;
|
|
219
299
|
```
|
|
220
300
|
|
|
221
301
|
## Errors
|
|
@@ -9,9 +9,9 @@ export default class Stream {
|
|
|
9
9
|
static MESSAGE_PREFIX: string;
|
|
10
10
|
private eventEmitter;
|
|
11
11
|
constructor(messagePrefix: string, postMessage: IPostMessage<void>);
|
|
12
|
-
prepare(uri: string, x: number, y: number, width: number, height: number, protocol: keyof typeof StreamProtocol, options?: IStreamOptions): void
|
|
13
|
-
play(uri: string, x: number, y: number, width: number, height: number, protocol?: keyof typeof StreamProtocol, options?: IStreamOptions): void
|
|
14
|
-
stop(uri: string, x: number, y: number, width: number, height: number): void
|
|
12
|
+
prepare(uri: string, x: number, y: number, width: number, height: number, protocol: keyof typeof StreamProtocol, options?: IStreamOptions): Promise<void>;
|
|
13
|
+
play(uri: string, x: number, y: number, width: number, height: number, protocol?: keyof typeof StreamProtocol, options?: IStreamOptions): Promise<void>;
|
|
14
|
+
stop(uri: string, x: number, y: number, width: number, height: number): Promise<void>;
|
|
15
15
|
onError(listener: IStreamEventListener<'error'>): void;
|
|
16
16
|
onConnected(listener: IStreamEventListener<'connected'>): void;
|
|
17
17
|
onDisconnected(listener: IStreamEventListener<'disconnected'>): void;
|
|
@@ -14,16 +14,16 @@ class Stream {
|
|
|
14
14
|
}
|
|
15
15
|
prepare(uri, x, y, width, height, protocol, options = {}) {
|
|
16
16
|
this.checkParamsValidity(uri, x, y, width, height);
|
|
17
|
-
this.postMessage({
|
|
18
|
-
type: this.getMessage('prepare'),
|
|
19
|
-
uri, x, y, width, height, protocol, options,
|
|
20
|
-
});
|
|
21
17
|
this.createAndEmitEvent('prepare', {
|
|
22
18
|
type: 'prepare',
|
|
23
19
|
srcArguments: {
|
|
24
20
|
uri, x, y, width, height, protocol, options,
|
|
25
21
|
},
|
|
26
22
|
});
|
|
23
|
+
return this.postMessage({
|
|
24
|
+
type: this.getMessage('prepare'),
|
|
25
|
+
uri, x, y, width, height, protocol, options,
|
|
26
|
+
});
|
|
27
27
|
}
|
|
28
28
|
play(uri, x, y, width, height, protocol, options = {}) {
|
|
29
29
|
this.checkParamsValidity(uri, x, y, width, height);
|
|
@@ -39,7 +39,13 @@ class Stream {
|
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
this.
|
|
42
|
+
this.createAndEmitEvent('play', {
|
|
43
|
+
type: 'play',
|
|
44
|
+
srcArguments: {
|
|
45
|
+
uri, x, y, width, height, protocol, options,
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
return this.postMessage({
|
|
43
49
|
type: this.getMessage('play'),
|
|
44
50
|
uri,
|
|
45
51
|
x,
|
|
@@ -49,17 +55,17 @@ class Stream {
|
|
|
49
55
|
protocol: uppercaseProtocol,
|
|
50
56
|
options,
|
|
51
57
|
});
|
|
52
|
-
this.createAndEmitEvent('play', {
|
|
53
|
-
type: 'play',
|
|
54
|
-
srcArguments: {
|
|
55
|
-
uri, x, y, width, height, protocol, options,
|
|
56
|
-
},
|
|
57
|
-
});
|
|
58
58
|
}
|
|
59
59
|
stop(uri, x, y, width, height) {
|
|
60
60
|
this.checkParamsValidity(uri, x, y, width, height);
|
|
61
61
|
({ x, y, width, height } = coordinationsHelper_1.sanitizeCoordinations({ x, y, width, height }));
|
|
62
|
-
this.
|
|
62
|
+
this.createAndEmitEvent('stop', {
|
|
63
|
+
type: 'stop',
|
|
64
|
+
srcArguments: {
|
|
65
|
+
uri, x, y, width, height,
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
return this.postMessage({
|
|
63
69
|
type: this.getMessage('stop'),
|
|
64
70
|
uri,
|
|
65
71
|
x,
|
|
@@ -67,12 +73,6 @@ class Stream {
|
|
|
67
73
|
width,
|
|
68
74
|
height,
|
|
69
75
|
});
|
|
70
|
-
this.createAndEmitEvent('stop', {
|
|
71
|
-
type: 'stop',
|
|
72
|
-
srcArguments: {
|
|
73
|
-
uri, x, y, width, height,
|
|
74
|
-
},
|
|
75
|
-
});
|
|
76
76
|
}
|
|
77
77
|
onError(listener) {
|
|
78
78
|
Validate_1.default({ listener }).required().function();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../../src/FrontApplet/Stream/Stream.ts"],"names":[],"mappings":";;AACA,mCAAsC;AAEtC,qDAA8C;AAI9C,kEAA2D;AAC3D,oDAA6C;AAC7C,mDAA4C;AAC5C,2EAA0E;AAG1E,MAAqB,MAAM;IAM1B,YACS,aAAqB,EACrB,WAA+B;QAD/B,kBAAa,GAAb,aAAa,CAAQ;QACrB,gBAAW,GAAX,WAAW,CAAoB;QAEvC,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAY,EAAE,CAAC;IACxC,CAAC;IAEM,OAAO,CACb,GAAW,EACX,CAAS,EACT,CAAS,EACT,KAAa,EACb,MAAc,EACd,QAAqC,EACrC,UAA0B,EAAE;QAE5B,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../../src/FrontApplet/Stream/Stream.ts"],"names":[],"mappings":"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"}
|