@gcorevideo/player 2.8.2 → 2.10.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 +39 -0
- package/api-extractor.json +454 -0
- package/dist/index.js +1032 -182
- package/dist/player.d.ts +407 -0
- package/docs/api/index.md +31 -0
- package/docs/api/player.dashsettings.md +16 -0
- package/docs/api/player.langtag.md +15 -0
- package/docs/api/player.md +295 -0
- package/docs/api/player.mediatransport.md +15 -0
- package/docs/api/player.playbackmodule.md +15 -0
- package/docs/api/player.playbacktype.md +16 -0
- package/docs/api/player.player._constructor_.md +50 -0
- package/docs/api/player.player.attachto.md +56 -0
- package/docs/api/player.player.configure.md +58 -0
- package/docs/api/player.player.destroy.md +20 -0
- package/docs/api/player.player.getcurrenttime.md +22 -0
- package/docs/api/player.player.getduration.md +22 -0
- package/docs/api/player.player.md +304 -0
- package/docs/api/player.player.mute.md +20 -0
- package/docs/api/player.player.off.md +72 -0
- package/docs/api/player.player.on.md +72 -0
- package/docs/api/player.player.pause.md +20 -0
- package/docs/api/player.player.play.md +20 -0
- package/docs/api/player.player.registerplugin.md +56 -0
- package/docs/api/player.player.resize.md +59 -0
- package/docs/api/player.player.seek.md +56 -0
- package/docs/api/player.player.stop.md +20 -0
- package/docs/api/player.player.unmute.md +20 -0
- package/docs/api/player.player.unregisterplugin.md +56 -0
- package/docs/api/player.playerconfig.autoplay.md +16 -0
- package/docs/api/player.playerconfig.dash.md +16 -0
- package/docs/api/player.playerconfig.debug.md +16 -0
- package/docs/api/player.playerconfig.language.md +16 -0
- package/docs/api/player.playerconfig.loop.md +16 -0
- package/docs/api/player.playerconfig.md +266 -0
- package/docs/api/player.playerconfig.mute.md +16 -0
- package/docs/api/player.playerconfig.playbacktype.md +16 -0
- package/docs/api/player.playerconfig.prioritytransport.md +16 -0
- package/docs/api/player.playerconfig.sources.md +16 -0
- package/docs/api/player.playerconfig.strings.md +16 -0
- package/docs/api/player.playerdebugsettings.md +20 -0
- package/docs/api/player.playerdebugtag.md +15 -0
- package/docs/api/player.playerevent.md +116 -0
- package/docs/api/player.playereventhandler.md +17 -0
- package/docs/api/player.playermediasource.md +18 -0
- package/docs/api/player.playermediasourcedesc.md +83 -0
- package/docs/api/player.playermediasourcedesc.mimetype.md +16 -0
- package/docs/api/player.playermediasourcedesc.source.md +16 -0
- package/docs/api/player.playerplugin.md +17 -0
- package/docs/api/player.qualitylevel.md +20 -0
- package/docs/api/player.translationkey.md +15 -0
- package/docs/api/player.translationsettings.md +35 -0
- package/docs/api/player.transportpreference.md +17 -0
- package/docs/api/player.version.md +27 -0
- package/lib/Player.d.ts +83 -5
- package/lib/Player.d.ts.map +1 -1
- package/lib/Player.js +99 -25
- package/lib/constants.d.ts +0 -18
- package/lib/constants.d.ts.map +1 -1
- package/lib/constants.js +1 -18
- package/lib/gcore.types.d.ts +84 -0
- package/lib/gcore.types.d.ts.map +1 -0
- package/lib/gcore.types.js +9 -0
- package/lib/index.d.ts +10 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -5
- package/lib/internal.types.d.ts +28 -11
- package/lib/internal.types.d.ts.map +1 -1
- package/lib/playback.types.d.ts +19 -5
- package/lib/playback.types.d.ts.map +1 -1
- package/lib/plugins/dash-playback/DashPlayback.js +1 -1
- package/lib/plugins/hls-playback/HlsPlayback.js +1 -1
- package/lib/tsdoc-metadata.json +11 -0
- package/lib/types.d.ts +179 -62
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +19 -0
- package/lib/utils/mediaSources.d.ts +1 -3
- package/lib/utils/mediaSources.d.ts.map +1 -1
- package/lib/utils/mediaSources.js +0 -9
- package/lib/version.d.ts +5 -0
- package/lib/version.d.ts.map +1 -1
- package/lib/version.js +5 -0
- package/package.json +6 -1
- package/src/Player.ts +113 -32
- package/src/index.ts +11 -5
- package/src/internal.types.ts +28 -15
- package/src/playback.types.ts +20 -6
- package/src/plugins/dash-playback/DashPlayback.ts +1 -1
- package/src/plugins/hls-playback/HlsPlayback.ts +1 -1
- package/src/types.ts +196 -74
- package/src/utils/mediaSources.ts +1 -15
- package/src/version.ts +5 -0
- package/temp/player.api.json +1950 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/src/constants.ts +0 -17
- package/src/plugins/dash-playback/_DashPlayback.js +0 -688
- package/src/trace/LogTracer.ts +0 -23
- package/src/trace/SentryTracer.ts +0 -21
- package/src/trace/Tracer.ts +0 -27
- package/src/trace/index.ts +0 -32
- package/src/trace/types.ts +0 -7
- package/src/typings/@clappr/plugins.d.ts +0 -23
- package/src/utils/Logger.ts +0 -107
|
@@ -71,12 +71,3 @@ export function buildSourcesPriorityList(sources, priorityTransport = 'auto') {
|
|
|
71
71
|
export function unwrapSource(s) {
|
|
72
72
|
return typeof s === 'string' ? s : s.source;
|
|
73
73
|
}
|
|
74
|
-
export function buildGcoreStreamSourcesList(ms, priorityTransport) {
|
|
75
|
-
const sources = {
|
|
76
|
-
dash: ms.sourceDash,
|
|
77
|
-
master: ms.source,
|
|
78
|
-
hls: ms.hlsCmafUrl,
|
|
79
|
-
mpegts: ms.hlsMpegtsUrl,
|
|
80
|
-
};
|
|
81
|
-
return buildSourcesPriorityList(sources, priorityTransport);
|
|
82
|
-
}
|
package/lib/version.d.ts
CHANGED
package/lib/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAGA,wBAAgB,OAAO;;;;;EAOtB"}
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,OAAO;;;;;EAOtB"}
|
package/lib/version.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import * as pkg from '../package.json' with { "type": "json" };
|
|
2
2
|
import * as lock from '../package-lock.json' with { "type": "json" };
|
|
3
|
+
/**
|
|
4
|
+
* Version information about the gplayer and its main dependencies
|
|
5
|
+
* @returns Version information about the gplayer and its main dependencies
|
|
6
|
+
* @beta
|
|
7
|
+
*/
|
|
3
8
|
export function version() {
|
|
4
9
|
return {
|
|
5
10
|
gplayer: pkg.version,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gcorevideo/player",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.10.0",
|
|
4
4
|
"description": "Gcore JavaScript video player",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"build:1": "npm run build:ts && npm run build:bundle && date",
|
|
11
11
|
"build:ts": "tsc",
|
|
12
12
|
"build:bundle": "rollup -c",
|
|
13
|
+
"dev": "nodemon --watch src -e ts --exec \"npm run build:ts && npm run docs\"",
|
|
13
14
|
"docs": "npm run docs:extract && npm run docs:build",
|
|
14
15
|
"docs:extract": "api-extractor run --local --verbose",
|
|
15
16
|
"docs:build": "api-documenter markdown --input-folder=temp --output-folder=docs/api",
|
|
@@ -30,17 +31,21 @@
|
|
|
30
31
|
},
|
|
31
32
|
"homepage": "https://github.com/G-Core/gcore-videoplayer-js#readme",
|
|
32
33
|
"devDependencies": {
|
|
34
|
+
"@microsoft/api-documenter": "^7.26.5",
|
|
35
|
+
"@microsoft/api-extractor": "^7.49.1",
|
|
33
36
|
"@rollup/plugin-commonjs": "^28.0.1",
|
|
34
37
|
"@rollup/plugin-json": "^6.1.0",
|
|
35
38
|
"@rollup/plugin-node-resolve": "^15.3.0",
|
|
36
39
|
"@types/node": "^22.10.1",
|
|
37
40
|
"assert": "^2.1.0",
|
|
41
|
+
"nodemon": "^3.1.9",
|
|
38
42
|
"rollup": "^4.27.4",
|
|
39
43
|
"rollup-plugin-polyfill-node": "^0.13.0",
|
|
40
44
|
"typescript": "^5.7.2"
|
|
41
45
|
},
|
|
42
46
|
"dependencies": {
|
|
43
47
|
"@clappr/core": "^0.11.3",
|
|
48
|
+
"@gcorevideo/utils": "^0.0.1",
|
|
44
49
|
"@sentry/types": "^8.47.0",
|
|
45
50
|
"dashjs": "^4.7.4",
|
|
46
51
|
"event-lite": "^1.0.0",
|
package/src/Player.ts
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
$,
|
|
7
7
|
Loader,
|
|
8
8
|
} from '@clappr/core'
|
|
9
|
+
import { reportError, trace } from '@gcorevideo/utils'
|
|
9
10
|
import assert from 'assert'
|
|
10
11
|
import EventLite from 'event-lite'
|
|
11
12
|
|
|
@@ -13,12 +14,8 @@ import type {
|
|
|
13
14
|
CorePlayerEvents,
|
|
14
15
|
CoreOptions,
|
|
15
16
|
CorePluginOptions,
|
|
16
|
-
PlayerMediaSource,
|
|
17
17
|
} from './internal.types.js'
|
|
18
|
-
import type {
|
|
19
|
-
PlayerPlugin,
|
|
20
|
-
} from './types.js'
|
|
21
|
-
import { reportError, trace } from './trace/index.js'
|
|
18
|
+
import type { PlayerMediaSource, PlayerPlugin } from './types.js'
|
|
22
19
|
import { PlayerConfig, PlayerEvent } from './types.js'
|
|
23
20
|
import DashPlayback from './plugins/dash-playback/DashPlayback.js'
|
|
24
21
|
import HlsPlayback from './plugins/hls-playback/HlsPlayback.js'
|
|
@@ -30,7 +27,10 @@ import {
|
|
|
30
27
|
|
|
31
28
|
// TODO implement transport retry/failover and fallback logic
|
|
32
29
|
|
|
33
|
-
|
|
30
|
+
/**
|
|
31
|
+
* @beta
|
|
32
|
+
*/
|
|
33
|
+
export type PlayerEventHandler<T extends PlayerEvent> = () => void
|
|
34
34
|
|
|
35
35
|
const T = 'GPlayer'
|
|
36
36
|
|
|
@@ -40,18 +40,24 @@ const DEFAULT_OPTIONS: PlayerConfig = {
|
|
|
40
40
|
loop: false,
|
|
41
41
|
mute: false,
|
|
42
42
|
playbackType: 'vod',
|
|
43
|
-
pluginSettings: {},
|
|
44
|
-
poster: '',
|
|
45
43
|
priorityTransport: 'dash',
|
|
46
44
|
sources: [],
|
|
47
45
|
strings: {},
|
|
48
46
|
}
|
|
49
47
|
|
|
48
|
+
/**
|
|
49
|
+
* @beta
|
|
50
|
+
*/
|
|
50
51
|
export type PlaybackModule = 'dash' | 'hls' | 'native'
|
|
51
52
|
|
|
52
53
|
type PluginOptions = Record<string, unknown>
|
|
53
54
|
|
|
54
55
|
/**
|
|
56
|
+
* The main component to use in the application code.
|
|
57
|
+
* @remarks
|
|
58
|
+
* The Player object provides very basic API to control playback.
|
|
59
|
+
* To build a sophisticated UI, use the plugins framework to tap into the Clappr core.
|
|
60
|
+
* {@link https://github.com/clappr/clappr/wiki/Architecture}
|
|
55
61
|
* @beta
|
|
56
62
|
*/
|
|
57
63
|
export class Player {
|
|
@@ -73,23 +79,41 @@ export class Player {
|
|
|
73
79
|
this.setConfig(config)
|
|
74
80
|
}
|
|
75
81
|
|
|
82
|
+
/**
|
|
83
|
+
* Adds a listener to a player event
|
|
84
|
+
* @param event - See {@link PlayerEvent}
|
|
85
|
+
* @param handler - See {@link PlayerEventHandler}
|
|
86
|
+
*/
|
|
76
87
|
on<T extends PlayerEvent>(event: T, handler: PlayerEventHandler<T>) {
|
|
77
88
|
this.emitter.on(event, handler)
|
|
78
89
|
}
|
|
79
90
|
|
|
91
|
+
/**
|
|
92
|
+
* Removes a listener from a player event
|
|
93
|
+
* @param event - See {@link PlayerEvent}
|
|
94
|
+
* @param handler - See {@link PlayerEventHandler}
|
|
95
|
+
*/
|
|
80
96
|
off<T extends PlayerEvent>(event: T, handler: PlayerEventHandler<T>) {
|
|
81
97
|
this.emitter.off(event, handler)
|
|
82
98
|
}
|
|
83
99
|
|
|
100
|
+
/**
|
|
101
|
+
* Configures the player.
|
|
102
|
+
*
|
|
103
|
+
* Can be called multiple times. Each consequent call extends the previous configuration.
|
|
104
|
+
* After a reconfiguration, if something significant has changed, the must be reinitialized (i.e, a `.destroy()` followed by an `.init()` call).
|
|
105
|
+
*
|
|
106
|
+
* @param config - complete or partial configuration
|
|
107
|
+
*/
|
|
84
108
|
configure(config: Partial<PlayerConfig>) {
|
|
85
109
|
this.setConfig(config)
|
|
86
110
|
}
|
|
87
111
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
112
|
+
/**
|
|
113
|
+
* Initializes the player at the given container element.
|
|
114
|
+
* @param playerElement - DOM element to host the player
|
|
115
|
+
*/
|
|
116
|
+
attachTo(playerElement: HTMLElement): void {
|
|
93
117
|
assert.ok(!this.player, 'Player already initialized')
|
|
94
118
|
assert.ok(playerElement, 'Player container element is required')
|
|
95
119
|
if (this.config.debug === 'all' || this.config.debug === 'clappr') {
|
|
@@ -114,6 +138,9 @@ export class Player {
|
|
|
114
138
|
return this.initPlayer(coreOpts)
|
|
115
139
|
}
|
|
116
140
|
|
|
141
|
+
/**
|
|
142
|
+
* Destroys the player, releasing all resources and removing any DOM elements added.
|
|
143
|
+
*/
|
|
117
144
|
destroy() {
|
|
118
145
|
trace(`${T} destroy`, {
|
|
119
146
|
player: !!this.player,
|
|
@@ -130,46 +157,100 @@ export class Player {
|
|
|
130
157
|
}
|
|
131
158
|
}
|
|
132
159
|
|
|
160
|
+
/**
|
|
161
|
+
* Current playback time in seconds, if appropriate.
|
|
162
|
+
* @returns For live streams, it returns the current time of the current segment.
|
|
163
|
+
*/
|
|
164
|
+
getCurrentTime(): number {
|
|
165
|
+
if (!this.player) {
|
|
166
|
+
return 0
|
|
167
|
+
}
|
|
168
|
+
return this.player.getCurrentTime()
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Duration of the current media in seconds, if appropriate.
|
|
173
|
+
* @returns For live streams, it returns the duration of the current segment.
|
|
174
|
+
*/
|
|
175
|
+
getDuration(): number {
|
|
176
|
+
if (!this.player) {
|
|
177
|
+
return 0
|
|
178
|
+
}
|
|
179
|
+
return this.player.getDuration()
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Mutes the player.
|
|
184
|
+
*/
|
|
185
|
+
mute() {
|
|
186
|
+
this.player?.mute()
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Unmutes the player.
|
|
191
|
+
*/
|
|
192
|
+
unmute() {
|
|
193
|
+
this.player?.unmute()
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Pauses playback.
|
|
198
|
+
*/
|
|
133
199
|
pause() {
|
|
134
|
-
|
|
135
|
-
this.player.pause()
|
|
200
|
+
this.player?.pause()
|
|
136
201
|
}
|
|
137
202
|
|
|
203
|
+
/**
|
|
204
|
+
* Starts playback.
|
|
205
|
+
*/
|
|
138
206
|
play() {
|
|
139
|
-
|
|
140
|
-
this.player.play()
|
|
207
|
+
this.player?.play()
|
|
141
208
|
}
|
|
142
209
|
|
|
210
|
+
/**
|
|
211
|
+
* Resizes the player container element and everything within it.
|
|
212
|
+
* @param newSize - new size of the player
|
|
213
|
+
*/
|
|
143
214
|
resize(newSize: { width: number; height: number }) {
|
|
144
|
-
|
|
145
|
-
trace(`${T} resize not initialized`, { newSize })
|
|
146
|
-
return
|
|
147
|
-
}
|
|
148
|
-
trace(`${T} resize`, {
|
|
149
|
-
newSize,
|
|
150
|
-
})
|
|
151
|
-
this.player.resize(newSize)
|
|
215
|
+
this.player?.resize(newSize)
|
|
152
216
|
}
|
|
153
217
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
218
|
+
/**
|
|
219
|
+
* Seeks to the given time.
|
|
220
|
+
* @param time - time to seek to in seconds
|
|
221
|
+
*/
|
|
222
|
+
seek(time: number) {
|
|
223
|
+
this.player?.seek(time)
|
|
157
224
|
}
|
|
158
225
|
|
|
226
|
+
/**
|
|
227
|
+
* Stops playback.
|
|
228
|
+
*/
|
|
159
229
|
stop() {
|
|
160
|
-
|
|
161
|
-
this.player.stop()
|
|
230
|
+
this.player?.stop()
|
|
162
231
|
}
|
|
163
232
|
|
|
233
|
+
/**
|
|
234
|
+
* Registers a plugin.
|
|
235
|
+
* @param plugin - plugin to register
|
|
236
|
+
*/
|
|
164
237
|
static registerPlugin(plugin: PlayerPlugin) {
|
|
165
238
|
Loader.registerPlugin(plugin)
|
|
166
239
|
}
|
|
167
240
|
|
|
241
|
+
/**
|
|
242
|
+
* Unregisters a plugin.
|
|
243
|
+
* @param plugin - plugin to unregister
|
|
244
|
+
*/
|
|
168
245
|
static unregisterPlugin(plugin: PlayerPlugin) {
|
|
169
246
|
Loader.unregisterPlugin(plugin)
|
|
170
247
|
}
|
|
171
248
|
|
|
172
|
-
private
|
|
249
|
+
private setConfig(config: Partial<PlayerConfig>) {
|
|
250
|
+
this.config = $.extend(true, this.config, config)
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
private initPlayer(coreOptions: CoreOptions): void {
|
|
173
254
|
trace(`${T} initPlayer`, {
|
|
174
255
|
// TODO selected options
|
|
175
256
|
})
|
|
@@ -321,7 +402,7 @@ export class Player {
|
|
|
321
402
|
this.rootNode = rootNode
|
|
322
403
|
|
|
323
404
|
const coreOptions: CoreOptions & PluginOptions = {
|
|
324
|
-
...this.config
|
|
405
|
+
...this.config, // plugin settings
|
|
325
406
|
allowUserInteraction: true,
|
|
326
407
|
autoPlay: false,
|
|
327
408
|
dash: this.config.dash,
|
package/src/index.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Video player for the GCore streaming platform
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* This package provides a video player for the GCore streaming platform.
|
|
6
|
+
* It is built on top of the Clappr library and provides a framework for building custom integrations.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
export { setTracer } from "@gcorevideo/utils";
|
|
1
12
|
export * from "./Player.js"
|
|
2
13
|
export * from "./playback.types.js";
|
|
3
|
-
export * from "./trace/LogTracer.js";
|
|
4
|
-
export * from "./trace/SentryTracer.js";
|
|
5
|
-
export * from "./trace/index.js";
|
|
6
|
-
export * from "./trace/types.js";
|
|
7
14
|
export * from "./types.js";
|
|
8
|
-
export * from "./utils/Logger.js";
|
|
9
15
|
export * from "./version.js";
|
package/src/internal.types.ts
CHANGED
|
@@ -3,7 +3,8 @@ import type {
|
|
|
3
3
|
ContainerPlugin,
|
|
4
4
|
Playback as ClapprPlayback,
|
|
5
5
|
} from "@clappr/core";
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
import { PlaybackType, PlayerDebugTag, PlayerMediaSource } from "./types";
|
|
7
8
|
|
|
8
9
|
type ExternalTrack = {
|
|
9
10
|
kind?: "subtitles" | "captions";
|
|
@@ -18,13 +19,10 @@ type MediacontrolStyles = {
|
|
|
18
19
|
buttons?: string;
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
export type PlayerMediaSource = string | PlayerMediaSourceDesc;
|
|
27
|
-
|
|
22
|
+
/**
|
|
23
|
+
* HLS.js configuration options to use with the HlsPlayback plugin.
|
|
24
|
+
* @beta
|
|
25
|
+
*/
|
|
28
26
|
type HlsjsConfig = {
|
|
29
27
|
debug?: boolean;
|
|
30
28
|
startLevel?: number;
|
|
@@ -32,7 +30,11 @@ type HlsjsConfig = {
|
|
|
32
30
|
|
|
33
31
|
type ShakaConfig = Record<string, unknown>;
|
|
34
32
|
|
|
35
|
-
|
|
33
|
+
/**
|
|
34
|
+
* @see {@link https://github.com/clappr/clappr-core?tab=readme-ov-file#playback-configuration | the Clappr playback settings}
|
|
35
|
+
* @beta
|
|
36
|
+
*/
|
|
37
|
+
export interface CorePlaybackConfig {
|
|
36
38
|
// audioOnly: boolean;
|
|
37
39
|
disableContextMenu?: boolean;
|
|
38
40
|
controls?: boolean;
|
|
@@ -56,6 +58,9 @@ type CorePlaybackConfig = {
|
|
|
56
58
|
|
|
57
59
|
type ErrorLevel = "FATAL" | "WARN" | "INFO";
|
|
58
60
|
|
|
61
|
+
/**
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
59
64
|
export type PlaybackError = {
|
|
60
65
|
code?: number | string;
|
|
61
66
|
description: string;
|
|
@@ -63,6 +68,9 @@ export type PlaybackError = {
|
|
|
63
68
|
level?: ErrorLevel;
|
|
64
69
|
}
|
|
65
70
|
|
|
71
|
+
/**
|
|
72
|
+
* @internal
|
|
73
|
+
*/
|
|
66
74
|
export type CorePlayerEvents = {
|
|
67
75
|
// TODO event arguments types
|
|
68
76
|
onReady?: () => void;
|
|
@@ -78,13 +86,15 @@ export type CorePlayerEvents = {
|
|
|
78
86
|
onSubtitleAvailable?: () => void;
|
|
79
87
|
}
|
|
80
88
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
|
|
89
|
+
/**
|
|
90
|
+
* @internal
|
|
91
|
+
*/
|
|
86
92
|
export type PlaybackPluginFactory = typeof ClapprPlayback;
|
|
87
93
|
|
|
94
|
+
/**
|
|
95
|
+
* For the plugin development
|
|
96
|
+
* @internal
|
|
97
|
+
*/
|
|
88
98
|
export type CorePluginOptions = {
|
|
89
99
|
core?: CorePlugin[];
|
|
90
100
|
container?: ContainerPlugin[];
|
|
@@ -93,6 +103,10 @@ export type CorePluginOptions = {
|
|
|
93
103
|
loadExternalPlaybacksFirst?: boolean;
|
|
94
104
|
}
|
|
95
105
|
|
|
106
|
+
/**
|
|
107
|
+
* For the plugin development
|
|
108
|
+
* @internal
|
|
109
|
+
*/
|
|
96
110
|
export type CoreOptions = {
|
|
97
111
|
actualLiveTime?: boolean;
|
|
98
112
|
actualLiveServerTime?: string;
|
|
@@ -116,7 +130,6 @@ export type CoreOptions = {
|
|
|
116
130
|
maxBufferLength?: number;
|
|
117
131
|
mediacontrol?: MediacontrolStyles;
|
|
118
132
|
mimeType?: string;
|
|
119
|
-
// multisources: StreamMediaSource[];
|
|
120
133
|
mute?: boolean;
|
|
121
134
|
persistConfig?: boolean;
|
|
122
135
|
preload?: "auto" | "metadata" | "none";
|
package/src/playback.types.ts
CHANGED
|
@@ -1,22 +1,36 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* For the plugin development
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
1
6
|
export type TimeValue = number;
|
|
2
7
|
|
|
8
|
+
/**
|
|
9
|
+
* For the plugin development
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
3
12
|
export type TimePosition = {
|
|
4
13
|
current: TimeValue;
|
|
5
14
|
total: TimeValue;
|
|
6
15
|
}
|
|
7
16
|
|
|
17
|
+
/**
|
|
18
|
+
* For the plugin development
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
8
21
|
export type TimeProgress = TimePosition & { start: number; };
|
|
9
22
|
|
|
23
|
+
/**
|
|
24
|
+
* For the plugin development
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
10
27
|
export type TimeUpdate = TimePosition & {
|
|
11
28
|
firstFragDateTime: number;
|
|
12
29
|
};
|
|
13
30
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
height: number;
|
|
18
|
-
}
|
|
19
|
-
|
|
31
|
+
/**
|
|
32
|
+
* @beta
|
|
33
|
+
*/
|
|
20
34
|
export type QualityLevel = {
|
|
21
35
|
level: number // index
|
|
22
36
|
width: number
|
|
@@ -11,7 +11,7 @@ import DASHJS, {
|
|
|
11
11
|
MetricEvent as DashMetricEvent,
|
|
12
12
|
IManifestInfo,
|
|
13
13
|
} from 'dashjs'
|
|
14
|
-
import { trace } from '
|
|
14
|
+
import { trace } from '@gcorevideo/utils'
|
|
15
15
|
|
|
16
16
|
import { QualityLevel, TimePosition, TimeValue } from '../../playback.types.js'
|
|
17
17
|
|
|
@@ -18,7 +18,7 @@ import HLSJS, {
|
|
|
18
18
|
} from 'hls.js';
|
|
19
19
|
|
|
20
20
|
import { QualityLevel, TimePosition } from '../../playback.types.js';
|
|
21
|
-
import { trace } from '
|
|
21
|
+
import { trace } from '@gcorevideo/utils';
|
|
22
22
|
import { PlaybackType } from '../../types';
|
|
23
23
|
import { TimerId } from '../../utils/types';
|
|
24
24
|
|