@scarlett-player/embed 0.4.0 → 0.5.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/dist/embed.audio.js +22 -1
- package/dist/embed.audio.js.map +1 -1
- package/dist/embed.audio.umd.cjs +1 -1
- package/dist/embed.audio.umd.cjs.map +1 -1
- package/dist/embed.js +1245 -52
- package/dist/embed.js.map +1 -1
- package/dist/embed.umd.cjs +1 -1
- package/dist/embed.umd.cjs.map +1 -1
- package/dist/embed.video.js +1245 -52
- package/dist/embed.video.js.map +1 -1
- package/dist/embed.video.umd.cjs +1 -1
- package/dist/embed.video.umd.cjs.map +1 -1
- package/package.json +8 -8
package/dist/embed.audio.js
CHANGED
|
@@ -144,6 +144,9 @@ function setupVideoEventHandlers(video, api) {
|
|
|
144
144
|
video.addEventListener(event, handler);
|
|
145
145
|
handlers.push({ event, handler });
|
|
146
146
|
};
|
|
147
|
+
addHandler("play", () => {
|
|
148
|
+
api.setState("paused", false);
|
|
149
|
+
});
|
|
147
150
|
addHandler("playing", () => {
|
|
148
151
|
api.setState("playing", true);
|
|
149
152
|
api.setState("paused", false);
|
|
@@ -394,7 +397,9 @@ function createHLSPlugin(config) {
|
|
|
394
397
|
const getRetryDelay = (retryCount) => {
|
|
395
398
|
const baseDelay = mergedConfig.retryDelayMs ?? 1e3;
|
|
396
399
|
const backoffFactor = mergedConfig.retryBackoffFactor ?? 2;
|
|
397
|
-
|
|
400
|
+
const delay = baseDelay * Math.pow(backoffFactor, retryCount);
|
|
401
|
+
const jitter = delay * (0.7 + Math.random() * 0.3);
|
|
402
|
+
return jitter;
|
|
398
403
|
};
|
|
399
404
|
const emitFatalError = (error, retriesExhausted) => {
|
|
400
405
|
const message = retriesExhausted ? `HLS error: ${error.details} (max retries exceeded)` : `HLS error: ${error.details}`;
|
|
@@ -608,6 +613,20 @@ function createHLSPlugin(config) {
|
|
|
608
613
|
if (!isNaN(levelIndex) && levelIndex >= 0 && levelIndex < hls.levels.length) {
|
|
609
614
|
hls.nextLevel = levelIndex;
|
|
610
615
|
api?.logger.debug(`Quality: queued switch to level ${levelIndex}`);
|
|
616
|
+
const targetLevel = hls.levels[levelIndex];
|
|
617
|
+
if (targetLevel) {
|
|
618
|
+
const label = formatLevel(targetLevel);
|
|
619
|
+
api?.setState("currentQuality", {
|
|
620
|
+
id: `level-${levelIndex}`,
|
|
621
|
+
label: `${label}...`,
|
|
622
|
+
// Ellipsis indicates switching in progress
|
|
623
|
+
width: targetLevel.width,
|
|
624
|
+
height: targetLevel.height,
|
|
625
|
+
bitrate: targetLevel.bitrate,
|
|
626
|
+
active: false
|
|
627
|
+
// Not yet active
|
|
628
|
+
});
|
|
629
|
+
}
|
|
611
630
|
}
|
|
612
631
|
}
|
|
613
632
|
});
|
|
@@ -2225,6 +2244,8 @@ const DEFAULT_STATE = {
|
|
|
2225
2244
|
airplayActive: false,
|
|
2226
2245
|
chromecastAvailable: false,
|
|
2227
2246
|
chromecastActive: false,
|
|
2247
|
+
// Thumbnail Preview
|
|
2248
|
+
thumbnails: null,
|
|
2228
2249
|
// UI State
|
|
2229
2250
|
interacting: false,
|
|
2230
2251
|
hovering: false,
|