stormcloud-video-player 0.8.43 → 0.8.44
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/stormcloud-vp.min.js +1 -1
- package/lib/index.cjs +109 -5
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +109 -5
- package/lib/index.js.map +1 -1
- package/lib/player/AdBreakOrchestrator.cjs +109 -5
- package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
- package/lib/player/AdBreakOrchestrator.d.cts +2 -1
- package/lib/player/AdConfigManager.d.cts +1 -1
- package/lib/player/AdTimingService.d.cts +1 -1
- package/lib/player/HlsEngine.d.cts +1 -1
- package/lib/player/PlayerControls.d.cts +1 -1
- package/lib/player/Scte35CueManager.d.cts +1 -1
- package/lib/player/Scte35Parser.d.cts +1 -1
- package/lib/player/StormcloudVideoPlayer.cjs +109 -5
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +1 -1
- package/lib/player/playerTypes.d.cts +1 -1
- package/lib/players/HlsPlayer.cjs +109 -5
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.d.cts +1 -1
- package/lib/players/index.cjs +109 -5
- package/lib/players/index.cjs.map +1 -1
- package/lib/sdk/hlsAdPlayer.d.cts +1 -1
- package/lib/types-iDjS8f_7.d.cts +133 -0
- package/lib/ui/StormcloudVideoPlayer.cjs +109 -5
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.d.cts +1 -1
- package/lib/utils/tracking.d.cts +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { S as StormcloudVideoPlayerConfig } from '../types-iDjS8f_7.cjs';
|
|
3
3
|
|
|
4
4
|
interface HlsPlayerProps extends StormcloudVideoPlayerConfig {
|
|
5
5
|
onMount?: (player: any) => void;
|
package/lib/players/index.cjs
CHANGED
|
@@ -8133,6 +8133,34 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
8133
8133
|
return 0;
|
|
8134
8134
|
}
|
|
8135
8135
|
},
|
|
8136
|
+
{
|
|
8137
|
+
key: "describeVideoState",
|
|
8138
|
+
value: function describeVideoState() {
|
|
8139
|
+
var _networkStates_v_networkState, _readyStates_v_readyState;
|
|
8140
|
+
var v = this.host.video;
|
|
8141
|
+
var networkStates = [
|
|
8142
|
+
"EMPTY",
|
|
8143
|
+
"IDLE",
|
|
8144
|
+
"LOADING",
|
|
8145
|
+
"NO_SOURCE"
|
|
8146
|
+
];
|
|
8147
|
+
var readyStates = [
|
|
8148
|
+
"HAVE_NOTHING",
|
|
8149
|
+
"HAVE_METADATA",
|
|
8150
|
+
"HAVE_CURRENT_DATA",
|
|
8151
|
+
"HAVE_FUTURE_DATA",
|
|
8152
|
+
"HAVE_ENOUGH_DATA"
|
|
8153
|
+
];
|
|
8154
|
+
var net = (_networkStates_v_networkState = networkStates[v.networkState]) !== null && _networkStates_v_networkState !== void 0 ? _networkStates_v_networkState : String(v.networkState);
|
|
8155
|
+
var ready = (_readyStates_v_readyState = readyStates[v.readyState]) !== null && _readyStates_v_readyState !== void 0 ? _readyStates_v_readyState : String(v.readyState);
|
|
8156
|
+
var err = v.error ? "code=".concat(v.error.code).concat(v.error.message ? " (".concat(v.error.message, ")") : "") : "none";
|
|
8157
|
+
var ranges = [];
|
|
8158
|
+
for(var i = 0; i < v.buffered.length; i++){
|
|
8159
|
+
ranges.push("[".concat(v.buffered.start(i).toFixed(2), "–").concat(v.buffered.end(i).toFixed(2), "]"));
|
|
8160
|
+
}
|
|
8161
|
+
return "t=".concat(v.currentTime.toFixed(2), "s paused=").concat(v.paused, " ended=").concat(v.ended, " seeking=").concat(v.seeking, " readyState=").concat(ready, " networkState=").concat(net, " error=").concat(err, " buffered=").concat(ranges.length ? ranges.join(",") : "none");
|
|
8162
|
+
}
|
|
8163
|
+
},
|
|
8136
8164
|
{
|
|
8137
8165
|
key: "monitorLiveResumeStall",
|
|
8138
8166
|
value: function monitorLiveResumeStall(resumeBaseline) {
|
|
@@ -8146,18 +8174,93 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
8146
8174
|
var baseline = resumeBaseline;
|
|
8147
8175
|
var recoveries = 0;
|
|
8148
8176
|
var lastRecoveryAt = 0;
|
|
8177
|
+
var video = this.host.video;
|
|
8178
|
+
var listenersAttached = false;
|
|
8179
|
+
var onMediaEvent;
|
|
8180
|
+
var diagEvents = [
|
|
8181
|
+
"loadstart",
|
|
8182
|
+
"loadedmetadata",
|
|
8183
|
+
"loadeddata",
|
|
8184
|
+
"canplay",
|
|
8185
|
+
"canplaythrough",
|
|
8186
|
+
"play",
|
|
8187
|
+
"playing",
|
|
8188
|
+
"pause",
|
|
8189
|
+
"waiting",
|
|
8190
|
+
"stalled",
|
|
8191
|
+
"suspend",
|
|
8192
|
+
"seeking",
|
|
8193
|
+
"seeked",
|
|
8194
|
+
"emptied",
|
|
8195
|
+
"error",
|
|
8196
|
+
"ended"
|
|
8197
|
+
];
|
|
8198
|
+
if (this.debug) {
|
|
8199
|
+
onMediaEvent = function onMediaEvent(e) {
|
|
8200
|
+
var dt = ((Date.now() - startTime) / 1e3).toFixed(1);
|
|
8201
|
+
console.log("[ResumeDiag] +".concat(dt, "s event=").concat(e.type, " — ").concat(_this.describeVideoState()));
|
|
8202
|
+
};
|
|
8203
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
8204
|
+
try {
|
|
8205
|
+
for(var _iterator = diagEvents[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
8206
|
+
var name = _step.value;
|
|
8207
|
+
video.addEventListener(name, onMediaEvent);
|
|
8208
|
+
}
|
|
8209
|
+
} catch (err) {
|
|
8210
|
+
_didIteratorError = true;
|
|
8211
|
+
_iteratorError = err;
|
|
8212
|
+
} finally{
|
|
8213
|
+
try {
|
|
8214
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
8215
|
+
_iterator.return();
|
|
8216
|
+
}
|
|
8217
|
+
} finally{
|
|
8218
|
+
if (_didIteratorError) {
|
|
8219
|
+
throw _iteratorError;
|
|
8220
|
+
}
|
|
8221
|
+
}
|
|
8222
|
+
}
|
|
8223
|
+
listenersAttached = true;
|
|
8224
|
+
console.log("[ResumeDiag] +0.0s monitor start — ".concat(this.describeVideoState()));
|
|
8225
|
+
}
|
|
8226
|
+
var cleanup = function cleanup() {
|
|
8227
|
+
if (listenersAttached && onMediaEvent) {
|
|
8228
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
8229
|
+
try {
|
|
8230
|
+
for(var _iterator = diagEvents[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
8231
|
+
var name = _step.value;
|
|
8232
|
+
video.removeEventListener(name, onMediaEvent);
|
|
8233
|
+
}
|
|
8234
|
+
} catch (err) {
|
|
8235
|
+
_didIteratorError = true;
|
|
8236
|
+
_iteratorError = err;
|
|
8237
|
+
} finally{
|
|
8238
|
+
try {
|
|
8239
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
8240
|
+
_iterator.return();
|
|
8241
|
+
}
|
|
8242
|
+
} finally{
|
|
8243
|
+
if (_didIteratorError) {
|
|
8244
|
+
throw _iteratorError;
|
|
8245
|
+
}
|
|
8246
|
+
}
|
|
8247
|
+
}
|
|
8248
|
+
listenersAttached = false;
|
|
8249
|
+
}
|
|
8250
|
+
};
|
|
8149
8251
|
var poll = function poll1() {
|
|
8150
8252
|
if (_this.inAdBreak) {
|
|
8253
|
+
cleanup();
|
|
8151
8254
|
return;
|
|
8152
8255
|
}
|
|
8153
|
-
var video = _this.host.video;
|
|
8154
8256
|
var currentTime = video.currentTime;
|
|
8155
8257
|
var advanced = currentTime > baseline + 0.5;
|
|
8156
8258
|
var playing = !video.paused && video.readyState >= 3;
|
|
8157
8259
|
if (advanced && playing) {
|
|
8158
8260
|
if (_this.debug) {
|
|
8159
|
-
console.log("[StormcloudVideoPlayer] Live stream resumed successfully after ad break");
|
|
8261
|
+
console.log("[StormcloudVideoPlayer] Live stream resumed successfully after ad break — ".concat(_this.describeVideoState()));
|
|
8160
8262
|
}
|
|
8263
|
+
cleanup();
|
|
8161
8264
|
return;
|
|
8162
8265
|
}
|
|
8163
8266
|
if (video.paused) {
|
|
@@ -8169,8 +8272,9 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
8169
8272
|
var wedged = bufferedAhead < 0.5 && !advanced;
|
|
8170
8273
|
if (elapsed >= maxMonitorMs) {
|
|
8171
8274
|
if (_this.debug && !advanced) {
|
|
8172
|
-
console.warn("[StormcloudVideoPlayer] Live stream failed to resume after ".concat((maxMonitorMs / 1e3).toFixed(0), "s
|
|
8275
|
+
console.warn("[StormcloudVideoPlayer] Live stream failed to resume after ".concat((maxMonitorMs / 1e3).toFixed(0), "s — ").concat(_this.describeVideoState()));
|
|
8173
8276
|
}
|
|
8277
|
+
cleanup();
|
|
8174
8278
|
return;
|
|
8175
8279
|
}
|
|
8176
8280
|
var canRecover = wedged && elapsed >= graceMs && Date.now() - lastRecoveryAt >= recoveryCooldownMs && recoveries < maxRecoveries;
|
|
@@ -8182,7 +8286,7 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
8182
8286
|
var liveSyncPos = _this.host.getLiveSyncPosition();
|
|
8183
8287
|
var reloadPos = liveSyncPos != null && liveSyncPos > currentTime ? liveSyncPos : currentTime;
|
|
8184
8288
|
if (_this.debug) {
|
|
8185
|
-
console.warn("[StormcloudVideoPlayer] Content wedged after ad break
|
|
8289
|
+
console.warn("[StormcloudVideoPlayer] Content wedged after ad break — restarting HLS load at ".concat(reloadPos.toFixed(2), "s (recovery ").concat(recoveries, "/").concat(maxRecoveries, ") — ").concat(_this.describeVideoState()));
|
|
8186
8290
|
}
|
|
8187
8291
|
if (liveSyncPos != null && liveSyncPos > currentTime) {
|
|
8188
8292
|
video.currentTime = liveSyncPos;
|
|
@@ -8190,7 +8294,7 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
8190
8294
|
_this.host.restartHlsLoad(reloadPos);
|
|
8191
8295
|
} else {
|
|
8192
8296
|
if (_this.debug) {
|
|
8193
|
-
console.warn("[StormcloudVideoPlayer] Content still wedged after ad break
|
|
8297
|
+
console.warn("[StormcloudVideoPlayer] Content still wedged after ad break — hard-reloading live stream (recovery ".concat(recoveries, "/").concat(maxRecoveries, ") — ").concat(_this.describeVideoState()));
|
|
8194
8298
|
}
|
|
8195
8299
|
_this.host.reloadLiveStream();
|
|
8196
8300
|
}
|