@gcorevideo/player 2.28.35 → 2.29.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.
- package/README.md +22 -1
- package/assets/{subtitles → cc}/style.scss +5 -0
- package/assets/media-control/media-control.scss +8 -6
- package/assets/multi-camera/multicamera.ejs +27 -23
- package/assets/multi-camera/style.scss +7 -34
- package/assets/style/main.scss +2 -2
- package/dist/core.js +24 -28
- package/dist/index.css +384 -402
- package/dist/index.embed.js +54 -84
- package/dist/index.js +122 -219
- package/docs/api/player.md +22 -9
- package/docs/api/player.mediacontrol.setkeepvisible.md +56 -0
- package/docs/api/player.multicamera.md +0 -28
- package/docs/api/player.multiccamerasourceinfo.md +27 -0
- package/docs/api/{player.multicamera.unbindevents.md → player.multisourcesmode.md} +4 -7
- package/docs/api/player.sourcecontroller.md +0 -37
- package/lib/playback/BasePlayback.d.ts +1 -0
- package/lib/playback/BasePlayback.d.ts.map +1 -1
- package/lib/playback/BasePlayback.js +3 -0
- package/lib/playback/dash-playback/DashPlayback.d.ts +3 -1
- package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
- package/lib/playback/dash-playback/DashPlayback.js +9 -22
- package/lib/playback/hls-playback/HlsPlayback.d.ts +2 -1
- package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
- package/lib/playback/hls-playback/HlsPlayback.js +4 -0
- package/lib/playback/types.d.ts +9 -0
- package/lib/playback/types.d.ts.map +1 -1
- package/lib/playback.types.d.ts +0 -6
- package/lib/playback.types.d.ts.map +1 -1
- package/lib/plugins/multi-camera/MultiCamera.d.ts +21 -4
- package/lib/plugins/multi-camera/MultiCamera.d.ts.map +1 -1
- package/lib/plugins/multi-camera/MultiCamera.js +70 -134
- package/lib/plugins/source-controller/SourceController.d.ts +0 -39
- package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
- package/lib/plugins/source-controller/SourceController.js +0 -39
- package/lib/plugins/subtitles/ClosedCaptions.d.ts +1 -1
- package/lib/plugins/subtitles/ClosedCaptions.d.ts.map +1 -1
- package/lib/plugins/subtitles/ClosedCaptions.js +32 -22
- package/lib/testUtils.d.ts +1 -0
- package/lib/testUtils.d.ts.map +1 -1
- package/lib/testUtils.js +3 -0
- package/lib/utils/mediaSources.d.ts +4 -0
- package/lib/utils/mediaSources.d.ts.map +1 -1
- package/lib/utils/mediaSources.js +8 -6
- package/package.json +1 -1
- package/src/playback/BasePlayback.ts +4 -0
- package/src/playback/dash-playback/DashPlayback.ts +11 -29
- package/src/playback/hls-playback/HlsPlayback.ts +5 -1
- package/src/playback/types.ts +10 -0
- package/src/playback.types.ts +0 -6
- package/src/plugins/multi-camera/MultiCamera.ts +103 -166
- package/src/plugins/source-controller/SourceController.ts +0 -39
- package/src/plugins/subtitles/ClosedCaptions.ts +35 -21
- package/src/plugins/subtitles/__tests__/ClosedCaptions.test.ts +73 -112
- package/src/plugins/subtitles/__tests__/__snapshots__/ClosedCaptions.test.ts.snap +3 -3
- package/src/testUtils.ts +3 -0
- package/src/utils/mediaSources.ts +10 -6
- package/tsconfig.tsbuildinfo +1 -1
- package/docs/api/player.multicamera.activebyid.md +0 -67
- /package/assets/{subtitles → cc}/combobox.ejs +0 -0
- /package/assets/{subtitles → cc}/string.ejs +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
|
2
|
+
|
|
3
|
+
[Home](./index.md) > [@gcorevideo/player](./player.md) > [MediaControl](./player.mediacontrol.md) > [setKeepVisible](./player.mediacontrol.setkeepvisible.md)
|
|
4
|
+
|
|
5
|
+
## MediaControl.setKeepVisible() method
|
|
6
|
+
|
|
7
|
+
Set or reset the keep visibility state
|
|
8
|
+
|
|
9
|
+
Keep visibility state controls whether the media control is hidden automatically after a delay, which is a default behaviour.
|
|
10
|
+
|
|
11
|
+
**Signature:**
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
setKeepVisible(keepVisible: boolean): void;
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Parameters
|
|
18
|
+
|
|
19
|
+
<table><thead><tr><th>
|
|
20
|
+
|
|
21
|
+
Parameter
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
</th><th>
|
|
25
|
+
|
|
26
|
+
Type
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
</th><th>
|
|
30
|
+
|
|
31
|
+
Description
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
</th></tr></thead>
|
|
35
|
+
<tbody><tr><td>
|
|
36
|
+
|
|
37
|
+
keepVisible
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
</td><td>
|
|
41
|
+
|
|
42
|
+
boolean
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
</td><td>
|
|
46
|
+
|
|
47
|
+
The state
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
</td></tr>
|
|
51
|
+
</tbody></table>
|
|
52
|
+
|
|
53
|
+
**Returns:**
|
|
54
|
+
|
|
55
|
+
void
|
|
56
|
+
|
|
@@ -223,20 +223,6 @@ Description
|
|
|
223
223
|
</th></tr></thead>
|
|
224
224
|
<tbody><tr><td>
|
|
225
225
|
|
|
226
|
-
[activeById(id, active)](./player.multicamera.activebyid.md)
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
</td><td>
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
</td><td>
|
|
233
|
-
|
|
234
|
-
**_(BETA)_**
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
</td></tr>
|
|
238
|
-
<tr><td>
|
|
239
|
-
|
|
240
226
|
[bindEvents()](./player.multicamera.bindevents.md)
|
|
241
227
|
|
|
242
228
|
|
|
@@ -262,20 +248,6 @@ Description
|
|
|
262
248
|
**_(BETA)_**
|
|
263
249
|
|
|
264
250
|
|
|
265
|
-
</td></tr>
|
|
266
|
-
<tr><td>
|
|
267
|
-
|
|
268
|
-
[unBindEvents()](./player.multicamera.unbindevents.md)
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
</td><td>
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
</td><td>
|
|
275
|
-
|
|
276
|
-
**_(BETA)_**
|
|
277
|
-
|
|
278
|
-
|
|
279
251
|
</td></tr>
|
|
280
252
|
</tbody></table>
|
|
281
253
|
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
|
2
|
+
|
|
3
|
+
[Home](./index.md) > [@gcorevideo/player](./player.md) > [MulticCameraSourceInfo](./player.multiccamerasourceinfo.md)
|
|
4
|
+
|
|
5
|
+
## MulticCameraSourceInfo type
|
|
6
|
+
|
|
7
|
+
> This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
|
|
8
|
+
>
|
|
9
|
+
|
|
10
|
+
Extended media source description
|
|
11
|
+
|
|
12
|
+
**Signature:**
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
export type MulticCameraSourceInfo = {
|
|
16
|
+
description: string;
|
|
17
|
+
dvr: boolean;
|
|
18
|
+
hls_mpegts_url: string | null;
|
|
19
|
+
id: number;
|
|
20
|
+
live: boolean;
|
|
21
|
+
projection: string | null;
|
|
22
|
+
screenshot: string | null;
|
|
23
|
+
source: string;
|
|
24
|
+
source_dash: string | null;
|
|
25
|
+
title: string;
|
|
26
|
+
};
|
|
27
|
+
```
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
|
2
2
|
|
|
3
|
-
[Home](./index.md) > [@gcorevideo/player](./player.md) > [
|
|
3
|
+
[Home](./index.md) > [@gcorevideo/player](./player.md) > [MultisourcesMode](./player.multisourcesmode.md)
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## MultisourcesMode type
|
|
6
6
|
|
|
7
7
|
> This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
|
|
8
8
|
>
|
|
9
9
|
|
|
10
|
+
|
|
10
11
|
**Signature:**
|
|
11
12
|
|
|
12
13
|
```typescript
|
|
13
|
-
|
|
14
|
+
export type MultisourcesMode = 'one_first' | 'only_live' | 'show_all';
|
|
14
15
|
```
|
|
15
|
-
**Returns:**
|
|
16
|
-
|
|
17
|
-
void
|
|
18
|
-
|
|
@@ -15,43 +15,6 @@ export declare class SourceController extends CorePlugin
|
|
|
15
15
|
|
|
16
16
|
## Remarks
|
|
17
17
|
|
|
18
|
-
Have a look at the [source failover diagram](https://miro.com/app/board/uXjVLiN15tY=/?share_link_id=390327585787) for the details on how sources ordering and selection works. Below is a simplified diagram:
|
|
19
|
-
|
|
20
|
-
```markdown
|
|
21
|
-
sources_list:
|
|
22
|
-
- a.mpd | +--------------------+
|
|
23
|
-
- b.m3u8 |--->| init |
|
|
24
|
-
- ... | |--------------------|
|
|
25
|
-
| current_source = 0 |
|
|
26
|
-
+--------------------+
|
|
27
|
-
|
|
|
28
|
-
| source = a.mpd
|
|
29
|
-
| playback = dash.js
|
|
30
|
-
v
|
|
31
|
-
+------------------+
|
|
32
|
-
+-->| load source |
|
|
33
|
-
| +---------|--------+
|
|
34
|
-
| v
|
|
35
|
-
| +------------------+
|
|
36
|
-
| | play |
|
|
37
|
-
| +---------|--------+
|
|
38
|
-
| |
|
|
39
|
-
| v
|
|
40
|
-
| +-----------------------+
|
|
41
|
-
| | on playback_error |
|
|
42
|
-
| |-----------------------|
|
|
43
|
-
| | current_source = |
|
|
44
|
-
| | (current_source + 1) |
|
|
45
|
-
| | % len sources_list |
|
|
46
|
-
| | |
|
|
47
|
-
| | delay 1..3s |
|
|
48
|
-
| +---------------|-------+
|
|
49
|
-
| |
|
|
50
|
-
| source=b.m3u8 |
|
|
51
|
-
| playback=hls.js |
|
|
52
|
-
+-------------------+
|
|
53
|
-
|
|
54
|
-
```
|
|
55
18
|
|
|
56
19
|
## Example
|
|
57
20
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasePlayback.d.ts","sourceRoot":"","sources":["../../src/playback/BasePlayback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAU,UAAU,EAAe,MAAM,cAAc,CAAA;AAK5E;;;GAGG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,IAAI,YAAY,YAEf;IAED,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY;IA0BlD;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM;IAInB,UAAU;
|
|
1
|
+
{"version":3,"file":"BasePlayback.d.ts","sourceRoot":"","sources":["../../src/playback/BasePlayback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAU,UAAU,EAAe,MAAM,cAAc,CAAA;AAK5E;;;GAGG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,IAAI,YAAY,YAEf;IAED,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY;IA0BlD;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM;IAInB,UAAU;IAKnB,YAAY,CAAC,EAAE,EAAE,MAAM;CAGxB"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Playback } from '@clappr/core';
|
|
2
2
|
import { MediaPlayerClass, IManifestInfo } from 'dashjs';
|
|
3
|
-
import { QualityLevel, TimePosition, TimeValue
|
|
3
|
+
import { QualityLevel, TimePosition, TimeValue } from '../../playback.types.js';
|
|
4
4
|
import { BasePlayback } from '../BasePlayback.js';
|
|
5
|
+
import { VTTCueInfo } from '../types.js';
|
|
5
6
|
import { AudioTrack } from '@clappr/core/types/base/playback/playback.js';
|
|
6
7
|
type PlaybackType = typeof Playback.VOD | typeof Playback.LIVE | typeof Playback.AOD | typeof Playback.NO_OP;
|
|
7
8
|
type PlaylistType = string;
|
|
@@ -12,6 +13,7 @@ type LocalTimeCorrelation = {
|
|
|
12
13
|
export default class DashPlayback extends BasePlayback {
|
|
13
14
|
_levels: QualityLevel[];
|
|
14
15
|
_currentLevel: number;
|
|
16
|
+
_currentTextTrackId: number;
|
|
15
17
|
_durationExcludesAfterLiveSyncPoint: boolean;
|
|
16
18
|
_isReadyState: boolean;
|
|
17
19
|
_playableRegionDuration: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/dash-playback/DashPlayback.ts"],"names":[],"mappings":"AAKA,OAAO,EAAe,QAAQ,EAAyB,MAAM,cAAc,CAAA;AAG3E,OAAO,EAGL,gBAAgB,EAKhB,aAAa,EAQd,MAAM,QAAQ,CAAA;AAEf,OAAO,EAGL,YAAY,EACZ,YAAY,EACZ,SAAS,
|
|
1
|
+
{"version":3,"file":"DashPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/dash-playback/DashPlayback.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ const T = 'playback.dash';
|
|
|
16
16
|
export default class DashPlayback extends BasePlayback {
|
|
17
17
|
_levels = [];
|
|
18
18
|
_currentLevel = AUTO;
|
|
19
|
+
_currentTextTrackId = -1;
|
|
19
20
|
// true when the actual duration is longer than hlsjs's live sync point
|
|
20
21
|
// when this is false playableRegionDuration will be the actual duration
|
|
21
22
|
// when this is true playableRegionDuration will exclude the time after the sync point
|
|
@@ -148,7 +149,11 @@ export default class DashPlayback extends BasePlayback {
|
|
|
148
149
|
streaming: {
|
|
149
150
|
text: {
|
|
150
151
|
defaultEnabled: false,
|
|
151
|
-
|
|
152
|
+
// NOTE: dispatchForManualRendering is not correctly implemented in DASH.js;
|
|
153
|
+
// it does not work when there are multiple text tracks.
|
|
154
|
+
// CUE_ENTER and CUE_EXIT events might be dispatched additionally
|
|
155
|
+
// for a track, other than the currently active one.
|
|
156
|
+
// dispatchForManualRendering: true, // TODO only when useNativeSubtitles is not true?
|
|
152
157
|
},
|
|
153
158
|
},
|
|
154
159
|
}, this.options.dash);
|
|
@@ -192,24 +197,6 @@ export default class DashPlayback extends BasePlayback {
|
|
|
192
197
|
this._dash.on(MediaPlayer.events.PLAYBACK_RATE_CHANGED, (e) => {
|
|
193
198
|
this.trigger(PlaybackEvents.PLAYBACK_RATE_CHANGED, e.playbackRate);
|
|
194
199
|
});
|
|
195
|
-
this._dash.on(MediaPlayer.events.TRACK_CHANGE_RENDERED, (e) => {
|
|
196
|
-
if (e.mediaType === 'audio') {
|
|
197
|
-
this.trigger(Events.PLAYBACK_AUDIO_CHANGED, toClapprTrack(e.newMediaInfo));
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
this._dash.on(MediaPlayer.events.CUE_ENTER, (e) => {
|
|
201
|
-
this.oncueenter?.({
|
|
202
|
-
end: e.end,
|
|
203
|
-
id: e.id,
|
|
204
|
-
start: e.start,
|
|
205
|
-
text: e.text,
|
|
206
|
-
});
|
|
207
|
-
});
|
|
208
|
-
this._dash.on(MediaPlayer.events.CUE_EXIT, (e) => {
|
|
209
|
-
this.oncueexit?.({
|
|
210
|
-
id: e.id,
|
|
211
|
-
});
|
|
212
|
-
});
|
|
213
200
|
}
|
|
214
201
|
render() {
|
|
215
202
|
this._ready();
|
|
@@ -519,14 +506,14 @@ export default class DashPlayback extends BasePlayback {
|
|
|
519
506
|
this._dash?.setTextTrack(this.closedCaptionsTrackId);
|
|
520
507
|
}
|
|
521
508
|
setTextTrack(id) {
|
|
509
|
+
this._currentTextTrackId = id;
|
|
522
510
|
this._dash?.setTextTrack(id);
|
|
523
511
|
}
|
|
524
512
|
/**
|
|
525
513
|
* @override
|
|
526
514
|
*/
|
|
527
515
|
get closedCaptionsTracks() {
|
|
528
|
-
|
|
529
|
-
return tt;
|
|
516
|
+
return this.getTextTracks();
|
|
530
517
|
}
|
|
531
518
|
getTextTracks() {
|
|
532
519
|
return this._dash?.getTracksFor('text').map((t, index) => ({
|
|
@@ -536,7 +523,7 @@ export default class DashPlayback extends BasePlayback {
|
|
|
536
523
|
id: index,
|
|
537
524
|
label: getTextTrackLabel(t) || "",
|
|
538
525
|
language: t.lang,
|
|
539
|
-
mode: "hidden",
|
|
526
|
+
mode: this._currentTextTrackId === index ? "showing" : "hidden",
|
|
540
527
|
},
|
|
541
528
|
})) || [];
|
|
542
529
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import HLSJS, { Events as HlsEvents, type LevelSwitchingData } from 'hls.js';
|
|
2
|
-
import { QualityLevel
|
|
2
|
+
import { QualityLevel } from '../../playback.types.js';
|
|
3
3
|
import { PlaybackType } from '../../types.js';
|
|
4
4
|
import { BasePlayback } from '../BasePlayback.js';
|
|
5
5
|
import { AudioTrack } from '@clappr/core/types/base/playback/playback.js';
|
|
6
|
+
import { VTTCueInfo } from '../types.js';
|
|
6
7
|
export default class HlsPlayback extends BasePlayback {
|
|
7
8
|
private _ccTracksUpdated;
|
|
8
9
|
private _currentFragment;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HlsPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/hls-playback/HlsPlayback.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,EACZ,MAAM,IAAI,SAAS,EAMnB,KAAK,kBAAkB,EAMxB,MAAM,QAAQ,CAAA;AAEf,OAAO,EAIL,YAAY,
|
|
1
|
+
{"version":3,"file":"HlsPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/hls-playback/HlsPlayback.ts"],"names":[],"mappings":"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"}
|
|
@@ -864,7 +864,11 @@ export default class HlsPlayback extends BasePlayback {
|
|
|
864
864
|
this.trigger(Events.PLAYBACK_AUDIO_CHANGED, toClapprTrack(track));
|
|
865
865
|
}
|
|
866
866
|
setTextTrack(id) {
|
|
867
|
+
if (id === this._hls.subtitleTrack) {
|
|
868
|
+
return;
|
|
869
|
+
}
|
|
867
870
|
this._hls.subtitleTrack = id;
|
|
871
|
+
this.cues = [];
|
|
868
872
|
}
|
|
869
873
|
/**
|
|
870
874
|
* @override
|
package/lib/playback/types.d.ts
CHANGED
|
@@ -6,4 +6,13 @@ export declare enum PlaybackEvents {
|
|
|
6
6
|
*/
|
|
7
7
|
PLAYBACK_RATE_CHANGED = "playback:rate-changed"
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export type VTTCueInfo = {
|
|
13
|
+
id: string;
|
|
14
|
+
start: number;
|
|
15
|
+
end: number;
|
|
16
|
+
text: string;
|
|
17
|
+
};
|
|
9
18
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/playback/types.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB;;;;OAIG;IACH,qBAAqB,0BAA0B;CAChD"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/playback/types.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB;;;;OAIG;IACH,qBAAqB,0BAA0B;CAChD;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb,CAAA"}
|
package/lib/playback.types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playback.types.d.ts","sourceRoot":"","sources":["../src/playback.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,EAAE,SAAS,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAA;IAChB;;OAEG;IACH,OAAO,EAAE,SAAS,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,YAAY,CAAA;AAErC;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,oBAAY,iBAAiB;IAC3B;;OAEG;IACH,OAAO,kBAAkB;IACzB;;OAEG;IACH,sBAAsB,6BAA6B;IACnD;;OAEG;IACH,uBAAuB,+BAA+B;CACvD;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAElD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,CAAA;AAEnE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAA;IACvB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,KAAK,EAAE,UAAU,CAAA;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,KAAK,EAAE,mBAAmB,CAAA;IAE1B;;OAEG;IACH,EAAE,CAAC,EAAE;QACH,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF
|
|
1
|
+
{"version":3,"file":"playback.types.d.ts","sourceRoot":"","sources":["../src/playback.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,EAAE,SAAS,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAA;IAChB;;OAEG;IACH,OAAO,EAAE,SAAS,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,YAAY,CAAA;AAErC;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,oBAAY,iBAAiB;IAC3B;;OAEG;IACH,OAAO,kBAAkB;IACzB;;OAEG;IACH,sBAAsB,6BAA6B;IACnD;;OAEG;IACH,uBAAuB,+BAA+B;CACvD;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAElD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,CAAA;AAEnE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAA;IACvB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,KAAK,EAAE,UAAU,CAAA;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,KAAK,EAAE,mBAAmB,CAAA;IAE1B;;OAEG;IACH,EAAE,CAAC,EAAE;QACH,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF"}
|
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
import { Core, UICorePlugin } from '@clappr/core';
|
|
2
2
|
import '../../../assets/multi-camera/style.scss';
|
|
3
|
+
/**
|
|
4
|
+
* @beta
|
|
5
|
+
*/
|
|
6
|
+
export type MultisourcesMode = 'one_first' | 'only_live' | 'show_all';
|
|
7
|
+
/**
|
|
8
|
+
* Extended media source description
|
|
9
|
+
* @beta
|
|
10
|
+
*/
|
|
11
|
+
export type MulticCameraSourceInfo = {
|
|
12
|
+
description: string;
|
|
13
|
+
dvr: boolean;
|
|
14
|
+
hls_mpegts_url: string | null;
|
|
15
|
+
id: number;
|
|
16
|
+
live: boolean;
|
|
17
|
+
projection: string | null;
|
|
18
|
+
screenshot: string | null;
|
|
19
|
+
source: string;
|
|
20
|
+
source_dash: string | null;
|
|
21
|
+
title: string;
|
|
22
|
+
};
|
|
3
23
|
/**
|
|
4
24
|
* `PLUGIN` that adds support for loading multiple streams and switching between them using the media control UI.
|
|
5
25
|
* @beta
|
|
@@ -26,14 +46,13 @@ export declare class MultiCamera extends UICorePlugin {
|
|
|
26
46
|
};
|
|
27
47
|
constructor(core: Core);
|
|
28
48
|
bindEvents(): void;
|
|
29
|
-
unBindEvents
|
|
49
|
+
private unBindEvents;
|
|
30
50
|
private onPlay;
|
|
31
51
|
private bindPlaybackEvents;
|
|
32
52
|
private reload;
|
|
33
53
|
private shouldRender;
|
|
34
54
|
render(): this;
|
|
35
55
|
private onCameraSelect;
|
|
36
|
-
activeById(id: number, active: boolean): void;
|
|
37
56
|
private setLiveStatus;
|
|
38
57
|
private behaviorLive;
|
|
39
58
|
private behaviorOne;
|
|
@@ -42,8 +61,6 @@ export declare class MultiCamera extends UICorePlugin {
|
|
|
42
61
|
private showError;
|
|
43
62
|
private hideError;
|
|
44
63
|
private changeById;
|
|
45
|
-
private getCamerasList;
|
|
46
|
-
private getCurrentCamera;
|
|
47
64
|
private findElementById;
|
|
48
65
|
private findIndexById;
|
|
49
66
|
private onShowLevelSelectMenu;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiCamera.d.ts","sourceRoot":"","sources":["../../../src/plugins/multi-camera/MultiCamera.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,IAAI,EAIJ,YAAY,EACb,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"MultiCamera.d.ts","sourceRoot":"","sources":["../../../src/plugins/multi-camera/MultiCamera.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,IAAI,EAIJ,YAAY,EACb,MAAM,cAAc,CAAA;AAOrB,OAAO,yCAAyC,CAAA;AAKhD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAA;AAErE;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,OAAO,CAAA;IACZ,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,CAAA;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAMD;;;GAGG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,aAAa,CAAsC;IAE3D,OAAO,CAAC,WAAW,CAAY;IAE/B,OAAO,CAAC,OAAO,CAAQ;IAEvB,OAAO,CAAC,WAAW,CAA+B;IAElD,OAAO,CAAC,eAAe,CAAQ;IAE/B,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,MAAM,KAAK,OAAO,WAEjB;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,IAAa,MAAM;;;MAKlB;gBAEW,IAAI,EAAE,IAAI;IAmBb,UAAU;IAmBnB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,YAAY;IAQX,MAAM;IA2Df,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,UAAU;IA0ClB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,qBAAqB;CAM9B"}
|