@100mslive/roomkit-react 0.3.7-alpha.5 → 0.3.8-alpha.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/{HLSView-JXKL2OA3.js → HLSView-CTZXD762.js} +35 -17
- package/dist/{HLSView-JXKL2OA3.js.map → HLSView-CTZXD762.js.map} +3 -3
- package/dist/Prebuilt/components/HMSVideo/utils.d.ts +1 -0
- package/dist/{chunk-JAZO4PHJ.js → chunk-NDLMRKFR.js} +87 -87
- package/dist/{chunk-JAZO4PHJ.js.map → chunk-NDLMRKFR.js.map} +3 -3
- package/dist/index.cjs.js +112 -94
- package/dist/index.cjs.js.map +3 -3
- package/dist/index.js +1 -1
- package/dist/meta.cjs.json +15 -15
- package/dist/meta.esbuild.json +24 -24
- package/package.json +6 -6
- package/src/Prebuilt/components/HMSVideo/VideoProgress.tsx +3 -2
- package/src/Prebuilt/components/HMSVideo/VideoTime.tsx +16 -7
- package/src/Prebuilt/components/HMSVideo/utils.ts +10 -0
- package/src/Prebuilt/components/RoomDetails/RoomDetailsPane.tsx +2 -2
- package/src/Prebuilt/layouts/SidePane.tsx +1 -1
@@ -38,11 +38,11 @@ import {
|
|
38
38
|
useRoomLayoutHeader,
|
39
39
|
useSidepaneToggle,
|
40
40
|
useTheme
|
41
|
-
} from "./chunk-
|
41
|
+
} from "./chunk-NDLMRKFR.js";
|
42
42
|
|
43
43
|
// src/Prebuilt/layouts/HLSView.jsx
|
44
44
|
init_define_process_env();
|
45
|
-
import React15, { useCallback as
|
45
|
+
import React15, { useCallback as useCallback3, useEffect as useEffect3, useRef, useState as useState4 } from "react";
|
46
46
|
import { useFullscreen, useMedia as useMedia4, usePrevious, useToggle } from "react-use";
|
47
47
|
import { HLSPlaybackState, HMSHLSPlayer, HMSHLSPlayerEvents as HMSHLSPlayerEvents2 } from "@100mslive/hls-player";
|
48
48
|
import screenfull from "screenfull";
|
@@ -427,6 +427,15 @@ function getDurationFromSeconds2(timeInSeconds) {
|
|
427
427
|
}
|
428
428
|
return videoTimeStr;
|
429
429
|
}
|
430
|
+
function getDuration(videoEl) {
|
431
|
+
if (isFinite(videoEl.duration)) {
|
432
|
+
return videoEl.duration;
|
433
|
+
}
|
434
|
+
if (videoEl.seekable.length > 0) {
|
435
|
+
return videoEl.seekable.end(0);
|
436
|
+
}
|
437
|
+
return 0;
|
438
|
+
}
|
430
439
|
|
431
440
|
// src/Prebuilt/components/HMSVideo/VideoProgress.tsx
|
432
441
|
var VideoProgress = ({
|
@@ -438,15 +447,15 @@ var VideoProgress = ({
|
|
438
447
|
const [bufferProgress, setBufferProgress] = useState(0);
|
439
448
|
const videoEl = hlsPlayer2 == null ? void 0 : hlsPlayer2.getVideoElement();
|
440
449
|
const setProgress = useCallback(() => {
|
441
|
-
var _a
|
450
|
+
var _a;
|
442
451
|
if (!videoEl) {
|
443
452
|
return;
|
444
453
|
}
|
445
|
-
const duration =
|
454
|
+
const duration = getDuration(videoEl);
|
446
455
|
const videoProgress2 = Math.floor(getPercentage(videoEl.currentTime, duration));
|
447
456
|
let bufferProgress2 = 0;
|
448
457
|
if (videoEl.buffered.length > 0) {
|
449
|
-
bufferProgress2 = Math.floor(getPercentage((
|
458
|
+
bufferProgress2 = Math.floor(getPercentage((_a = videoEl.buffered) == null ? void 0 : _a.end(0), duration));
|
450
459
|
}
|
451
460
|
if (!isNaN(videoProgress2)) {
|
452
461
|
setVideoProgress(videoProgress2);
|
@@ -465,6 +474,7 @@ var VideoProgress = ({
|
|
465
474
|
if (!videoEl) {
|
466
475
|
return;
|
467
476
|
}
|
477
|
+
setProgress();
|
468
478
|
videoEl.addEventListener("timeupdate", timeupdateHandler);
|
469
479
|
return function cleanup() {
|
470
480
|
videoEl == null ? void 0 : videoEl.removeEventListener("timeupdate", timeupdateHandler);
|
@@ -523,28 +533,36 @@ var VideoProgress = ({
|
|
523
533
|
|
524
534
|
// src/Prebuilt/components/HMSVideo/VideoTime.tsx
|
525
535
|
init_define_process_env();
|
526
|
-
import React8, { useEffect as useEffect2, useState as useState2 } from "react";
|
536
|
+
import React8, { useCallback as useCallback2, useEffect as useEffect2, useState as useState2 } from "react";
|
527
537
|
import { HMSHLSPlayerEvents } from "@100mslive/hls-player";
|
528
538
|
var VideoTime = () => {
|
529
539
|
const { hlsPlayer: hlsPlayer2 } = useHMSPlayerContext();
|
530
|
-
const [videoTime, setVideoTime] = useState2(
|
531
|
-
|
532
|
-
|
540
|
+
const [videoTime, setVideoTime] = useState2(getDurationFromSeconds2(0));
|
541
|
+
const updateTime = useCallback2(
|
542
|
+
(currentTime) => {
|
533
543
|
const videoEl = hlsPlayer2 == null ? void 0 : hlsPlayer2.getVideoElement();
|
534
544
|
if (videoEl) {
|
535
|
-
const duration =
|
545
|
+
const duration = getDuration(videoEl);
|
536
546
|
setVideoTime(getDurationFromSeconds2(duration - currentTime));
|
537
547
|
} else {
|
538
548
|
setVideoTime(getDurationFromSeconds2(currentTime));
|
539
549
|
}
|
550
|
+
},
|
551
|
+
[hlsPlayer2]
|
552
|
+
);
|
553
|
+
useEffect2(() => {
|
554
|
+
const timeupdateHandler = (currentTime) => {
|
555
|
+
updateTime(currentTime);
|
540
556
|
};
|
541
557
|
if (hlsPlayer2) {
|
542
558
|
hlsPlayer2.on(HMSHLSPlayerEvents.CURRENT_TIME, timeupdateHandler);
|
559
|
+
const videoEl = hlsPlayer2 == null ? void 0 : hlsPlayer2.getVideoElement();
|
560
|
+
updateTime(videoEl.currentTime);
|
543
561
|
}
|
544
562
|
return function cleanup() {
|
545
563
|
hlsPlayer2 == null ? void 0 : hlsPlayer2.off(HMSHLSPlayerEvents.CURRENT_TIME, timeupdateHandler);
|
546
564
|
};
|
547
|
-
}, [hlsPlayer2]);
|
565
|
+
}, [hlsPlayer2, updateTime]);
|
548
566
|
return hlsPlayer2 ? /* @__PURE__ */ React8.createElement(
|
549
567
|
Text,
|
550
568
|
{
|
@@ -1099,7 +1117,7 @@ var HLSView = () => {
|
|
1099
1117
|
videoElem == null ? void 0 : videoElem.removeEventListener("ended", setStreamEndedCallback);
|
1100
1118
|
};
|
1101
1119
|
}, [hlsUrl]);
|
1102
|
-
const handleQuality =
|
1120
|
+
const handleQuality = useCallback3(
|
1103
1121
|
(quality) => {
|
1104
1122
|
var _a2;
|
1105
1123
|
if (hlsPlayer) {
|
@@ -1265,7 +1283,7 @@ var HLSView = () => {
|
|
1265
1283
|
}
|
1266
1284
|
};
|
1267
1285
|
}, [controlsVisible, isFullScreen, seekProgress, qualityDropDownOpen]);
|
1268
|
-
const onSeekTo =
|
1286
|
+
const onSeekTo = useCallback3(
|
1269
1287
|
(seek) => {
|
1270
1288
|
var _a2;
|
1271
1289
|
match({ isLandscape, isMobile, seek }).with({ seek: -10, isMobile: false, isLandscape: false }, () => {
|
@@ -1287,7 +1305,7 @@ var HLSView = () => {
|
|
1287
1305
|
},
|
1288
1306
|
[hoverControlsVisible, isLandscape, isMobile]
|
1289
1307
|
);
|
1290
|
-
const onDoubleClickHandler =
|
1308
|
+
const onDoubleClickHandler = useCallback3(
|
1291
1309
|
(event) => {
|
1292
1310
|
var _a2;
|
1293
1311
|
if (!(isMobile || isLandscape) || ((_a2 = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _a2.playlist_type) !== HLSPlaylistType.DVR) {
|
@@ -1314,7 +1332,7 @@ var HLSView = () => {
|
|
1314
1332
|
},
|
1315
1333
|
[hlsState == null ? void 0 : hlsState.variants, hoverControlsVisible, isLandscape, isMobile, onSeekTo]
|
1316
1334
|
);
|
1317
|
-
const onClickHandler =
|
1335
|
+
const onClickHandler = useCallback3(() => __async(void 0, null, function* () {
|
1318
1336
|
var _a2;
|
1319
1337
|
match({ isMobile, isLandscape, playlist_type: (_a2 = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _a2.playlist_type }).with({ playlist_type: HLSPlaylistType.DVR, isMobile: false, isLandscape: false }, () => __async(void 0, null, function* () {
|
1320
1338
|
if (isPaused) {
|
@@ -1332,7 +1350,7 @@ var HLSView = () => {
|
|
1332
1350
|
}
|
1333
1351
|
).otherwise(() => null);
|
1334
1352
|
}), [hlsState == null ? void 0 : hlsState.variants, isLandscape, isMobile, isPaused]);
|
1335
|
-
const onHoverHandler =
|
1353
|
+
const onHoverHandler = useCallback3(
|
1336
1354
|
(event) => {
|
1337
1355
|
event.preventDefault();
|
1338
1356
|
if (isMobile || isLandscape) {
|
@@ -1600,4 +1618,4 @@ var HLSView_default = HLSView;
|
|
1600
1618
|
export {
|
1601
1619
|
HLSView_default as default
|
1602
1620
|
};
|
1603
|
-
//# sourceMappingURL=HLSView-
|
1621
|
+
//# sourceMappingURL=HLSView-CTZXD762.js.map
|