@mottosports/motto-video-player 1.0.1-rc.60 → 1.0.1-rc.62
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/index.js +55 -27
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +55 -27
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1160,7 +1160,6 @@ var isPlayReadySupported = () => {
|
|
|
1160
1160
|
return isXbox || (isEdge || isIE) && isWindows;
|
|
1161
1161
|
};
|
|
1162
1162
|
var supportsWidevinePersistentLicenses = () => {
|
|
1163
|
-
return false;
|
|
1164
1163
|
if (typeof navigator === "undefined") {
|
|
1165
1164
|
return false;
|
|
1166
1165
|
}
|
|
@@ -1185,7 +1184,7 @@ var supportsWidevinePersistentLicenses = () => {
|
|
|
1185
1184
|
import initShakaPlayerMux from "@mux/mux-data-shakaplayer";
|
|
1186
1185
|
|
|
1187
1186
|
// package.json
|
|
1188
|
-
var version = "1.0.1-rc.
|
|
1187
|
+
var version = "1.0.1-rc.62";
|
|
1189
1188
|
|
|
1190
1189
|
// src/utils/licenseCache.ts
|
|
1191
1190
|
var PERSISTENT_LICENSE_PREFIX = "motto_lic_";
|
|
@@ -1355,6 +1354,8 @@ var useShakaPlayer = ({
|
|
|
1355
1354
|
const waitingForKeyHandlerRef = useRef(null);
|
|
1356
1355
|
const playbackResumedHandlerRef = useRef(null);
|
|
1357
1356
|
const usingPersistentLicenseRef = useRef(false);
|
|
1357
|
+
const storedPersistentThisLoadRef = useRef(false);
|
|
1358
|
+
const drmExpirationHandlerRef = useRef(null);
|
|
1358
1359
|
const getManifestUrl = useCallback(() => {
|
|
1359
1360
|
let manifestUrl = src.url;
|
|
1360
1361
|
const isDRM = Boolean(src.drm);
|
|
@@ -1386,6 +1387,7 @@ var useShakaPlayer = ({
|
|
|
1386
1387
|
const manifestUrl = getManifestUrl();
|
|
1387
1388
|
let playlistId = src.id;
|
|
1388
1389
|
const isDRM = Boolean(src.drm);
|
|
1390
|
+
storedPersistentThisLoadRef.current = false;
|
|
1389
1391
|
let storedSessionsMetadata = [];
|
|
1390
1392
|
if (isDRM && playlistId) {
|
|
1391
1393
|
storedSessionsMetadata = retrievePersistentLicense(playlistId, src.drm.licenseCacheKey ?? "");
|
|
@@ -1498,6 +1500,36 @@ var useShakaPlayer = ({
|
|
|
1498
1500
|
});
|
|
1499
1501
|
}
|
|
1500
1502
|
}
|
|
1503
|
+
if (isDRM && playlistId) {
|
|
1504
|
+
const onDRMSessionUpdate = () => {
|
|
1505
|
+
try {
|
|
1506
|
+
if (storedPersistentThisLoadRef.current) return;
|
|
1507
|
+
const activeDrmSessions = player.getActiveSessionsMetadata?.();
|
|
1508
|
+
if (!activeDrmSessions) return;
|
|
1509
|
+
const persistentSessions = activeDrmSessions.filter(
|
|
1510
|
+
(session) => session.sessionType === "persistent-license"
|
|
1511
|
+
);
|
|
1512
|
+
if (persistentSessions.length > 0) {
|
|
1513
|
+
const sessionsToStore = persistentSessions.map((session) => ({
|
|
1514
|
+
sessionId: session.sessionId,
|
|
1515
|
+
initData: session.initData,
|
|
1516
|
+
initDataType: session.initDataType,
|
|
1517
|
+
keySystem: session.keySystem || "com.widevine.alpha"
|
|
1518
|
+
}));
|
|
1519
|
+
storePersistentLicense(playlistId, src.drm.licenseCacheKey ?? "", sessionsToStore);
|
|
1520
|
+
storedPersistentThisLoadRef.current = true;
|
|
1521
|
+
}
|
|
1522
|
+
} catch (e) {
|
|
1523
|
+
console.warn("Failed to persist licenses on expiration update:", e);
|
|
1524
|
+
}
|
|
1525
|
+
};
|
|
1526
|
+
try {
|
|
1527
|
+
player.addEventListener("drmsessionupdate", onDRMSessionUpdate);
|
|
1528
|
+
drmExpirationHandlerRef.current = onDRMSessionUpdate;
|
|
1529
|
+
} catch (e) {
|
|
1530
|
+
console.warn("Failed to attach drmsessionupdate listener:", e);
|
|
1531
|
+
}
|
|
1532
|
+
}
|
|
1501
1533
|
player?.addEventListener("error", (event) => {
|
|
1502
1534
|
const error = event.detail;
|
|
1503
1535
|
if (error?.code === 7e3) {
|
|
@@ -1561,30 +1593,6 @@ var useShakaPlayer = ({
|
|
|
1561
1593
|
}
|
|
1562
1594
|
}
|
|
1563
1595
|
await player.load(manifestUrl);
|
|
1564
|
-
if (isDRM && playlistId) {
|
|
1565
|
-
try {
|
|
1566
|
-
setTimeout(() => {
|
|
1567
|
-
const activeDrmSessions = player.getActiveSessionsMetadata?.();
|
|
1568
|
-
if (activeDrmSessions) {
|
|
1569
|
-
const persistentSessions = activeDrmSessions.filter(
|
|
1570
|
-
(session) => session.sessionType === "persistent-license"
|
|
1571
|
-
);
|
|
1572
|
-
if (persistentSessions.length > 0) {
|
|
1573
|
-
const sessionsToStore = persistentSessions.map((session) => ({
|
|
1574
|
-
sessionId: session.sessionId,
|
|
1575
|
-
initData: session.initData,
|
|
1576
|
-
initDataType: session.initDataType,
|
|
1577
|
-
keySystem: session.keySystem || "com.widevine.alpha"
|
|
1578
|
-
// fallback
|
|
1579
|
-
}));
|
|
1580
|
-
storePersistentLicense(playlistId, src.drm.licenseCacheKey ?? "", sessionsToStore);
|
|
1581
|
-
}
|
|
1582
|
-
}
|
|
1583
|
-
}, 2e3);
|
|
1584
|
-
} catch (error) {
|
|
1585
|
-
console.warn("Failed to store persistent license sessions:", error);
|
|
1586
|
-
}
|
|
1587
|
-
}
|
|
1588
1596
|
onPlayerReady?.(player);
|
|
1589
1597
|
return player;
|
|
1590
1598
|
} catch (error) {
|
|
@@ -1620,11 +1628,21 @@ var useShakaPlayer = ({
|
|
|
1620
1628
|
window.clearTimeout(waitingForKeyTimerRef.current);
|
|
1621
1629
|
waitingForKeyTimerRef.current = null;
|
|
1622
1630
|
}
|
|
1631
|
+
try {
|
|
1632
|
+
if (drmExpirationHandlerRef.current && playerRef.current?.removeEventListener) {
|
|
1633
|
+
playerRef.current.removeEventListener("drmsessionupdate", drmExpirationHandlerRef.current);
|
|
1634
|
+
}
|
|
1635
|
+
} catch (e) {
|
|
1636
|
+
console.warn("Error removing DRM expiration listener:", e);
|
|
1637
|
+
} finally {
|
|
1638
|
+
drmExpirationHandlerRef.current = null;
|
|
1639
|
+
}
|
|
1623
1640
|
await playerRef.current.destroy();
|
|
1624
1641
|
} catch (error) {
|
|
1625
1642
|
console.warn("Error destroying Shaka Player:", error);
|
|
1626
1643
|
} finally {
|
|
1627
1644
|
playerRef.current = null;
|
|
1645
|
+
storedPersistentThisLoadRef.current = false;
|
|
1628
1646
|
}
|
|
1629
1647
|
}
|
|
1630
1648
|
}, [playerRef]);
|
|
@@ -3769,6 +3787,7 @@ var Player = forwardRef(
|
|
|
3769
3787
|
const containerRef = useRef8(null);
|
|
3770
3788
|
const [isScriptsLoaded, setIsScriptsLoaded] = useState4(false);
|
|
3771
3789
|
const [isInitialLoading, setIsInitialLoading] = useState4(true);
|
|
3790
|
+
const [bfResetKey, setBfResetKey] = useState4(0);
|
|
3772
3791
|
useImperativeHandle(ref, () => videoRef.current, []);
|
|
3773
3792
|
const { playerRef, initializePlayer, destroyPlayer, isRetrying } = useShakaPlayer({
|
|
3774
3793
|
src,
|
|
@@ -3916,6 +3935,15 @@ var Player = forwardRef(
|
|
|
3916
3935
|
};
|
|
3917
3936
|
loadRequiredScripts();
|
|
3918
3937
|
}, [imaConfig?.adTagUrl, system73Config?.apiKey]);
|
|
3938
|
+
useEffect5(() => {
|
|
3939
|
+
const onPageShow = (e) => {
|
|
3940
|
+
if (e && e.persisted) {
|
|
3941
|
+
setBfResetKey((k) => k + 1);
|
|
3942
|
+
}
|
|
3943
|
+
};
|
|
3944
|
+
window.addEventListener("pageshow", onPageShow);
|
|
3945
|
+
return () => window.removeEventListener("pageshow", onPageShow);
|
|
3946
|
+
}, []);
|
|
3919
3947
|
useEffect5(() => {
|
|
3920
3948
|
const video = videoRef.current;
|
|
3921
3949
|
if (!video || !isScriptsLoaded) return;
|
|
@@ -3955,7 +3983,7 @@ var Player = forwardRef(
|
|
|
3955
3983
|
destroyMux();
|
|
3956
3984
|
destroyPlayer();
|
|
3957
3985
|
};
|
|
3958
|
-
}, [src, isScriptsLoaded]);
|
|
3986
|
+
}, [src, isScriptsLoaded, bfResetKey]);
|
|
3959
3987
|
useEffect5(() => {
|
|
3960
3988
|
const video = videoRef.current;
|
|
3961
3989
|
if (!video) return;
|