@mottosports/motto-video-player 1.0.1-rc.27 → 1.0.1-rc.29
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 +68 -71
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +71 -74
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1107,7 +1107,7 @@ import { forwardRef, useEffect as useEffect5, useRef as useRef8, useImperativeHa
|
|
|
1107
1107
|
import shaka3 from "shaka-player/dist/shaka-player.ui";
|
|
1108
1108
|
|
|
1109
1109
|
// src/hooks/useShakePlayer.ts
|
|
1110
|
-
import {
|
|
1110
|
+
import { useCallback } from "react";
|
|
1111
1111
|
import shaka from "shaka-player/dist/shaka-player.ui";
|
|
1112
1112
|
|
|
1113
1113
|
// src/utils/devices.ts
|
|
@@ -1140,9 +1140,10 @@ var useShakePlayer = ({
|
|
|
1140
1140
|
shakaConfig,
|
|
1141
1141
|
drmConfig,
|
|
1142
1142
|
onError,
|
|
1143
|
-
onPlayerReady
|
|
1143
|
+
onPlayerReady,
|
|
1144
|
+
onBeforeLoad,
|
|
1145
|
+
playerRef
|
|
1144
1146
|
}) => {
|
|
1145
|
-
const playerRef = useRef(null);
|
|
1146
1147
|
const initializePlayer = useCallback(async (video) => {
|
|
1147
1148
|
try {
|
|
1148
1149
|
shaka.polyfill.installAll();
|
|
@@ -1155,6 +1156,55 @@ var useShakePlayer = ({
|
|
|
1155
1156
|
if (shakaConfig) {
|
|
1156
1157
|
player.configure(shakaConfig);
|
|
1157
1158
|
}
|
|
1159
|
+
let manifestUrl = src.url;
|
|
1160
|
+
const isDRM = Boolean(src.drm);
|
|
1161
|
+
let cert = null;
|
|
1162
|
+
if (isDRM) {
|
|
1163
|
+
const isPlayReady = isPlayReadySupported();
|
|
1164
|
+
const isFairPlay = isAppleDevice();
|
|
1165
|
+
if (isAppleDevice() && src.drm.fairplay?.certificate_url) {
|
|
1166
|
+
const req = await fetch(src.drm.fairplay.certificate_url);
|
|
1167
|
+
cert = await req.arrayBuffer();
|
|
1168
|
+
manifestUrl = src.drm.fairplay.playlist_url;
|
|
1169
|
+
} else if (isPlayReady && src.drm.playready?.license_url) {
|
|
1170
|
+
manifestUrl = src.drm.playready.playlist_url;
|
|
1171
|
+
} else {
|
|
1172
|
+
manifestUrl = src.drm?.widevine?.playlist_url || "";
|
|
1173
|
+
}
|
|
1174
|
+
player.configure({
|
|
1175
|
+
drm: {
|
|
1176
|
+
servers: {
|
|
1177
|
+
"com.widevine.alpha": src.drm.widevine?.license_url,
|
|
1178
|
+
"com.microsoft.playready": src.drm.playready?.license_url,
|
|
1179
|
+
"com.apple.fps": src.drm.fairplay?.license_url
|
|
1180
|
+
},
|
|
1181
|
+
...cert && {
|
|
1182
|
+
advanced: {
|
|
1183
|
+
"com.apple.fps": {
|
|
1184
|
+
serverCertificate: new Uint8Array(cert)
|
|
1185
|
+
}
|
|
1186
|
+
}
|
|
1187
|
+
}
|
|
1188
|
+
}
|
|
1189
|
+
});
|
|
1190
|
+
const netEngine = player.getNetworkingEngine();
|
|
1191
|
+
if (netEngine) {
|
|
1192
|
+
netEngine.registerRequestFilter((type, request) => {
|
|
1193
|
+
if (type === shaka.net.NetworkingEngine.RequestType.LICENSE) {
|
|
1194
|
+
request.headers["x-dt-custom-data"] = src.drm.token;
|
|
1195
|
+
}
|
|
1196
|
+
});
|
|
1197
|
+
netEngine.registerResponseFilter((type, response) => {
|
|
1198
|
+
if (type === shaka.net.NetworkingEngine.RequestType.LICENSE) {
|
|
1199
|
+
const ks = player.keySystem && player.keySystem();
|
|
1200
|
+
if (ks === "com.apple.fps") {
|
|
1201
|
+
const responseText = shaka.util.StringUtils.fromUTF8(response.data);
|
|
1202
|
+
response.data = shaka.util.Uint8ArrayUtils.fromBase64(responseText).buffer;
|
|
1203
|
+
}
|
|
1204
|
+
}
|
|
1205
|
+
});
|
|
1206
|
+
}
|
|
1207
|
+
}
|
|
1158
1208
|
player?.addEventListener("error", (event) => {
|
|
1159
1209
|
const error = event.detail;
|
|
1160
1210
|
if (error?.code === 7e3) {
|
|
@@ -1163,6 +1213,8 @@ var useShakePlayer = ({
|
|
|
1163
1213
|
console.error("Shaka Player Error:", error);
|
|
1164
1214
|
onError?.(new Error(`Shaka Player Error: ${error.message || "Unknown error"}`));
|
|
1165
1215
|
});
|
|
1216
|
+
onBeforeLoad?.();
|
|
1217
|
+
await player.load(manifestUrl);
|
|
1166
1218
|
onPlayerReady?.(player);
|
|
1167
1219
|
return player;
|
|
1168
1220
|
} catch (error) {
|
|
@@ -1173,61 +1225,7 @@ var useShakePlayer = ({
|
|
|
1173
1225
|
onError?.(error);
|
|
1174
1226
|
throw error;
|
|
1175
1227
|
}
|
|
1176
|
-
}, [shakaConfig, drmConfig, src, onError, onPlayerReady]);
|
|
1177
|
-
const loadSource = useCallback(async () => {
|
|
1178
|
-
const player = playerRef.current;
|
|
1179
|
-
if (!player) return;
|
|
1180
|
-
let manifestUrl = src.url;
|
|
1181
|
-
const isDRM = Boolean(src.drm);
|
|
1182
|
-
let cert = null;
|
|
1183
|
-
if (isDRM) {
|
|
1184
|
-
const isPlayReady = isPlayReadySupported();
|
|
1185
|
-
const isFairPlay = isAppleDevice();
|
|
1186
|
-
if (isFairPlay && src.drm.fairplay?.certificate_url) {
|
|
1187
|
-
const req = await fetch(src.drm.fairplay.certificate_url);
|
|
1188
|
-
cert = await req.arrayBuffer();
|
|
1189
|
-
manifestUrl = src.drm.fairplay.playlist_url;
|
|
1190
|
-
} else if (isPlayReady && src.drm.playready?.license_url) {
|
|
1191
|
-
manifestUrl = src.drm.playready.playlist_url;
|
|
1192
|
-
} else {
|
|
1193
|
-
manifestUrl = src.drm?.widevine?.playlist_url || "";
|
|
1194
|
-
}
|
|
1195
|
-
player.configure({
|
|
1196
|
-
drm: {
|
|
1197
|
-
servers: {
|
|
1198
|
-
"com.widevine.alpha": src.drm.widevine?.license_url,
|
|
1199
|
-
"com.microsoft.playready": src.drm.playready?.license_url,
|
|
1200
|
-
"com.apple.fps": src.drm.fairplay?.license_url
|
|
1201
|
-
},
|
|
1202
|
-
...cert && {
|
|
1203
|
-
advanced: {
|
|
1204
|
-
"com.apple.fps": {
|
|
1205
|
-
serverCertificate: new Uint8Array(cert)
|
|
1206
|
-
}
|
|
1207
|
-
}
|
|
1208
|
-
}
|
|
1209
|
-
}
|
|
1210
|
-
});
|
|
1211
|
-
const netEngine = player.getNetworkingEngine();
|
|
1212
|
-
if (netEngine) {
|
|
1213
|
-
netEngine.registerRequestFilter((type, request) => {
|
|
1214
|
-
if (type === shaka.net.NetworkingEngine.RequestType.LICENSE) {
|
|
1215
|
-
request.headers["x-dt-custom-data"] = src.drm.token;
|
|
1216
|
-
}
|
|
1217
|
-
});
|
|
1218
|
-
netEngine.registerResponseFilter((type, response) => {
|
|
1219
|
-
if (type === shaka.net.NetworkingEngine.RequestType.LICENSE) {
|
|
1220
|
-
const ks = player.keySystem && player.keySystem();
|
|
1221
|
-
if (ks === "com.apple.fps") {
|
|
1222
|
-
const responseText = shaka.util.StringUtils.fromUTF8(response.data);
|
|
1223
|
-
response.data = shaka.util.Uint8ArrayUtils.fromBase64(responseText).buffer;
|
|
1224
|
-
}
|
|
1225
|
-
}
|
|
1226
|
-
});
|
|
1227
|
-
}
|
|
1228
|
-
}
|
|
1229
|
-
await player.load(manifestUrl);
|
|
1230
|
-
}, [src]);
|
|
1228
|
+
}, [shakaConfig, drmConfig, src, onError, onPlayerReady, onBeforeLoad, playerRef]);
|
|
1231
1229
|
const destroyPlayer = useCallback(async () => {
|
|
1232
1230
|
if (playerRef.current) {
|
|
1233
1231
|
try {
|
|
@@ -1238,11 +1236,9 @@ var useShakePlayer = ({
|
|
|
1238
1236
|
playerRef.current = null;
|
|
1239
1237
|
}
|
|
1240
1238
|
}
|
|
1241
|
-
}, []);
|
|
1239
|
+
}, [playerRef]);
|
|
1242
1240
|
return {
|
|
1243
|
-
playerRef,
|
|
1244
1241
|
initializePlayer,
|
|
1245
|
-
loadSource,
|
|
1246
1242
|
destroyPlayer
|
|
1247
1243
|
};
|
|
1248
1244
|
};
|
|
@@ -1367,7 +1363,7 @@ import initShakaPlayerMux from "@mux/mux-data-shakaplayer";
|
|
|
1367
1363
|
import shaka2 from "shaka-player/dist/shaka-player.ui";
|
|
1368
1364
|
|
|
1369
1365
|
// package.json
|
|
1370
|
-
var version = "1.0.1-rc.
|
|
1366
|
+
var version = "1.0.1-rc.29";
|
|
1371
1367
|
|
|
1372
1368
|
// src/hooks/useMuxAnalytics.ts
|
|
1373
1369
|
var useMuxAnalytics = (playerRef, muxConfig, onMuxReady, onMuxDataUpdate) => {
|
|
@@ -3272,12 +3268,21 @@ var Player = forwardRef(
|
|
|
3272
3268
|
const containerRef = useRef8(null);
|
|
3273
3269
|
const adContainerRef = useRef8(null);
|
|
3274
3270
|
useImperativeHandle(ref, () => videoRef.current, []);
|
|
3275
|
-
const
|
|
3271
|
+
const playerRef = useRef8(null);
|
|
3272
|
+
const {
|
|
3273
|
+
initializeMux,
|
|
3274
|
+
updateMuxData,
|
|
3275
|
+
handleMuxError,
|
|
3276
|
+
destroyMux
|
|
3277
|
+
} = useMuxAnalytics(playerRef, muxConfig, events?.onMuxReady, events?.onMuxDataUpdate);
|
|
3278
|
+
const { initializePlayer, destroyPlayer } = useShakePlayer({
|
|
3276
3279
|
src,
|
|
3277
3280
|
shakaConfig,
|
|
3278
3281
|
drmConfig,
|
|
3279
3282
|
onError: events?.onError,
|
|
3280
|
-
onPlayerReady: events?.onPlayerReady
|
|
3283
|
+
onPlayerReady: events?.onPlayerReady,
|
|
3284
|
+
onBeforeLoad: initializeMux,
|
|
3285
|
+
playerRef
|
|
3281
3286
|
});
|
|
3282
3287
|
const {
|
|
3283
3288
|
getAvailableQualities,
|
|
@@ -3296,12 +3301,6 @@ var Player = forwardRef(
|
|
|
3296
3301
|
skipForward,
|
|
3297
3302
|
enabled: true
|
|
3298
3303
|
});
|
|
3299
|
-
const {
|
|
3300
|
-
initializeMux,
|
|
3301
|
-
updateMuxData,
|
|
3302
|
-
handleMuxError,
|
|
3303
|
-
destroyMux
|
|
3304
|
-
} = useMuxAnalytics(playerRef, muxConfig, events?.onMuxReady, events?.onMuxDataUpdate);
|
|
3305
3304
|
const { setupEventListeners, cleanupEventListeners } = useEventHandlers(videoRef, {
|
|
3306
3305
|
onPlay: events?.onPlay,
|
|
3307
3306
|
onPause: events?.onPause,
|
|
@@ -3380,8 +3379,6 @@ var Player = forwardRef(
|
|
|
3380
3379
|
const initialize = async () => {
|
|
3381
3380
|
try {
|
|
3382
3381
|
await initializePlayer(video);
|
|
3383
|
-
initializeMux();
|
|
3384
|
-
await loadSource();
|
|
3385
3382
|
setupEventListeners();
|
|
3386
3383
|
const cleanupQuality = setupQualityTracking();
|
|
3387
3384
|
configureQuality();
|
|
@@ -4053,7 +4050,7 @@ var Video = ({
|
|
|
4053
4050
|
};
|
|
4054
4051
|
|
|
4055
4052
|
// src/Event.tsx
|
|
4056
|
-
import { useCallback as
|
|
4053
|
+
import { useCallback as useCallback9, useEffect as useEffect8, useState as useState4 } from "react";
|
|
4057
4054
|
import { twMerge as twMerge4 } from "tailwind-merge";
|
|
4058
4055
|
import { useQuery as useQuery2 } from "@tanstack/react-query";
|
|
4059
4056
|
import { Fragment, jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
@@ -4264,7 +4261,7 @@ function PreEvent({
|
|
|
4264
4261
|
}, 1e3);
|
|
4265
4262
|
return () => clearInterval(interval);
|
|
4266
4263
|
}, [date, remainingTime]);
|
|
4267
|
-
const renderCountdown =
|
|
4264
|
+
const renderCountdown = useCallback9(() => {
|
|
4268
4265
|
if (shouldBeStarted) {
|
|
4269
4266
|
return /* @__PURE__ */ jsx10("span", { className: "text-base-content text-xl", children: t("EVENT_NOT_STARTED") });
|
|
4270
4267
|
}
|