@codercms/web-player 0.0.37 → 0.0.41
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/AudioCtx/AudioContext.d.ts +2 -0
- package/dist/core/AudioCtx/AudioContext.js +92 -0
- package/dist/core/AudioCtx/AudioContext.js.map +1 -0
- package/dist/core/Loaders/BaseLoader.d.ts +17 -0
- package/dist/core/Loaders/BaseLoader.js +50 -0
- package/dist/core/Loaders/BaseLoader.js.map +1 -0
- package/dist/core/Loaders/HLSLoader.d.ts +17 -0
- package/dist/core/Loaders/HLSLoader.js +313 -0
- package/dist/core/Loaders/HLSLoader.js.map +1 -0
- package/dist/core/{LoaderInterface.d.ts → Loaders/LoaderInterface.d.ts} +11 -3
- package/dist/core/{LoaderInterface.js → Loaders/LoaderInterface.js} +6 -0
- package/dist/core/{LoaderInterface.js.map → Loaders/LoaderInterface.js.map} +1 -1
- package/dist/core/Loaders/NativeAudioTrackList.d.ts +39 -0
- package/dist/core/Loaders/NativeAudioTrackList.js.map +1 -0
- package/dist/core/Loaders/NativeLoader.d.ts +16 -0
- package/dist/core/Loaders/NativeLoader.js +114 -0
- package/dist/core/Loaders/NativeLoader.js.map +1 -0
- package/dist/core/Playlist.d.ts +4 -3
- package/dist/core/Playlist.js.map +1 -1
- package/dist/core/PlaylistPlayer.d.ts +3 -2
- package/dist/core/PlaylistPlayer.js +5 -3
- package/dist/core/PlaylistPlayer.js.map +1 -1
- package/dist/core/VideoPlayer.d.ts +19 -191
- package/dist/core/VideoPlayer.js +92 -594
- package/dist/core/VideoPlayer.js.map +1 -1
- package/dist/core/VideoPlayerEvents.d.ts +74 -0
- package/dist/core/VideoPlayerEvents.js +40 -0
- package/dist/core/VideoPlayerEvents.js.map +1 -0
- package/dist/core/VideoPlayerMediaLoadManager.d.ts +50 -0
- package/dist/core/VideoPlayerMediaLoadManager.js +269 -0
- package/dist/core/VideoPlayerMediaLoadManager.js.map +1 -0
- package/dist/core/VideoPlayerMediaState.d.ts +39 -0
- package/dist/core/VideoPlayerMediaState.js +161 -0
- package/dist/core/VideoPlayerMediaState.js.map +1 -0
- package/dist/core/VideoPlayerMediaStateProxy.d.ts +17 -0
- package/dist/core/VideoPlayerMediaStateProxy.js +42 -0
- package/dist/core/VideoPlayerMediaStateProxy.js.map +1 -0
- package/dist/core/svelte/VideoPlayerMediaStateSvelteStore.d.ts +58 -0
- package/dist/core/svelte/VideoPlayerMediaStateSvelteStore.js +146 -0
- package/dist/core/svelte/VideoPlayerMediaStateSvelteStore.js.map +1 -0
- package/dist/core/types/BufferedPart.d.ts +4 -0
- package/dist/core/types/BufferedPart.js +1 -0
- package/dist/core/types/BufferedPart.js.map +1 -0
- package/dist/core/types/PlayerLoadParams.d.ts +11 -0
- package/dist/core/types/PlayerLoadParams.js +1 -0
- package/dist/core/types/PlayerLoadParams.js.map +1 -0
- package/dist/core/types/QualityLevel.js +1 -0
- package/dist/core/types/index.d.ts +4 -0
- package/dist/core/types/index.js +1 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/index.d.ts +9 -4
- package/dist/index.js +9 -4
- package/dist/ui/LoadingIndicator.svelte +35 -16
- package/dist/ui/LoadingIndicator.svelte.d.ts +1 -1
- package/dist/ui/ProgressBar.svelte +7 -8
- package/dist/ui/ProgressBar.svelte.d.ts +1 -1
- package/package.json +1 -1
- package/dist/HybridDoublyLinkedList.d.ts +0 -20
- package/dist/HybridDoublyLinkedList.js +0 -90
- package/dist/HybridDoublyLinkedList.js.map +0 -1
- package/dist/HybridLinkedList.d.ts +0 -18
- package/dist/HybridLinkedList.js +0 -90
- package/dist/HybridLinkedList.js.map +0 -1
- package/dist/core/HLSLoader.d.ts +0 -19
- package/dist/core/HLSLoader.js +0 -196
- package/dist/core/HLSLoader.js.map +0 -1
- package/dist/core/NativeLoader.d.ts +0 -14
- package/dist/core/NativeLoader.js +0 -66
- package/dist/core/NativeLoader.js.map +0 -1
- /package/dist/core/{AudioTrack.js → Loaders/NativeAudioTrackList.js} +0 -0
- /package/dist/core/{AudioTrack.d.ts → types/AudioTrack.d.ts} +0 -0
- /package/dist/core/{QualityLevel.js → types/AudioTrack.js} +0 -0
- /package/dist/core/{AudioTrack.js.map → types/AudioTrack.js.map} +0 -0
- /package/dist/core/{QualityLevel.d.ts → types/QualityLevel.d.ts} +0 -0
- /package/dist/core/{QualityLevel.js.map → types/QualityLevel.js.map} +0 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { PlayerEvents } from './VideoPlayerEvents.js';
|
|
2
|
+
export class VideoPlayerMediaState {
|
|
3
|
+
emitter;
|
|
4
|
+
paused = true;
|
|
5
|
+
duration = 0;
|
|
6
|
+
currentTime = 0;
|
|
7
|
+
playbackRate = 0;
|
|
8
|
+
muted = false;
|
|
9
|
+
volume = 1;
|
|
10
|
+
// protected _volumeGain = 1;
|
|
11
|
+
buffered = [];
|
|
12
|
+
buffering = false;
|
|
13
|
+
isAutoQuality = true;
|
|
14
|
+
currentQualityLevel = null;
|
|
15
|
+
qualityLevels = [];
|
|
16
|
+
currentAudioTrack = null;
|
|
17
|
+
audioTracks = [];
|
|
18
|
+
constructor(emitter) {
|
|
19
|
+
this.emitter = emitter;
|
|
20
|
+
}
|
|
21
|
+
syncFromEl(el) {
|
|
22
|
+
this.updatePaused(el.paused);
|
|
23
|
+
this.updateDuration(el.duration);
|
|
24
|
+
this.updateCurrentTime(el.currentTime);
|
|
25
|
+
this.updateBufferedFromTimeRanges(el.buffered);
|
|
26
|
+
this.updateVolume(el.volume, el.muted);
|
|
27
|
+
this.updatePlaybackRate(el.playbackRate);
|
|
28
|
+
// 0 - HAVE NOTHING
|
|
29
|
+
if (el.readyState > 0) {
|
|
30
|
+
// 3 - HAVE_FUTURE_DATA
|
|
31
|
+
this.updateBuffering(el.readyState !== 3 && el.readyState !== 4);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
resetForLoadingStart() {
|
|
35
|
+
this.updateDuration(0);
|
|
36
|
+
this.updateCurrentTime(0);
|
|
37
|
+
this.updateBuffering(false);
|
|
38
|
+
this.updateBuffered([]);
|
|
39
|
+
this.currentQualityLevel = null;
|
|
40
|
+
this.updateQualityLevels([]);
|
|
41
|
+
this.currentAudioTrack = null;
|
|
42
|
+
this.updateAudioTracks([]);
|
|
43
|
+
}
|
|
44
|
+
updatePaused(newPaused) {
|
|
45
|
+
if (newPaused !== this.paused) {
|
|
46
|
+
this.paused = newPaused;
|
|
47
|
+
if (newPaused) {
|
|
48
|
+
this.emitter.emit(PlayerEvents.Pause);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this.emitter.emit(PlayerEvents.Play);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
updateVolume(newVol, newMuted) {
|
|
56
|
+
newVol = this._normalizeNumber(newVol);
|
|
57
|
+
let isChanged = false;
|
|
58
|
+
if (newVol !== this.volume) {
|
|
59
|
+
isChanged = true;
|
|
60
|
+
this.volume = newVol;
|
|
61
|
+
this.emitter.emit(PlayerEvents.VolumeChange, newVol);
|
|
62
|
+
}
|
|
63
|
+
if (newMuted !== this.muted) {
|
|
64
|
+
isChanged = true;
|
|
65
|
+
this.muted = newMuted;
|
|
66
|
+
this.emitter.emit(PlayerEvents.MuteChange, newMuted);
|
|
67
|
+
}
|
|
68
|
+
if (isChanged) {
|
|
69
|
+
this.emitter.emit(PlayerEvents.VolumeStateChange, newVol, newMuted);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
updateCurrentTime(newTime) {
|
|
73
|
+
newTime = this._normalizeNumber(newTime);
|
|
74
|
+
if (this.currentTime !== newTime) {
|
|
75
|
+
this.currentTime = newTime;
|
|
76
|
+
this.emitter.emit(PlayerEvents.CurrentTimeUpdate, newTime);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
updateDuration(newDuration) {
|
|
80
|
+
newDuration = this._normalizeNumber(newDuration);
|
|
81
|
+
if (this.duration !== newDuration) {
|
|
82
|
+
this.duration = newDuration;
|
|
83
|
+
this.emitter.emit(PlayerEvents.DurationChange, newDuration);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
updateBufferedFromTimeRanges(newBuffered) {
|
|
87
|
+
const parts = [];
|
|
88
|
+
for (let i = 0; i < newBuffered.length; i++) {
|
|
89
|
+
const start = this._normalizeNumber(newBuffered.start(i));
|
|
90
|
+
const end = this._normalizeNumber(newBuffered.end(i));
|
|
91
|
+
parts.push({ start, end });
|
|
92
|
+
}
|
|
93
|
+
this.updateBuffered(parts);
|
|
94
|
+
}
|
|
95
|
+
updateBuffered(newBuffered) {
|
|
96
|
+
if (this.buffered.length !== newBuffered.length) {
|
|
97
|
+
this.buffered = newBuffered;
|
|
98
|
+
this.emitter.emit(PlayerEvents.BufferingProgress, newBuffered);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
for (let i = 0; i < newBuffered.length; i++) {
|
|
102
|
+
if (newBuffered[i].start !== this.buffered[i].start ||
|
|
103
|
+
newBuffered[i].end !== this.buffered[i].end) {
|
|
104
|
+
this.buffered = newBuffered;
|
|
105
|
+
this.emitter.emit(PlayerEvents.BufferingProgress, newBuffered);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
updateBuffering(newBuffering) {
|
|
111
|
+
if (newBuffering !== this.buffering) {
|
|
112
|
+
this.buffering = newBuffering;
|
|
113
|
+
if (newBuffering) {
|
|
114
|
+
this.emitter.emit(PlayerEvents.BufferingStarted);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
this.emitter.emit(PlayerEvents.BufferingEnded);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
updatePlaybackRate(newRate) {
|
|
122
|
+
newRate = this._normalizeNumber(newRate);
|
|
123
|
+
if (this.playbackRate !== newRate) {
|
|
124
|
+
this.playbackRate = newRate;
|
|
125
|
+
this.emitter.emit(PlayerEvents.PlaybackRateChange, newRate);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
updateQualityLevels(newLevels) {
|
|
129
|
+
this.qualityLevels = newLevels;
|
|
130
|
+
this.emitter.emit(PlayerEvents.QualityLevelsUpdated, newLevels);
|
|
131
|
+
}
|
|
132
|
+
updateQualityLevel(level, isAutoQuality) {
|
|
133
|
+
this.currentQualityLevel = level;
|
|
134
|
+
// this.currentQualityLevelStore.set(level);
|
|
135
|
+
this.isAutoQuality = isAutoQuality;
|
|
136
|
+
// this.isAutoQualityStore.set(isAutoQuality);
|
|
137
|
+
this.emitter.emit(PlayerEvents.QualityLevelSwitched, level, isAutoQuality);
|
|
138
|
+
}
|
|
139
|
+
findQualityLevelById(lvlId) {
|
|
140
|
+
return this.qualityLevels.find((lvl) => lvl.id === lvlId) ?? null;
|
|
141
|
+
}
|
|
142
|
+
updateAudioTracks(audioTracks) {
|
|
143
|
+
this.audioTracks = audioTracks;
|
|
144
|
+
// this.audioTracksStore.set(audioTracks);
|
|
145
|
+
this.emitter.emit(PlayerEvents.AudioTracksUpdated, audioTracks);
|
|
146
|
+
}
|
|
147
|
+
updateAudioTrack(audioTrack) {
|
|
148
|
+
this.currentAudioTrack = audioTrack;
|
|
149
|
+
// this._currentAudioTrackStore.set(audioTrack);
|
|
150
|
+
this.emitter.emit(PlayerEvents.AudioTrackSwitched, audioTrack);
|
|
151
|
+
}
|
|
152
|
+
findAudioTrackById(trackId) {
|
|
153
|
+
return this.audioTracks.find((track) => track.id === trackId) ?? null;
|
|
154
|
+
}
|
|
155
|
+
_normalizeNumber(num) {
|
|
156
|
+
if (isNaN(num) || !isFinite(num)) {
|
|
157
|
+
return 0;
|
|
158
|
+
}
|
|
159
|
+
return num;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoPlayerMediaState.js","sourceRoot":"","sources":["VideoPlayerMediaState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { VideoPlayerMediaState } from './VideoPlayerMediaState.js';
|
|
2
|
+
export declare class VideoPlayerMediaStateProxy {
|
|
3
|
+
private readonly mediaState;
|
|
4
|
+
constructor(mediaState: VideoPlayerMediaState);
|
|
5
|
+
get paused(): boolean;
|
|
6
|
+
get buffering(): boolean;
|
|
7
|
+
get buffered(): import("./types").BufferedPart[];
|
|
8
|
+
get currentTime(): number;
|
|
9
|
+
get duration(): number;
|
|
10
|
+
get volume(): number;
|
|
11
|
+
get muted(): boolean;
|
|
12
|
+
get isAutoQuality(): boolean;
|
|
13
|
+
get currentQuality(): import("./types").QualityLevel | null;
|
|
14
|
+
get qualityLevels(): import("./types").QualityLevel[];
|
|
15
|
+
get currentAudioTrack(): import("./types").AudioTrack | null;
|
|
16
|
+
get audioTracks(): import("./types").AudioTrack[];
|
|
17
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export class VideoPlayerMediaStateProxy {
|
|
2
|
+
mediaState;
|
|
3
|
+
constructor(mediaState) {
|
|
4
|
+
this.mediaState = mediaState;
|
|
5
|
+
}
|
|
6
|
+
get paused() {
|
|
7
|
+
return this.mediaState.paused;
|
|
8
|
+
}
|
|
9
|
+
get buffering() {
|
|
10
|
+
return this.mediaState.buffering;
|
|
11
|
+
}
|
|
12
|
+
get buffered() {
|
|
13
|
+
return this.mediaState.buffered;
|
|
14
|
+
}
|
|
15
|
+
get currentTime() {
|
|
16
|
+
return this.mediaState.currentTime;
|
|
17
|
+
}
|
|
18
|
+
get duration() {
|
|
19
|
+
return this.mediaState.duration;
|
|
20
|
+
}
|
|
21
|
+
get volume() {
|
|
22
|
+
return this.mediaState.volume;
|
|
23
|
+
}
|
|
24
|
+
get muted() {
|
|
25
|
+
return this.mediaState.muted;
|
|
26
|
+
}
|
|
27
|
+
get isAutoQuality() {
|
|
28
|
+
return this.mediaState.isAutoQuality;
|
|
29
|
+
}
|
|
30
|
+
get currentQuality() {
|
|
31
|
+
return this.mediaState.currentQualityLevel;
|
|
32
|
+
}
|
|
33
|
+
get qualityLevels() {
|
|
34
|
+
return this.mediaState.qualityLevels;
|
|
35
|
+
}
|
|
36
|
+
get currentAudioTrack() {
|
|
37
|
+
return this.mediaState.currentAudioTrack;
|
|
38
|
+
}
|
|
39
|
+
get audioTracks() {
|
|
40
|
+
return this.mediaState.audioTracks;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoPlayerMediaStateProxy.js","sourceRoot":"","sources":["VideoPlayerMediaStateProxy.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,0BAA0B;IACT;IAA7B,YAA6B,UAAiC;QAAjC,eAAU,GAAV,UAAU,CAAuB;IAAG,CAAC;IAElE,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;IACpC,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IACtC,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;IAC5C,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IACtC,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;IAC1C,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;IACpC,CAAC;CACD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/// <reference types="svelte" />
|
|
2
|
+
import type { VideoPlayer } from '../VideoPlayer.js';
|
|
3
|
+
import type { AudioTrack, QualityLevel, BufferedPart } from '../types/index.js';
|
|
4
|
+
export declare class VideoPlayerMediaStateSvelteStore {
|
|
5
|
+
private readonly player;
|
|
6
|
+
private onPlayCb;
|
|
7
|
+
private onPauseCb;
|
|
8
|
+
private onTimeUpdateCb;
|
|
9
|
+
private onDurationUpdateCb;
|
|
10
|
+
private onBufferingProgressCb;
|
|
11
|
+
private onVolumeStateChangeCb;
|
|
12
|
+
private onBufferingStartedCb;
|
|
13
|
+
private onBufferingEndedCb;
|
|
14
|
+
private onQualityLevelsUpdatedCb;
|
|
15
|
+
private onQualityLevelChangingCb;
|
|
16
|
+
private onQualityLevelChangedCb;
|
|
17
|
+
private onAudioTracksUpdatedCb;
|
|
18
|
+
private onAudioTrackChangedCb;
|
|
19
|
+
private _paused;
|
|
20
|
+
private _currTime;
|
|
21
|
+
private _duration;
|
|
22
|
+
private _buffered;
|
|
23
|
+
private _volume;
|
|
24
|
+
private _muted;
|
|
25
|
+
private _buffering;
|
|
26
|
+
private _isAutoQuality;
|
|
27
|
+
private _currentQuality;
|
|
28
|
+
private _qualityLevels;
|
|
29
|
+
private _currentAudioTrack;
|
|
30
|
+
private _audioTracks;
|
|
31
|
+
constructor(player: VideoPlayer);
|
|
32
|
+
destroy(): void;
|
|
33
|
+
get paused(): import("svelte/store").Readable<boolean>;
|
|
34
|
+
get currentTime(): import("svelte/store").Readable<number>;
|
|
35
|
+
get duration(): import("svelte/store").Readable<number>;
|
|
36
|
+
get buffered(): import("svelte/store").Readable<BufferedPart[]>;
|
|
37
|
+
get volume(): import("svelte/store").Readable<number>;
|
|
38
|
+
get muted(): import("svelte/store").Readable<boolean>;
|
|
39
|
+
get buffering(): import("svelte/store").Readable<boolean>;
|
|
40
|
+
get qualityLevels(): import("svelte/store").Readable<QualityLevel[]>;
|
|
41
|
+
get currentQuality(): import("svelte/store").Readable<QualityLevel | null>;
|
|
42
|
+
get isAutoQuality(): import("svelte/store").Readable<boolean>;
|
|
43
|
+
get audioTracks(): import("svelte/store").Readable<AudioTrack[]>;
|
|
44
|
+
get currentAudioTrack(): import("svelte/store").Readable<AudioTrack | null>;
|
|
45
|
+
private onPlay;
|
|
46
|
+
private onPause;
|
|
47
|
+
private onTimeUpdate;
|
|
48
|
+
private onDurationUpdate;
|
|
49
|
+
private onBufferingProgress;
|
|
50
|
+
private onVolumeStateChange;
|
|
51
|
+
private onBufferingStarted;
|
|
52
|
+
private onBufferingEnded;
|
|
53
|
+
private onQualityLevelsUpdated;
|
|
54
|
+
private onQualityLevelChanging;
|
|
55
|
+
private onQualityLevelChanged;
|
|
56
|
+
private onAudioTracksUpdated;
|
|
57
|
+
private onAudioTrackChanged;
|
|
58
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { PlayerEvents } from '../VideoPlayerEvents.js';
|
|
2
|
+
import { readonly, writable } from 'svelte/store';
|
|
3
|
+
export class VideoPlayerMediaStateSvelteStore {
|
|
4
|
+
player;
|
|
5
|
+
onPlayCb = this.onPlay.bind(this);
|
|
6
|
+
onPauseCb = this.onPause.bind(this);
|
|
7
|
+
onTimeUpdateCb = this.onTimeUpdate.bind(this);
|
|
8
|
+
onDurationUpdateCb = this.onTimeUpdate.bind(this);
|
|
9
|
+
onBufferingProgressCb = this.onBufferingProgress.bind(this);
|
|
10
|
+
onVolumeStateChangeCb = this.onVolumeStateChange.bind(this);
|
|
11
|
+
onBufferingStartedCb = this.onBufferingStarted.bind(this);
|
|
12
|
+
onBufferingEndedCb = this.onBufferingEnded.bind(this);
|
|
13
|
+
onQualityLevelsUpdatedCb = this.onQualityLevelsUpdated.bind(this);
|
|
14
|
+
onQualityLevelChangingCb = this.onQualityLevelChanging.bind(this);
|
|
15
|
+
onQualityLevelChangedCb = this.onQualityLevelChanged.bind(this);
|
|
16
|
+
onAudioTracksUpdatedCb = this.onAudioTracksUpdated.bind(this);
|
|
17
|
+
onAudioTrackChangedCb = this.onAudioTrackChanged.bind(this);
|
|
18
|
+
_paused = writable(true);
|
|
19
|
+
_currTime = writable(0);
|
|
20
|
+
_duration = writable(0);
|
|
21
|
+
_buffered = writable([]);
|
|
22
|
+
_volume = writable(1);
|
|
23
|
+
_muted = writable(false);
|
|
24
|
+
_buffering = writable(false);
|
|
25
|
+
_isAutoQuality = writable(true);
|
|
26
|
+
_currentQuality = writable(null);
|
|
27
|
+
_qualityLevels = writable([]);
|
|
28
|
+
_currentAudioTrack = writable(null);
|
|
29
|
+
_audioTracks = writable([]);
|
|
30
|
+
constructor(player) {
|
|
31
|
+
this.player = player;
|
|
32
|
+
this.player.subscribe(PlayerEvents.Play, this.onPlayCb);
|
|
33
|
+
this.player.subscribe(PlayerEvents.Pause, this.onPauseCb);
|
|
34
|
+
this.player.subscribe(PlayerEvents.CurrentTimeUpdate, this.onTimeUpdateCb);
|
|
35
|
+
this.player.subscribe(PlayerEvents.DurationChange, this.onDurationUpdateCb);
|
|
36
|
+
this.player.subscribe(PlayerEvents.BufferingProgress, this.onBufferingProgressCb);
|
|
37
|
+
this.player.subscribe(PlayerEvents.VolumeStateChange, this.onVolumeStateChangeCb);
|
|
38
|
+
this.player.subscribe(PlayerEvents.BufferingStarted, this.onBufferingStartedCb);
|
|
39
|
+
this.player.subscribe(PlayerEvents.BufferingEnded, this.onBufferingEndedCb);
|
|
40
|
+
this.player.subscribe(PlayerEvents.QualityLevelsUpdated, this.onQualityLevelsUpdatedCb);
|
|
41
|
+
this.player.subscribe(PlayerEvents.QualityLevelSwitching, this.onQualityLevelChangingCb);
|
|
42
|
+
this.player.subscribe(PlayerEvents.QualityLevelSwitched, this.onQualityLevelChangedCb);
|
|
43
|
+
this.player.subscribe(PlayerEvents.AudioTracksUpdated, this.onAudioTracksUpdatedCb);
|
|
44
|
+
this.player.subscribe(PlayerEvents.AudioTrackSwitched, this.onAudioTrackChangedCb);
|
|
45
|
+
}
|
|
46
|
+
destroy() {
|
|
47
|
+
this.player.unsubscribe(PlayerEvents.Play, this.onPlayCb);
|
|
48
|
+
this.player.unsubscribe(PlayerEvents.Pause, this.onPauseCb);
|
|
49
|
+
this.player.unsubscribe(PlayerEvents.CurrentTimeUpdate, this.onTimeUpdateCb);
|
|
50
|
+
this.player.unsubscribe(PlayerEvents.DurationChange, this.onDurationUpdateCb);
|
|
51
|
+
this.player.unsubscribe(PlayerEvents.BufferingProgress, this.onBufferingProgressCb);
|
|
52
|
+
this.player.unsubscribe(PlayerEvents.VolumeStateChange, this.onVolumeStateChangeCb);
|
|
53
|
+
this.player.unsubscribe(PlayerEvents.BufferingStarted, this.onBufferingStartedCb);
|
|
54
|
+
this.player.unsubscribe(PlayerEvents.BufferingEnded, this.onBufferingEndedCb);
|
|
55
|
+
this.player.unsubscribe(PlayerEvents.QualityLevelsUpdated, this.onQualityLevelsUpdatedCb);
|
|
56
|
+
this.player.unsubscribe(PlayerEvents.QualityLevelSwitching, this.onQualityLevelChangingCb);
|
|
57
|
+
this.player.unsubscribe(PlayerEvents.QualityLevelSwitched, this.onQualityLevelChangedCb);
|
|
58
|
+
this.player.unsubscribe(PlayerEvents.AudioTracksUpdated, this.onAudioTracksUpdatedCb);
|
|
59
|
+
this.player.unsubscribe(PlayerEvents.AudioTrackSwitched, this.onAudioTrackChangedCb);
|
|
60
|
+
}
|
|
61
|
+
get paused() {
|
|
62
|
+
return readonly(this._paused);
|
|
63
|
+
}
|
|
64
|
+
get currentTime() {
|
|
65
|
+
return readonly(this._currTime);
|
|
66
|
+
}
|
|
67
|
+
get duration() {
|
|
68
|
+
return readonly(this._duration);
|
|
69
|
+
}
|
|
70
|
+
get buffered() {
|
|
71
|
+
return readonly(this._buffered);
|
|
72
|
+
}
|
|
73
|
+
get volume() {
|
|
74
|
+
return readonly(this._volume);
|
|
75
|
+
}
|
|
76
|
+
get muted() {
|
|
77
|
+
return readonly(this._muted);
|
|
78
|
+
}
|
|
79
|
+
get buffering() {
|
|
80
|
+
return readonly(this._buffering);
|
|
81
|
+
}
|
|
82
|
+
get qualityLevels() {
|
|
83
|
+
return readonly(this._qualityLevels);
|
|
84
|
+
}
|
|
85
|
+
get currentQuality() {
|
|
86
|
+
return readonly(this._currentQuality);
|
|
87
|
+
}
|
|
88
|
+
get isAutoQuality() {
|
|
89
|
+
return readonly(this._isAutoQuality);
|
|
90
|
+
}
|
|
91
|
+
get audioTracks() {
|
|
92
|
+
return readonly(this._audioTracks);
|
|
93
|
+
}
|
|
94
|
+
get currentAudioTrack() {
|
|
95
|
+
return readonly(this._currentAudioTrack);
|
|
96
|
+
}
|
|
97
|
+
onPlay() {
|
|
98
|
+
this._paused.set(false);
|
|
99
|
+
}
|
|
100
|
+
onPause() {
|
|
101
|
+
this._paused.set(true);
|
|
102
|
+
}
|
|
103
|
+
onTimeUpdate(newTime) {
|
|
104
|
+
this._currTime.set(newTime);
|
|
105
|
+
}
|
|
106
|
+
onDurationUpdate(newDuration) {
|
|
107
|
+
this._duration.set(newDuration);
|
|
108
|
+
}
|
|
109
|
+
onBufferingProgress(newParts) {
|
|
110
|
+
this._buffered.set(newParts);
|
|
111
|
+
}
|
|
112
|
+
onVolumeStateChange(newVolume, newMuted) {
|
|
113
|
+
this._volume.set(newVolume);
|
|
114
|
+
this._muted.set(newMuted);
|
|
115
|
+
}
|
|
116
|
+
onBufferingStarted() {
|
|
117
|
+
this._buffering.set(true);
|
|
118
|
+
}
|
|
119
|
+
onBufferingEnded() {
|
|
120
|
+
this._buffering.set(false);
|
|
121
|
+
}
|
|
122
|
+
onQualityLevelsUpdated(newLevels) {
|
|
123
|
+
this._qualityLevels.set(newLevels);
|
|
124
|
+
if (newLevels.length === 0) {
|
|
125
|
+
this._currentQuality.set(null);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
onQualityLevelChanging(newLevel, isAuto) {
|
|
129
|
+
this._isAutoQuality.set(isAuto);
|
|
130
|
+
}
|
|
131
|
+
onQualityLevelChanged(newLevel, isAuto) {
|
|
132
|
+
this._currentQuality.set(newLevel);
|
|
133
|
+
this._isAutoQuality.set(isAuto);
|
|
134
|
+
}
|
|
135
|
+
onAudioTracksUpdated(newTracks) {
|
|
136
|
+
this._audioTracks.set(newTracks);
|
|
137
|
+
if (newTracks.length === 0) {
|
|
138
|
+
this._currentAudioTrack.set(null);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// private onAudioTrackChanging(newLevel: QualityLevel, isAuto: boolean) {
|
|
142
|
+
// }
|
|
143
|
+
onAudioTrackChanged(newTrack) {
|
|
144
|
+
this._currentAudioTrack.set(newTrack);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoPlayerMediaStateSvelteStore.js","sourceRoot":"","sources":["VideoPlayerMediaStateSvelteStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BufferedPart.js","sourceRoot":"","sources":["BufferedPart.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LoaderType } from '../Loaders/LoaderInterface.js';
|
|
2
|
+
export type GetUrlCb = (signal: AbortSignal) => Promise<string>;
|
|
3
|
+
export type LoadUrl = string | Promise<string> | GetUrlCb;
|
|
4
|
+
export interface PlayerLoadParams {
|
|
5
|
+
url: LoadUrl;
|
|
6
|
+
startPosition?: number;
|
|
7
|
+
audioTrack?: number;
|
|
8
|
+
startLevel?: number;
|
|
9
|
+
loader?: LoaderType;
|
|
10
|
+
playAfterLoad?: boolean;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayerLoadParams.js","sourceRoot":"","sources":["PlayerLoadParams.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
export * from "./core/LoaderInterface.js";
|
|
2
|
-
export * from "./core/
|
|
1
|
+
export * from "./core/Loaders/LoaderInterface.js";
|
|
2
|
+
export * from "./core/Loaders/BaseLoader.js";
|
|
3
|
+
export * from "./core/Loaders/HLSLoader.js";
|
|
4
|
+
export * from "./core/Loaders/NativeLoader.js";
|
|
3
5
|
export * from "./core/Playlist.js";
|
|
4
6
|
export * from "./core/PlaylistPlayer.js";
|
|
5
|
-
export * from "./core/QualityLevel.js";
|
|
6
|
-
export * from "./core/AudioTrack.js";
|
|
7
|
+
export * from "./core/types/QualityLevel.js";
|
|
8
|
+
export * from "./core/types/AudioTrack.js";
|
|
9
|
+
export * from "./core/types/BufferedPart.js";
|
|
10
|
+
export * from "./core/types/PlayerLoadParams.js";
|
|
11
|
+
export * from "./core/VideoPlayerEvents.js";
|
|
7
12
|
export * from "./core/VideoPlayer.js";
|
|
8
13
|
export * from "./ui/utils/duration.js";
|
|
9
14
|
export * from "./ui/utils/slider.js";
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
// Reexport your entry components here
|
|
2
|
-
export * from './core/LoaderInterface.js';
|
|
3
|
-
export * from './core/
|
|
2
|
+
export * from './core/Loaders/LoaderInterface.js';
|
|
3
|
+
export * from './core/Loaders/BaseLoader.js';
|
|
4
|
+
export * from './core/Loaders/HLSLoader.js';
|
|
5
|
+
export * from './core/Loaders/NativeLoader.js';
|
|
4
6
|
|
|
5
7
|
export * from './core/Playlist.js';
|
|
6
8
|
export * from './core/PlaylistPlayer.js';
|
|
7
9
|
|
|
8
|
-
export * from './core/QualityLevel.js';
|
|
9
|
-
export * from './core/AudioTrack.js';
|
|
10
|
+
export * from './core/types/QualityLevel.js';
|
|
11
|
+
export * from './core/types/AudioTrack.js';
|
|
12
|
+
export * from './core/types/BufferedPart.js';
|
|
13
|
+
export * from './core/types/PlayerLoadParams.js';
|
|
10
14
|
|
|
15
|
+
export * from './core/VideoPlayerEvents.js';
|
|
11
16
|
export * from './core/VideoPlayer.js';
|
|
12
17
|
|
|
13
18
|
export * from './ui/utils/duration.js';
|
|
@@ -1,39 +1,58 @@
|
|
|
1
|
-
<script>import { PlayerEvents
|
|
1
|
+
<script>import { PlayerEvents } from "../core/VideoPlayerEvents.js";
|
|
2
2
|
import { onMount } from "svelte";
|
|
3
3
|
export let player;
|
|
4
4
|
export let loadThreshold = 200;
|
|
5
5
|
let loading = false;
|
|
6
|
-
let
|
|
6
|
+
let buffering = false;
|
|
7
|
+
let loadingTimeoutId = 0;
|
|
8
|
+
let bufferingTimeoutId = 0;
|
|
7
9
|
const setLoading = () => {
|
|
8
|
-
if (
|
|
10
|
+
if (loadingTimeoutId) {
|
|
9
11
|
return;
|
|
10
12
|
}
|
|
11
|
-
|
|
13
|
+
loadingTimeoutId = window.setTimeout(() => {
|
|
12
14
|
loading = true;
|
|
13
15
|
}, loadThreshold);
|
|
14
16
|
};
|
|
15
17
|
const setLoaded = () => {
|
|
16
|
-
if (
|
|
17
|
-
window.clearTimeout(
|
|
18
|
-
|
|
18
|
+
if (loadingTimeoutId) {
|
|
19
|
+
window.clearTimeout(loadingTimeoutId);
|
|
20
|
+
loadingTimeoutId = 0;
|
|
19
21
|
}
|
|
20
22
|
loading = false;
|
|
21
23
|
};
|
|
24
|
+
const setBuffering = () => {
|
|
25
|
+
if (bufferingTimeoutId) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
bufferingTimeoutId = window.setTimeout(() => {
|
|
29
|
+
buffering = true;
|
|
30
|
+
}, loadThreshold);
|
|
31
|
+
};
|
|
32
|
+
const setBuffered = () => {
|
|
33
|
+
if (bufferingTimeoutId) {
|
|
34
|
+
window.clearTimeout(bufferingTimeoutId);
|
|
35
|
+
bufferingTimeoutId = 0;
|
|
36
|
+
}
|
|
37
|
+
buffering = false;
|
|
38
|
+
};
|
|
22
39
|
onMount(() => {
|
|
23
|
-
player.subscribe(PlayerEvents.
|
|
24
|
-
player.subscribe(PlayerEvents.
|
|
25
|
-
player.subscribe(PlayerEvents.
|
|
26
|
-
player.subscribe(PlayerEvents.
|
|
40
|
+
player.subscribe(PlayerEvents.BeforeLoading, setLoading);
|
|
41
|
+
player.subscribe(PlayerEvents.LoadingDone, setLoaded);
|
|
42
|
+
player.subscribe(PlayerEvents.LoadingFailed, setLoaded);
|
|
43
|
+
player.subscribe(PlayerEvents.BufferingStarted, setBuffering);
|
|
44
|
+
player.subscribe(PlayerEvents.BufferingEnded, setBuffered);
|
|
27
45
|
return () => {
|
|
28
|
-
player.unsubscribe(PlayerEvents.
|
|
29
|
-
player.unsubscribe(PlayerEvents.
|
|
30
|
-
player.unsubscribe(PlayerEvents.
|
|
31
|
-
player.unsubscribe(PlayerEvents.
|
|
46
|
+
player.unsubscribe(PlayerEvents.BeforeLoading, setLoading);
|
|
47
|
+
player.unsubscribe(PlayerEvents.LoadingDone, setLoaded);
|
|
48
|
+
player.unsubscribe(PlayerEvents.LoadingFailed, setLoaded);
|
|
49
|
+
player.unsubscribe(PlayerEvents.BufferingStarted, setBuffering);
|
|
50
|
+
player.unsubscribe(PlayerEvents.BufferingEnded, setBuffering);
|
|
32
51
|
};
|
|
33
52
|
});
|
|
34
53
|
</script>
|
|
35
54
|
|
|
36
|
-
<div class="loading-container" style:visibility={loading ? `visible` : `hidden`}>
|
|
55
|
+
<div class="loading-container" style:visibility={loading || buffering ? `visible` : `hidden`}>
|
|
37
56
|
<div class="loader" />
|
|
38
57
|
</div>
|
|
39
58
|
|