@codercms/web-player 0.0.94 → 0.0.96
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/dist/core/Loaders/ShakaLoader.d.ts +2 -9
- package/dist/core/Loaders/ShakaLoader.js +196 -177
- package/dist/core/Loaders/ShakaLoader.js.map +1 -1
- package/dist/core/VideoPlayerMediaLoadManager.d.ts +1 -0
- package/dist/core/VideoPlayerMediaLoadManager.js +19 -3
- package/dist/core/VideoPlayerMediaLoadManager.js.map +1 -1
- package/package.json +1 -1
|
@@ -9,28 +9,21 @@ export declare class ShakaLoader extends BaseLoader {
|
|
|
9
9
|
private static polyfillsInstalled;
|
|
10
10
|
private readonly _player;
|
|
11
11
|
private _isAbrEnabled;
|
|
12
|
-
private
|
|
13
|
-
private _trackPerAudio;
|
|
14
|
-
private _currTrack;
|
|
12
|
+
private _tracksMap;
|
|
15
13
|
private _onVariantChangedCb;
|
|
16
14
|
private _onAdaptationCb;
|
|
17
15
|
private _onTracksChangedCb;
|
|
18
16
|
private _onAbrStatusChangedCb;
|
|
19
|
-
private _isfirstTimeEv;
|
|
20
17
|
constructor(el: HTMLMediaElement, config?: RecursivePartial<shaka.extern.PlayerConfiguration>);
|
|
21
18
|
getAutoQualityLevelId(): number;
|
|
22
19
|
load(params: LoadParams): Promise<void>;
|
|
23
20
|
private _subscribeForShakaEvents;
|
|
24
21
|
private _unsubscribeFromShakaEvents;
|
|
25
|
-
private _onTracksChanged;
|
|
26
22
|
private _handleTracksChange;
|
|
27
|
-
private
|
|
28
|
-
private _shakaTrackToAudioTrack;
|
|
23
|
+
private _onTracksChanged;
|
|
29
24
|
private _onVariantChanged;
|
|
30
25
|
private _onAdaptation;
|
|
31
26
|
private _onAbrStatusChanged;
|
|
32
|
-
private _handleQualityLevelsChange;
|
|
33
|
-
private _handleAudioTracksChange;
|
|
34
27
|
stop(): void;
|
|
35
28
|
switchAudioTrack(id: number, graceful: boolean): void;
|
|
36
29
|
switchQualityLevel(id: number, graceful: boolean): void;
|
|
@@ -1,20 +1,136 @@
|
|
|
1
1
|
import { LoaderEvents, LoaderType } from './LoaderInterface.js';
|
|
2
2
|
import { BaseLoader } from './BaseLoader.js';
|
|
3
|
-
// import type { AudioTrack } from '../types/AudioTrack.js';
|
|
4
3
|
import shaka from 'shaka-player/dist/shaka-player.compiled';
|
|
4
|
+
class TracksMap {
|
|
5
|
+
_tracks = [];
|
|
6
|
+
_currTrack = null;
|
|
7
|
+
_currAudioTrack = null;
|
|
8
|
+
// Grouping raw shaka variants per audioId
|
|
9
|
+
_trackPerAudio = new Map();
|
|
10
|
+
// Mapping in format surrogate id => shaka audio ID
|
|
11
|
+
_internalAudioIdsToShakaIds = new Map();
|
|
12
|
+
// Mapping in format shaka audio ID => surrogate id
|
|
13
|
+
_shakaIdsToInternalAudioIds = new Map();
|
|
14
|
+
// Unique audio tracks available
|
|
15
|
+
_audioTracks = [];
|
|
16
|
+
// Quality levels grouped by surrogate audio ID
|
|
17
|
+
_qualityLevelsPerAudio = new Map();
|
|
18
|
+
clear() {
|
|
19
|
+
this._tracks = [];
|
|
20
|
+
this._currTrack = null;
|
|
21
|
+
this._currAudioTrack = null;
|
|
22
|
+
this._trackPerAudio.clear();
|
|
23
|
+
this._internalAudioIdsToShakaIds.clear();
|
|
24
|
+
this._shakaIdsToInternalAudioIds.clear();
|
|
25
|
+
this._audioTracks = [];
|
|
26
|
+
this._qualityLevelsPerAudio.clear();
|
|
27
|
+
}
|
|
28
|
+
map(tracks) {
|
|
29
|
+
this.clear();
|
|
30
|
+
this._tracks = tracks;
|
|
31
|
+
let currTrack = null;
|
|
32
|
+
let currentInternalId = 0;
|
|
33
|
+
for (const track of tracks) {
|
|
34
|
+
if (track.active) {
|
|
35
|
+
currTrack = track;
|
|
36
|
+
}
|
|
37
|
+
const shakaAudioId = track.audioId ?? -1;
|
|
38
|
+
if (!this._shakaIdsToInternalAudioIds.has(shakaAudioId)) {
|
|
39
|
+
this._shakaIdsToInternalAudioIds.set(shakaAudioId, currentInternalId);
|
|
40
|
+
this._internalAudioIdsToShakaIds.set(currentInternalId, shakaAudioId);
|
|
41
|
+
const mappedTrack = {
|
|
42
|
+
id: currentInternalId,
|
|
43
|
+
bitrate: track.audioBandwidth ?? null,
|
|
44
|
+
name: track.originalAudioId ?? 'unnamed',
|
|
45
|
+
loaderData: track
|
|
46
|
+
};
|
|
47
|
+
this._audioTracks.push(mappedTrack);
|
|
48
|
+
this._trackPerAudio.set(shakaAudioId, []);
|
|
49
|
+
this._qualityLevelsPerAudio.set(shakaAudioId, []);
|
|
50
|
+
currentInternalId++;
|
|
51
|
+
}
|
|
52
|
+
const qLevel = {
|
|
53
|
+
id: track.id,
|
|
54
|
+
bitrate: track.videoBandwidth ?? track.bandwidth ?? null,
|
|
55
|
+
width: track.width,
|
|
56
|
+
height: track.height,
|
|
57
|
+
loaderData: track
|
|
58
|
+
};
|
|
59
|
+
this._trackPerAudio.get(shakaAudioId).push(track);
|
|
60
|
+
this._qualityLevelsPerAudio.get(shakaAudioId).push(qLevel);
|
|
61
|
+
}
|
|
62
|
+
this.setCurrTrack(currTrack);
|
|
63
|
+
}
|
|
64
|
+
setCurrTrack(track) {
|
|
65
|
+
const res = { trackChanged: false, audioChanged: false };
|
|
66
|
+
const foundTrack = this.getTrackById(track.id);
|
|
67
|
+
if (!foundTrack) {
|
|
68
|
+
console.error('Trying to set current track that is not in list of track', track);
|
|
69
|
+
throw Error('Trying to set current track that is not in list of track');
|
|
70
|
+
}
|
|
71
|
+
if (this._currTrack?.id === track.id) {
|
|
72
|
+
return res;
|
|
73
|
+
}
|
|
74
|
+
res.trackChanged = true;
|
|
75
|
+
res.audioChanged = track.audioId !== this._currTrack?.audioId;
|
|
76
|
+
this._currTrack = track;
|
|
77
|
+
if (res.audioChanged) {
|
|
78
|
+
const internalTrackId = this._shakaIdsToInternalAudioIds.get(track.audioId ?? -1);
|
|
79
|
+
if (internalTrackId === undefined) {
|
|
80
|
+
console.error(`Attempting to change audio track to not existing, shakaAudioId=${track.audioId ?? -1}`);
|
|
81
|
+
throw Error('Trying to set current track for which audio track does not exists');
|
|
82
|
+
}
|
|
83
|
+
const audioTrack = this._audioTracks.find((audTrack) => audTrack.id === internalTrackId);
|
|
84
|
+
if (audioTrack === undefined) {
|
|
85
|
+
console.error(`Audio track does not exists shakaAudioId=${track.audioId ?? -1} internalTrackId=${internalTrackId}`);
|
|
86
|
+
throw Error('Trying to set current track for which audio track does not exists');
|
|
87
|
+
}
|
|
88
|
+
this._currAudioTrack = audioTrack;
|
|
89
|
+
}
|
|
90
|
+
return res;
|
|
91
|
+
}
|
|
92
|
+
hasTracks() {
|
|
93
|
+
return this._tracks.length > 0;
|
|
94
|
+
}
|
|
95
|
+
getAudioTracks() {
|
|
96
|
+
return this._audioTracks;
|
|
97
|
+
}
|
|
98
|
+
getCurrentQualityLevels() {
|
|
99
|
+
if (!this._currTrack) {
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
return this._qualityLevelsPerAudio.get(this._currTrack.audioId ?? -1) ?? [];
|
|
103
|
+
}
|
|
104
|
+
getQualityLevelsForShakaAudioId(audioId) {
|
|
105
|
+
return this._qualityLevelsPerAudio.get(audioId ?? -1) ?? [];
|
|
106
|
+
}
|
|
107
|
+
getCurrentTrack() {
|
|
108
|
+
return this._currTrack;
|
|
109
|
+
}
|
|
110
|
+
getCurrentAudioTrack() {
|
|
111
|
+
return this._currAudioTrack;
|
|
112
|
+
}
|
|
113
|
+
getTrackById(id) {
|
|
114
|
+
return this._tracks.find((track) => track.id === id);
|
|
115
|
+
}
|
|
116
|
+
getTracksPerInternalAudioId(audioId) {
|
|
117
|
+
const shakaAudioId = this._internalAudioIdsToShakaIds.get(audioId);
|
|
118
|
+
if (shakaAudioId === undefined) {
|
|
119
|
+
return [];
|
|
120
|
+
}
|
|
121
|
+
return this._trackPerAudio.get(shakaAudioId) ?? [];
|
|
122
|
+
}
|
|
123
|
+
}
|
|
5
124
|
export class ShakaLoader extends BaseLoader {
|
|
6
125
|
type = LoaderType.Shaka;
|
|
7
126
|
static polyfillsInstalled = false;
|
|
8
127
|
_player;
|
|
9
128
|
_isAbrEnabled = false;
|
|
10
|
-
|
|
11
|
-
_trackPerAudio = new Map();
|
|
12
|
-
_currTrack = null;
|
|
129
|
+
_tracksMap = new TracksMap();
|
|
13
130
|
_onVariantChangedCb = this._onVariantChanged.bind(this);
|
|
14
131
|
_onAdaptationCb = this._onAdaptation.bind(this);
|
|
15
132
|
_onTracksChangedCb = this._onTracksChanged.bind(this);
|
|
16
133
|
_onAbrStatusChangedCb = this._onAbrStatusChanged.bind(this);
|
|
17
|
-
_isfirstTimeEv = true;
|
|
18
134
|
constructor(el, config) {
|
|
19
135
|
super(el);
|
|
20
136
|
this._player = new shaka.Player();
|
|
@@ -67,11 +183,23 @@ export class ShakaLoader extends BaseLoader {
|
|
|
67
183
|
// Emit a loading event
|
|
68
184
|
this.emitter.emit(LoaderEvents.Loading, params);
|
|
69
185
|
this._subscribeForShakaEvents();
|
|
186
|
+
const abortPromise = new Promise((resolve, reject) => {
|
|
187
|
+
params.abortSignal.addEventListener('abort', () => {
|
|
188
|
+
try {
|
|
189
|
+
this._player.unload(false, false);
|
|
190
|
+
}
|
|
191
|
+
catch (e) {
|
|
192
|
+
// Ignore any underlying errors
|
|
193
|
+
}
|
|
194
|
+
reject(new DOMException('Loading aborted', 'AbortError'));
|
|
195
|
+
}, { once: true });
|
|
196
|
+
});
|
|
197
|
+
const loadPromise = this._player.load(params.url, params.startPosition ?? null, params.mimeType ?? null);
|
|
70
198
|
try {
|
|
71
|
-
await
|
|
199
|
+
await Promise.race([abortPromise, loadPromise]);
|
|
72
200
|
}
|
|
73
201
|
catch (e) {
|
|
74
|
-
|
|
202
|
+
this._unsubscribeFromShakaEvents();
|
|
75
203
|
throw e;
|
|
76
204
|
}
|
|
77
205
|
return;
|
|
@@ -87,177 +215,65 @@ export class ShakaLoader extends BaseLoader {
|
|
|
87
215
|
this._player.addEventListener('abrstatuschanged', this._onAbrStatusChangedCb);
|
|
88
216
|
}
|
|
89
217
|
_unsubscribeFromShakaEvents() {
|
|
90
|
-
this._isfirstTimeEv = true;
|
|
91
218
|
this._player.removeEventListener('variantchanged', this._onVariantChangedCb);
|
|
92
219
|
this._player.removeEventListener('adaptation', this._onAdaptationCb);
|
|
93
220
|
this._player.removeEventListener('trackschanged', this._onTracksChangedCb);
|
|
94
221
|
this._player.removeEventListener('abrstatuschanged', this._onAbrStatusChangedCb);
|
|
95
222
|
}
|
|
96
|
-
_onTracksChanged() {
|
|
97
|
-
this._handleTracksChange();
|
|
98
|
-
}
|
|
99
223
|
_handleTracksChange() {
|
|
100
|
-
this.
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
this.
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
const availableAudioTracks = [];
|
|
110
|
-
for (const [audioId, tracks] of this._trackPerAudio.entries()) {
|
|
111
|
-
availableAudioTracks.push(this._shakaTrackToAudioTrack(tracks[0]));
|
|
112
|
-
}
|
|
113
|
-
let availableQualityLevels;
|
|
114
|
-
if (this._currTrack) {
|
|
115
|
-
availableQualityLevels = this._tracks.filter((track) => track.audioId === this._currTrack?.audioId);
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
availableQualityLevels = this._tracks;
|
|
119
|
-
}
|
|
120
|
-
const qualityLevels = availableQualityLevels.map((lvl) => this._shakaTrackToQualityLevel(lvl));
|
|
121
|
-
this.emitter.emit(LoaderEvents.QualityLevelsUpdated, qualityLevels);
|
|
122
|
-
this.emitter.emit(LoaderEvents.AudioTracksUpdated, availableAudioTracks);
|
|
123
|
-
if (this._currTrack) {
|
|
124
|
-
this.emitter.emit(LoaderEvents.QualityLevelSwitched, this._currTrack.id, this._isAbrEnabled);
|
|
125
|
-
if (this._currTrack.audioId !== null) {
|
|
126
|
-
this.emitter.emit(LoaderEvents.AudioTrackSwitched, this._currTrack.audioId);
|
|
224
|
+
this._tracksMap.map(this._player.getVariantTracks());
|
|
225
|
+
this.emitter.emit(LoaderEvents.QualityLevelsUpdated, this._tracksMap.getCurrentQualityLevels());
|
|
226
|
+
this.emitter.emit(LoaderEvents.AudioTracksUpdated, this._tracksMap.getAudioTracks());
|
|
227
|
+
const currTrack = this._tracksMap.getCurrentTrack();
|
|
228
|
+
if (currTrack) {
|
|
229
|
+
this.emitter.emit(LoaderEvents.QualityLevelSwitched, currTrack.id, this._isAbrEnabled);
|
|
230
|
+
const currAudioTrack = this._tracksMap.getCurrentAudioTrack();
|
|
231
|
+
if (currAudioTrack) {
|
|
232
|
+
this.emitter.emit(LoaderEvents.AudioTrackSwitched, currAudioTrack.id);
|
|
127
233
|
}
|
|
128
234
|
}
|
|
129
235
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
width: track.width,
|
|
134
|
-
height: track.height,
|
|
135
|
-
bitrate: track.videoBandwidth ?? track.bandwidth,
|
|
136
|
-
loaderData: track
|
|
137
|
-
};
|
|
138
|
-
return lvl;
|
|
139
|
-
}
|
|
140
|
-
_shakaTrackToAudioTrack(track) {
|
|
141
|
-
const lvl = {
|
|
142
|
-
id: track.audioId,
|
|
143
|
-
name: track.originalAudioId ?? 'unnamed',
|
|
144
|
-
bitrate: track.audioBandwidth,
|
|
145
|
-
loaderData: track
|
|
146
|
-
};
|
|
147
|
-
return lvl;
|
|
236
|
+
_onTracksChanged() {
|
|
237
|
+
console.log('[shaka-loader] TracksChangedEvent');
|
|
238
|
+
this._handleTracksChange();
|
|
148
239
|
}
|
|
149
240
|
_onVariantChanged(ev) {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
if (prevTrack?.id !== currTrack.id) {
|
|
158
|
-
this.emitter.emit(LoaderEvents.QualityLevelSwitched, currTrack.id, this._isAbrEnabled);
|
|
241
|
+
console.log('[shaka-loader] VariantChangedEvent', ev);
|
|
242
|
+
const trackChangeRes = this._tracksMap.setCurrTrack(ev.newTrack);
|
|
243
|
+
if (trackChangeRes.audioChanged) {
|
|
244
|
+
this.emitter.emit(LoaderEvents.QualityLevelsUpdated, this._tracksMap.getCurrentQualityLevels());
|
|
245
|
+
this.emitter.emit(LoaderEvents.QualityLevelSwitched, ev.newTrack.id, this._isAbrEnabled);
|
|
246
|
+
this.emitter.emit(LoaderEvents.AudioTrackSwitched, this._tracksMap.getCurrentAudioTrack().id);
|
|
247
|
+
return;
|
|
159
248
|
}
|
|
160
|
-
if (
|
|
161
|
-
this.emitter.emit(LoaderEvents.
|
|
249
|
+
if (trackChangeRes.trackChanged) {
|
|
250
|
+
this.emitter.emit(LoaderEvents.QualityLevelSwitched, ev.newTrack.id, this._isAbrEnabled);
|
|
251
|
+
return;
|
|
162
252
|
}
|
|
163
253
|
}
|
|
164
254
|
_onAdaptation(ev) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
const
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
255
|
+
console.log('[shaka-loader] AdaptationEvent', ev);
|
|
256
|
+
if (!this._tracksMap.hasTracks()) {
|
|
257
|
+
// Ignore event until there will be tracks arrived
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
const trackChangeRes = this._tracksMap.setCurrTrack(ev.newTrack);
|
|
261
|
+
if (trackChangeRes.trackChanged) {
|
|
262
|
+
this.emitter.emit(LoaderEvents.QualityLevelSwitched, ev.newTrack.id, this._isAbrEnabled);
|
|
263
|
+
return;
|
|
174
264
|
}
|
|
175
265
|
}
|
|
176
266
|
_onAbrStatusChanged(ev) {
|
|
177
|
-
|
|
178
|
-
this._isfirstTimeEv = false;
|
|
179
|
-
this._handleTracksChange();
|
|
180
|
-
}
|
|
267
|
+
console.log('[shaka-loader] AbrStatusChangedEvent', ev);
|
|
181
268
|
const abrEnabled = ev.newStatus;
|
|
182
269
|
if (this._isAbrEnabled !== abrEnabled) {
|
|
183
270
|
this._isAbrEnabled = abrEnabled;
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
let rawTracks = this._player.getVariantTracks();
|
|
189
|
-
// If there is a selected variant track, then we filter out any tracks in
|
|
190
|
-
// a different language. Then we use those remaining tracks to display the
|
|
191
|
-
// available resolutions.
|
|
192
|
-
const activeTrack = this._currTrack;
|
|
193
|
-
if (activeTrack) {
|
|
194
|
-
// Filter track by audio id
|
|
195
|
-
rawTracks = rawTracks.filter((rawTrack) => rawTrack.audioId === activeTrack.audioId);
|
|
196
|
-
// console.log('filtered tracks', rawTracks);
|
|
197
|
-
}
|
|
198
|
-
// Remove duplicate entries with the same resolution or quality depending
|
|
199
|
-
// on content type. Pick an arbitrary one.
|
|
200
|
-
// rawTracks = rawTracks.filter((track: shaka.extern.Track, idx: number) => {
|
|
201
|
-
// // Keep the first one with the same height and framerate or bandwidth.
|
|
202
|
-
// let otherIdx = -1;
|
|
203
|
-
// if (this._player.isAudioOnly()) {
|
|
204
|
-
// otherIdx = rawTracks.findIndex((t: shaka.extern.Track) => t.bandwidth == track.bandwidth);
|
|
205
|
-
// } else {
|
|
206
|
-
// otherIdx = rawTracks.findIndex((t: shaka.extern.Track) => {
|
|
207
|
-
// return (
|
|
208
|
-
// t.height == track.height &&
|
|
209
|
-
// t.frameRate == track.frameRate &&
|
|
210
|
-
// t.hdr == track.hdr &&
|
|
211
|
-
// t.videoLayout == track.videoLayout
|
|
212
|
-
// );
|
|
213
|
-
// });
|
|
214
|
-
// }
|
|
215
|
-
// return otherIdx == idx;
|
|
216
|
-
// });
|
|
217
|
-
// Sort the tracks by height or bandwidth depending on content type.
|
|
218
|
-
if (this._player.isAudioOnly()) {
|
|
219
|
-
rawTracks.sort((t1, t2) => {
|
|
220
|
-
return t2.bandwidth - t1.bandwidth;
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
rawTracks.sort((t1, t2) => {
|
|
225
|
-
return t2.height - t1.height;
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
const tracks = [];
|
|
229
|
-
for (const rawTrack of rawTracks) {
|
|
230
|
-
tracks.push({
|
|
231
|
-
id: rawTrack.id,
|
|
232
|
-
bitrate: rawTrack.bandwidth,
|
|
233
|
-
height: rawTrack.height,
|
|
234
|
-
width: rawTrack.width,
|
|
235
|
-
loaderData: rawTrack
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
this.emitter.emit(LoaderEvents.QualityLevelsUpdated, tracks);
|
|
239
|
-
// if (this._currTrack)
|
|
240
|
-
}
|
|
241
|
-
_handleAudioTracksChange() {
|
|
242
|
-
const usedTracks = {};
|
|
243
|
-
const tracks = [];
|
|
244
|
-
for (const rawTrack of this._tracks) {
|
|
245
|
-
// skip non-audio tracks
|
|
246
|
-
if (!rawTrack.audioId) {
|
|
247
|
-
continue;
|
|
248
|
-
}
|
|
249
|
-
if (usedTracks[rawTrack.audioId]) {
|
|
250
|
-
continue;
|
|
271
|
+
const currTrack = this._tracksMap.getCurrentTrack();
|
|
272
|
+
// Dispatch event only when there is selected track exists
|
|
273
|
+
if (currTrack) {
|
|
274
|
+
this.emitter.emit(LoaderEvents.QualityLevelSwitched, currTrack.id, abrEnabled);
|
|
251
275
|
}
|
|
252
|
-
usedTracks[rawTrack.audioId] = true;
|
|
253
|
-
tracks.push({
|
|
254
|
-
id: rawTrack.audioId,
|
|
255
|
-
name: rawTrack.originalAudioId ?? 'unnamed',
|
|
256
|
-
bitrate: rawTrack.audioBandwidth,
|
|
257
|
-
loaderData: rawTrack
|
|
258
|
-
});
|
|
259
276
|
}
|
|
260
|
-
this.emitter.emit(LoaderEvents.AudioTracksUpdated, tracks);
|
|
261
277
|
}
|
|
262
278
|
stop() {
|
|
263
279
|
try {
|
|
@@ -273,45 +289,54 @@ export class ShakaLoader extends BaseLoader {
|
|
|
273
289
|
console.warn('ShakaPlayer detach err', e);
|
|
274
290
|
}
|
|
275
291
|
this._unsubscribeFromShakaEvents();
|
|
276
|
-
this.
|
|
277
|
-
this._trackPerAudio.clear();
|
|
292
|
+
this._tracksMap.clear();
|
|
278
293
|
}
|
|
279
294
|
switchAudioTrack(id, graceful) {
|
|
280
295
|
if (!this._player) {
|
|
281
296
|
return;
|
|
282
297
|
}
|
|
283
|
-
const
|
|
284
|
-
if (
|
|
285
|
-
// Do nothing, there is no actual change
|
|
286
|
-
return;
|
|
287
|
-
}
|
|
288
|
-
const availableTracks = this._tracks.filter((track) => track.audioId === id);
|
|
289
|
-
if (!availableTracks.length) {
|
|
298
|
+
const foundTracks = this._tracksMap.getTracksPerInternalAudioId(id);
|
|
299
|
+
if (!foundTracks.length) {
|
|
290
300
|
console.warn('[shaka-loader] Attempting to select not existing audio track', {
|
|
291
301
|
audioId: id,
|
|
292
302
|
tracks: this._player.getVariantTracks()
|
|
293
303
|
});
|
|
294
304
|
return;
|
|
295
305
|
}
|
|
306
|
+
const currTrack = this._tracksMap.getTrackById(id);
|
|
307
|
+
if (currTrack && currTrack?.audioId === foundTracks[0].audioId) {
|
|
308
|
+
// Do nothing, there is no actual change
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
let bestTrack = foundTracks[0];
|
|
296
312
|
// Chose best fitting variant by quality
|
|
297
313
|
if (currTrack && Number(currTrack.height) > 0) {
|
|
298
314
|
// Find most closest track by height
|
|
299
315
|
let minDiff = 0xffffffff;
|
|
300
316
|
let minDiffTrack = null;
|
|
301
|
-
for (const track of
|
|
317
|
+
for (const track of foundTracks) {
|
|
302
318
|
const diff = track.height - currTrack.height;
|
|
303
319
|
if (diff < minDiff) {
|
|
304
320
|
minDiff = diff;
|
|
305
321
|
minDiffTrack = track;
|
|
306
322
|
}
|
|
307
323
|
}
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
324
|
+
if (minDiffTrack) {
|
|
325
|
+
bestTrack = minDiffTrack;
|
|
326
|
+
}
|
|
311
327
|
}
|
|
312
328
|
this.emitter.emit(LoaderEvents.AudioTrackSwitching, id);
|
|
329
|
+
const isAbrEnabled = this._isAbrEnabled;
|
|
330
|
+
// Disable ABR before track change
|
|
331
|
+
if (isAbrEnabled) {
|
|
332
|
+
this._player.configure({ abr: { enabled: false } });
|
|
333
|
+
}
|
|
313
334
|
// Set audio track with no matter of video quality (height)
|
|
314
|
-
this._player.selectVariantTrack(
|
|
335
|
+
this._player.selectVariantTrack(bestTrack, !graceful);
|
|
336
|
+
// Re-enable ABR after track was set
|
|
337
|
+
if (isAbrEnabled) {
|
|
338
|
+
this._player.configure({ abr: { enabled: true } });
|
|
339
|
+
}
|
|
315
340
|
}
|
|
316
341
|
switchQualityLevel(id, graceful) {
|
|
317
342
|
if (!this._player) {
|
|
@@ -322,17 +347,11 @@ export class ShakaLoader extends BaseLoader {
|
|
|
322
347
|
this._player.configure({ abr: { enabled: true } });
|
|
323
348
|
return;
|
|
324
349
|
}
|
|
325
|
-
if (id === this.
|
|
350
|
+
if (id === this._tracksMap.getCurrentTrack()?.id) {
|
|
326
351
|
// No actually quality level change, do nothing
|
|
327
352
|
return;
|
|
328
353
|
}
|
|
329
|
-
|
|
330
|
-
for (const track of this._tracks) {
|
|
331
|
-
if (track.id === id) {
|
|
332
|
-
foundTrack = track;
|
|
333
|
-
break;
|
|
334
|
-
}
|
|
335
|
-
}
|
|
354
|
+
const foundTrack = this._tracksMap.getTrackById(id);
|
|
336
355
|
if (!foundTrack) {
|
|
337
356
|
console.warn('[shaka-loader] Requested quality level not found', {
|
|
338
357
|
id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShakaLoader.js","sourceRoot":"","sources":["ShakaLoader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ShakaLoader.js","sourceRoot":"","sources":["ShakaLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ export declare class VideoPlayerMediaLoadManager {
|
|
|
28
28
|
protected _onLoaderAudioTracksUpdatedCb: (newTracks: AudioTrack[]) => void;
|
|
29
29
|
protected _onLoaderAudioTrackSwitchingCb: (newTrackId: number) => void;
|
|
30
30
|
protected _onLoaderAudioTrackSwitchedCb: (newTrackId: number) => void;
|
|
31
|
+
protected _pendingLoadPromise: Promise<void> | null;
|
|
31
32
|
constructor(emitter: EventEmitter<VideoPlayerEventsMap>, mediaState: VideoPlayerMediaState);
|
|
32
33
|
setHlsLoader(hlsLoader: HLSLoader): void;
|
|
33
34
|
setNativeLoader(nativeLoader: NativeLoader): void;
|
|
@@ -40,6 +40,7 @@ export class VideoPlayerMediaLoadManager {
|
|
|
40
40
|
_onLoaderAudioTracksUpdatedCb = this._onLoaderAudioTracksUpdated.bind(this);
|
|
41
41
|
_onLoaderAudioTrackSwitchingCb = this._onLoaderAudioTrackSwitching.bind(this);
|
|
42
42
|
_onLoaderAudioTrackSwitchedCb = this._onLoaderAudioTrackSwitched.bind(this);
|
|
43
|
+
_pendingLoadPromise = null;
|
|
43
44
|
constructor(emitter, mediaState) {
|
|
44
45
|
this.emitter = emitter;
|
|
45
46
|
this.mediaState = mediaState;
|
|
@@ -98,6 +99,16 @@ export class VideoPlayerMediaLoadManager {
|
|
|
98
99
|
}
|
|
99
100
|
async load(params) {
|
|
100
101
|
this.stop('Load is called before previous load is finished');
|
|
102
|
+
// Wait until not finished loading process will be aborted or at least cancelled
|
|
103
|
+
if (this._pendingLoadPromise) {
|
|
104
|
+
try {
|
|
105
|
+
await this._pendingLoadPromise;
|
|
106
|
+
}
|
|
107
|
+
catch (e) {
|
|
108
|
+
// Ignore any errors
|
|
109
|
+
}
|
|
110
|
+
this._pendingLoadPromise = null;
|
|
111
|
+
}
|
|
101
112
|
if (this.currentLoader) {
|
|
102
113
|
this._unsubscribeFromLoaderEvents(this.currentLoader);
|
|
103
114
|
}
|
|
@@ -110,8 +121,14 @@ export class VideoPlayerMediaLoadManager {
|
|
|
110
121
|
const onError = (msg, e) => {
|
|
111
122
|
this.loadAbortController = null;
|
|
112
123
|
this.loadingState = VideoLoadingState.Failed;
|
|
124
|
+
if (e instanceof DOMException && e.name === 'AbortError') {
|
|
125
|
+
console.warn('Loading aborted');
|
|
126
|
+
this.emitter.emit(PlayerEvents.LoadingFailed, e);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
113
129
|
console.error(msg, e);
|
|
114
130
|
this.emitter.emit(PlayerEvents.LoadingFailed, e);
|
|
131
|
+
throw e;
|
|
115
132
|
};
|
|
116
133
|
try {
|
|
117
134
|
resolvedUrl = await getLoadUrl(params.url, abortController.signal);
|
|
@@ -145,7 +162,7 @@ export class VideoPlayerMediaLoadManager {
|
|
|
145
162
|
params.url = resolvedUrl;
|
|
146
163
|
this.emitter.emit(PlayerEvents.LoadingStarted, params);
|
|
147
164
|
try {
|
|
148
|
-
await loader.load({
|
|
165
|
+
await (this._pendingLoadPromise = loader.load({
|
|
149
166
|
url: resolvedUrl,
|
|
150
167
|
startPosition: params.startPosition,
|
|
151
168
|
startLevel: params.startLevel,
|
|
@@ -155,11 +172,10 @@ export class VideoPlayerMediaLoadManager {
|
|
|
155
172
|
abortSignal: abortController.signal,
|
|
156
173
|
preloadOnly: params.preloadOnly,
|
|
157
174
|
mimeType: mimeType
|
|
158
|
-
});
|
|
175
|
+
}));
|
|
159
176
|
}
|
|
160
177
|
catch (e) {
|
|
161
178
|
onError('Loading media failed', e);
|
|
162
|
-
throw e;
|
|
163
179
|
}
|
|
164
180
|
this.loadingState = VideoLoadingState.Loaded;
|
|
165
181
|
this.emitter.emit(PlayerEvents.LoadingDone, params);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayerMediaLoadManager.js","sourceRoot":"","sources":["VideoPlayerMediaLoadManager.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,YAAY,EAEZ,UAAU,EACV,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAS9D,MAAM,CAAN,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC5B,mBAAmB;IACnB,+DAAO,CAAA;IACP,qBAAqB;IACrB,6DAAM,CAAA;IACN,uBAAuB;IACvB,6DAAM,CAAA;AACP,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,QAO5B;AAED,KAAK,UAAU,UAAU,CAAC,SAAkB,EAAE,MAAmB;IAChE,IAAI,GAAW,CAAC;IAEhB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QAClC,GAAG,GAAG,SAAS,CAAC;KAChB;SAAM,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;QAC3C,GAAG,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;KAC9B;SAAM;QACN,GAAG,GAAG,MAAM,SAAS,CAAC;KACtB;IAED,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;QACxB,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;KAC5B;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,OAAO,2BAA2B;
|
|
1
|
+
{"version":3,"file":"VideoPlayerMediaLoadManager.js","sourceRoot":"","sources":["VideoPlayerMediaLoadManager.ts"],"names":[],"mappings":"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"}
|