@100mslive/roomkit-react 0.2.8-alpha.2 → 0.2.8-alpha.4
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-CEPQ23TO.js → HLSView-UIPDGADR.js} +509 -234
- package/dist/HLSView-UIPDGADR.js.map +7 -0
- package/dist/Prebuilt/common/hooks.d.ts +3 -0
- package/dist/Prebuilt/components/HMSVideo/FullscreenButton.d.ts +5 -0
- package/dist/Prebuilt/components/HMSVideo/HLSAutoplayBlockedPrompt.d.ts +5 -0
- package/dist/Prebuilt/components/HMSVideo/HLSCaptionSelector.d.ts +1 -2
- package/dist/Prebuilt/components/HMSVideo/HLSQualitySelector.d.ts +12 -0
- package/dist/Prebuilt/components/HMSVideo/MwebHLSViewTitle.d.ts +2 -0
- package/dist/Prebuilt/components/HMSVideo/PlayButton.d.ts +6 -0
- package/dist/Prebuilt/components/HMSVideo/PlayerContext.d.ts +8 -0
- package/dist/Prebuilt/components/HMSVideo/VideoProgress.d.ts +2 -0
- package/dist/Prebuilt/components/HMSVideo/VideoTime.d.ts +2 -0
- package/dist/Prebuilt/components/HMSVideo/VolumeControl.d.ts +2 -0
- package/dist/Prebuilt/components/HMSVideo/index.d.ts +17 -0
- package/dist/Prebuilt/components/HMSVideo/utils.d.ts +9 -0
- package/dist/Prebuilt/components/Leave/MwebLeaveRoom.d.ts +1 -3
- package/dist/Prebuilt/components/MwebLandscapePrompt.d.ts +1 -1
- package/dist/Prebuilt/components/RaiseHand.d.ts +2 -0
- package/dist/Prebuilt/components/SidePaneTabs.d.ts +1 -0
- package/dist/{chunk-2Y4FJB25.js → chunk-J4NOQ2YL.js} +562 -450
- package/dist/chunk-J4NOQ2YL.js.map +7 -0
- package/dist/index.cjs.js +1556 -1145
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.js +1 -1
- package/dist/meta.cjs.json +429 -156
- package/dist/meta.esbuild.json +445 -164
- package/package.json +6 -6
- package/src/Prebuilt/common/hooks.ts +21 -0
- package/src/Prebuilt/components/Chat/ChatFooter.tsx +26 -10
- package/src/Prebuilt/components/ConferenceScreen.tsx +34 -2
- package/src/Prebuilt/components/Footer/Footer.tsx +0 -1
- package/src/Prebuilt/components/HMSVideo/Controls.jsx +1 -1
- package/src/Prebuilt/components/HMSVideo/FullscreenButton.tsx +13 -0
- package/src/Prebuilt/components/HMSVideo/{HLSAutoplayBlockedPrompt.jsx → HLSAutoplayBlockedPrompt.tsx} +13 -6
- package/src/Prebuilt/components/HMSVideo/HLSCaptionSelector.tsx +4 -2
- package/src/Prebuilt/components/HMSVideo/HLSQualitySelector.tsx +241 -0
- package/src/Prebuilt/components/HMSVideo/HMSVideo.jsx +3 -0
- package/src/Prebuilt/components/HMSVideo/MwebHLSViewTitle.tsx +91 -0
- package/src/Prebuilt/components/HMSVideo/PlayButton.tsx +27 -0
- package/src/Prebuilt/components/HMSVideo/PlayerContext.tsx +15 -0
- package/src/Prebuilt/components/HMSVideo/VideoProgress.tsx +81 -0
- package/src/Prebuilt/components/HMSVideo/VideoTime.tsx +42 -0
- package/src/Prebuilt/components/HMSVideo/{VolumeControl.jsx → VolumeControl.tsx} +7 -5
- package/src/Prebuilt/components/HMSVideo/{index.js → index.ts} +2 -0
- package/src/Prebuilt/components/HMSVideo/utils.ts +35 -0
- package/src/Prebuilt/components/Leave/LeaveRoom.tsx +7 -1
- package/src/Prebuilt/components/Leave/MwebLeaveRoom.tsx +38 -25
- package/src/Prebuilt/components/MoreSettings/MoreSettings.tsx +3 -1
- package/src/Prebuilt/components/MoreSettings/SplitComponents/MwebOptions.tsx +1 -1
- package/src/Prebuilt/components/MwebLandscapePrompt.tsx +5 -0
- package/src/Prebuilt/components/{RaiseHand.jsx → RaiseHand.tsx} +3 -2
- package/src/Prebuilt/components/SidePaneTabs.tsx +29 -10
- package/src/Prebuilt/layouts/HLSView.jsx +272 -156
- package/src/Prebuilt/layouts/SidePane.tsx +21 -10
- package/src/Prebuilt/layouts/VideoStreamingSection.tsx +11 -1
- package/dist/HLSView-CEPQ23TO.js.map +0 -7
- package/dist/chunk-2Y4FJB25.js.map +0 -7
- package/src/Prebuilt/components/HMSVideo/FullscreenButton.jsx +0 -18
- package/src/Prebuilt/components/HMSVideo/HLSQualitySelector.jsx +0 -127
- package/src/Prebuilt/components/HMSVideo/HMSVIdeoUtils.js +0 -27
- package/src/Prebuilt/components/HMSVideo/VideoProgress.jsx +0 -76
- package/src/Prebuilt/components/HMSVideo/VideoTime.jsx +0 -33
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
APP_DATA,
|
|
3
3
|
Box,
|
|
4
4
|
Button,
|
|
5
|
+
ChatToggle,
|
|
5
6
|
Dialog,
|
|
6
7
|
DialogContent,
|
|
7
8
|
DialogRow,
|
|
@@ -11,6 +12,9 @@ import {
|
|
|
11
12
|
IconButton,
|
|
12
13
|
IconButton_default,
|
|
13
14
|
Loading,
|
|
15
|
+
Logo,
|
|
16
|
+
SIDE_PANE_OPTIONS,
|
|
17
|
+
Sheet,
|
|
14
18
|
Slider,
|
|
15
19
|
Text,
|
|
16
20
|
ToastManager,
|
|
@@ -19,30 +23,36 @@ import {
|
|
|
19
23
|
__objRest,
|
|
20
24
|
__spreadValues,
|
|
21
25
|
config,
|
|
26
|
+
getFormattedCount,
|
|
22
27
|
init_define_process_env,
|
|
23
28
|
styled,
|
|
29
|
+
theme,
|
|
30
|
+
useIsLandscape,
|
|
24
31
|
usePollViewToggle,
|
|
32
|
+
useRoomLayoutConferencingScreen,
|
|
33
|
+
useSidepaneToggle,
|
|
25
34
|
useTheme
|
|
26
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-J4NOQ2YL.js";
|
|
27
36
|
|
|
28
37
|
// src/Prebuilt/layouts/HLSView.jsx
|
|
29
38
|
init_define_process_env();
|
|
30
|
-
import
|
|
31
|
-
import { useFullscreen, useMedia, usePrevious, useToggle } from "react-use";
|
|
39
|
+
import React13, { useCallback as useCallback2, useEffect as useEffect4, useRef as useRef2, useState as useState5 } from "react";
|
|
40
|
+
import { useFullscreen, useMedia as useMedia2, usePrevious, useToggle } from "react-use";
|
|
32
41
|
import { HLSPlaybackState, HMSHLSPlayer, HMSHLSPlayerEvents as HMSHLSPlayerEvents2 } from "@100mslive/hls-player";
|
|
33
42
|
import screenfull from "screenfull";
|
|
34
43
|
import {
|
|
44
|
+
HLSPlaylistType,
|
|
35
45
|
HMSNotificationTypes,
|
|
36
46
|
selectAppData,
|
|
37
|
-
selectHLSState,
|
|
47
|
+
selectHLSState as selectHLSState2,
|
|
38
48
|
selectPeerNameByID,
|
|
39
49
|
selectPollByID,
|
|
40
50
|
useHMSActions,
|
|
41
51
|
useHMSNotifications,
|
|
42
|
-
useHMSStore,
|
|
52
|
+
useHMSStore as useHMSStore2,
|
|
43
53
|
useHMSVanillaStore
|
|
44
54
|
} from "@100mslive/react-sdk";
|
|
45
|
-
import { ColoredHandIcon,
|
|
55
|
+
import { ColoredHandIcon, GoLiveIcon, PauseIcon as PauseIcon2, PlayIcon as PlayIcon2 } from "@100mslive/react-icons";
|
|
46
56
|
|
|
47
57
|
// src/Prebuilt/components/HlsStatsOverlay.jsx
|
|
48
58
|
init_define_process_env();
|
|
@@ -125,7 +135,7 @@ var HlsStatsRow = memo(({ label, children }) => {
|
|
|
125
135
|
));
|
|
126
136
|
});
|
|
127
137
|
|
|
128
|
-
// src/Prebuilt/components/HMSVideo/index.
|
|
138
|
+
// src/Prebuilt/components/HMSVideo/index.ts
|
|
129
139
|
init_define_process_env();
|
|
130
140
|
|
|
131
141
|
// src/Prebuilt/components/HMSVideo/Controls.jsx
|
|
@@ -173,7 +183,8 @@ var HMSVideo = forwardRef((_a, videoRef) => {
|
|
|
173
183
|
letterSpacing: "0.5px"
|
|
174
184
|
},
|
|
175
185
|
"& video::-webkit-media-text-track-display": {
|
|
176
|
-
padding: "0 $4"
|
|
186
|
+
padding: "0 $4",
|
|
187
|
+
boxShadow: "0px 1px 3px 0px #000000A3"
|
|
177
188
|
},
|
|
178
189
|
"& video::-webkit-media-text-track-container": {
|
|
179
190
|
fontSize: "$space$10 !important"
|
|
@@ -187,7 +198,9 @@ var HMSVideo = forwardRef((_a, videoRef) => {
|
|
|
187
198
|
style: {
|
|
188
199
|
flex: "1 1 0",
|
|
189
200
|
margin: "0 auto",
|
|
190
|
-
minHeight: "0"
|
|
201
|
+
minHeight: "0",
|
|
202
|
+
objectFit: "contain",
|
|
203
|
+
width: "inherit"
|
|
191
204
|
},
|
|
192
205
|
ref: videoRef,
|
|
193
206
|
playsInline: true
|
|
@@ -197,19 +210,41 @@ var HMSVideo = forwardRef((_a, videoRef) => {
|
|
|
197
210
|
);
|
|
198
211
|
});
|
|
199
212
|
|
|
200
|
-
// src/Prebuilt/components/HMSVideo/PlayButton.
|
|
213
|
+
// src/Prebuilt/components/HMSVideo/PlayButton.tsx
|
|
201
214
|
init_define_process_env();
|
|
202
|
-
import
|
|
215
|
+
import React4 from "react";
|
|
203
216
|
import { PauseIcon, PlayIcon } from "@100mslive/react-icons";
|
|
204
|
-
|
|
205
|
-
|
|
217
|
+
|
|
218
|
+
// src/Prebuilt/components/HMSVideo/PlayerContext.tsx
|
|
219
|
+
init_define_process_env();
|
|
220
|
+
import React3, { useContext } from "react";
|
|
221
|
+
var HMSPlayerContext = React3.createContext({
|
|
222
|
+
hlsPlayer: void 0
|
|
223
|
+
});
|
|
224
|
+
var useHMSPlayerContext = () => {
|
|
225
|
+
const context = useContext(HMSPlayerContext);
|
|
226
|
+
return context;
|
|
206
227
|
};
|
|
207
228
|
|
|
208
|
-
// src/Prebuilt/components/HMSVideo/
|
|
229
|
+
// src/Prebuilt/components/HMSVideo/PlayButton.tsx
|
|
230
|
+
var PlayButton = ({
|
|
231
|
+
isPaused,
|
|
232
|
+
width = 20,
|
|
233
|
+
height = 20
|
|
234
|
+
}) => {
|
|
235
|
+
const { hlsPlayer: hlsPlayer2 } = useHMSPlayerContext();
|
|
236
|
+
const onClick = (event) => __async(void 0, null, function* () {
|
|
237
|
+
event == null ? void 0 : event.stopPropagation();
|
|
238
|
+
isPaused ? yield hlsPlayer2 == null ? void 0 : hlsPlayer2.play() : hlsPlayer2 == null ? void 0 : hlsPlayer2.pause();
|
|
239
|
+
});
|
|
240
|
+
return /* @__PURE__ */ React4.createElement(Tooltip, { title: isPaused ? "Play" : "Pause", side: "top" }, /* @__PURE__ */ React4.createElement(IconButton, { onClick, "data-testid": "play_pause_btn" }, isPaused ? /* @__PURE__ */ React4.createElement(PlayIcon, { width, height }) : /* @__PURE__ */ React4.createElement(PauseIcon, { width, height })));
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
// src/Prebuilt/components/HMSVideo/VideoProgress.tsx
|
|
209
244
|
init_define_process_env();
|
|
210
|
-
import
|
|
245
|
+
import React5, { useEffect, useState } from "react";
|
|
211
246
|
|
|
212
|
-
// src/Prebuilt/components/HMSVideo/
|
|
247
|
+
// src/Prebuilt/components/HMSVideo/utils.ts
|
|
213
248
|
init_define_process_env();
|
|
214
249
|
function getPercentage(a, b) {
|
|
215
250
|
return a / b * 100;
|
|
@@ -229,16 +264,32 @@ function getDurationFromSeconds2(timeInSeconds) {
|
|
|
229
264
|
}
|
|
230
265
|
return videoTimeStr;
|
|
231
266
|
}
|
|
267
|
+
function getTime(timeInMilles) {
|
|
268
|
+
const timeInSeconds = Math.floor(timeInMilles / 1e3);
|
|
269
|
+
const hours = Math.floor(timeInSeconds / 3600);
|
|
270
|
+
const minutes = Math.floor(timeInSeconds % 3600 / 60);
|
|
271
|
+
const hour = hours !== 0 ? `${hours < 10 ? "0" : ""}${hours}` : "";
|
|
272
|
+
return hour + `${hour ? "h:" : ""}` + minutes + "m";
|
|
273
|
+
}
|
|
232
274
|
|
|
233
|
-
// src/Prebuilt/components/HMSVideo/VideoProgress.
|
|
234
|
-
var VideoProgress = (
|
|
275
|
+
// src/Prebuilt/components/HMSVideo/VideoProgress.tsx
|
|
276
|
+
var VideoProgress = () => {
|
|
277
|
+
const { hlsPlayer: hlsPlayer2 } = useHMSPlayerContext();
|
|
235
278
|
const [videoProgress, setVideoProgress] = useState(0);
|
|
236
279
|
const [bufferProgress, setBufferProgress] = useState(0);
|
|
237
|
-
const
|
|
280
|
+
const videoEl = hlsPlayer2 == null ? void 0 : hlsPlayer2.getVideoElement();
|
|
281
|
+
const onValueChange = (time) => {
|
|
282
|
+
hlsPlayer2 == null ? void 0 : hlsPlayer2.seekTo(time);
|
|
283
|
+
};
|
|
238
284
|
useEffect(() => {
|
|
239
|
-
|
|
285
|
+
if (!videoEl) {
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
240
288
|
const timeupdateHandler = () => {
|
|
241
289
|
var _a;
|
|
290
|
+
if (!videoEl) {
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
242
293
|
const videoProgress2 = Math.floor(getPercentage(videoEl.currentTime, videoEl.duration));
|
|
243
294
|
let bufferProgress2 = 0;
|
|
244
295
|
if (videoEl.buffered.length > 0) {
|
|
@@ -247,108 +298,105 @@ var VideoProgress = ({ onValueChange, hlsPlayer: hlsPlayer2 }) => {
|
|
|
247
298
|
setVideoProgress(isNaN(videoProgress2) ? 0 : videoProgress2);
|
|
248
299
|
setBufferProgress(isNaN(bufferProgress2) ? 0 : bufferProgress2);
|
|
249
300
|
};
|
|
250
|
-
|
|
251
|
-
videoEl.addEventListener("timeupdate", timeupdateHandler);
|
|
252
|
-
}
|
|
301
|
+
videoEl.addEventListener("timeupdate", timeupdateHandler);
|
|
253
302
|
return function cleanup() {
|
|
254
|
-
|
|
255
|
-
videoEl.removeEventListener("timeupdate", timeupdateHandler);
|
|
256
|
-
}
|
|
303
|
+
videoEl == null ? void 0 : videoEl.removeEventListener("timeupdate", timeupdateHandler);
|
|
257
304
|
};
|
|
258
|
-
}, [
|
|
259
|
-
const
|
|
260
|
-
const
|
|
261
|
-
const
|
|
262
|
-
const
|
|
263
|
-
const videoEl = hlsPlayer2.getVideoElement();
|
|
264
|
-
const currentTime = progress * videoEl.duration / 100;
|
|
305
|
+
}, [videoEl]);
|
|
306
|
+
const onProgress = (progress) => {
|
|
307
|
+
const progress1 = Math.floor(getPercentage(progress[0], 100));
|
|
308
|
+
const videoEl2 = hlsPlayer2 == null ? void 0 : hlsPlayer2.getVideoElement();
|
|
309
|
+
const currentTime = progress1 * ((videoEl2 == null ? void 0 : videoEl2.duration) || 0) / 100;
|
|
265
310
|
if (onValueChange) {
|
|
266
311
|
onValueChange(currentTime);
|
|
267
312
|
}
|
|
268
313
|
};
|
|
269
|
-
|
|
270
|
-
|
|
314
|
+
if (!videoEl) {
|
|
315
|
+
return null;
|
|
316
|
+
}
|
|
317
|
+
return /* @__PURE__ */ React5.createElement(Flex, { align: "center", css: { cursor: "pointer", h: "$2", alignSelf: "stretch" } }, /* @__PURE__ */ React5.createElement(
|
|
318
|
+
Slider,
|
|
271
319
|
{
|
|
272
|
-
|
|
273
|
-
css: {
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
/* @__PURE__ */ React4.createElement(
|
|
299
|
-
Box,
|
|
300
|
-
{
|
|
301
|
-
id: "video-rest",
|
|
302
|
-
css: {
|
|
303
|
-
width: `${100 - bufferProgress}%`,
|
|
304
|
-
background: "$on_surface_high",
|
|
305
|
-
opacity: "10%"
|
|
306
|
-
}
|
|
320
|
+
id: "video-actual-rest",
|
|
321
|
+
css: {
|
|
322
|
+
cursor: "pointer",
|
|
323
|
+
h: "$2",
|
|
324
|
+
zIndex: 1,
|
|
325
|
+
transition: `all .2s ease .5s`
|
|
326
|
+
},
|
|
327
|
+
min: 0,
|
|
328
|
+
max: 100,
|
|
329
|
+
step: 1,
|
|
330
|
+
value: [videoProgress],
|
|
331
|
+
showTooltip: false,
|
|
332
|
+
onValueChange: onProgress,
|
|
333
|
+
thumbStyles: { w: "$6", h: "$6" }
|
|
334
|
+
}
|
|
335
|
+
), /* @__PURE__ */ React5.createElement(
|
|
336
|
+
Box,
|
|
337
|
+
{
|
|
338
|
+
id: "video-buffer",
|
|
339
|
+
css: {
|
|
340
|
+
h: "$2",
|
|
341
|
+
width: `${bufferProgress - videoProgress}%`,
|
|
342
|
+
background: "$on_surface_high",
|
|
343
|
+
position: "absolute",
|
|
344
|
+
left: `${videoProgress}%`,
|
|
345
|
+
opacity: "25%"
|
|
307
346
|
}
|
|
308
|
-
|
|
309
|
-
)
|
|
347
|
+
}
|
|
348
|
+
));
|
|
310
349
|
};
|
|
311
350
|
|
|
312
|
-
// src/Prebuilt/components/HMSVideo/VideoTime.
|
|
351
|
+
// src/Prebuilt/components/HMSVideo/VideoTime.tsx
|
|
313
352
|
init_define_process_env();
|
|
314
|
-
import
|
|
353
|
+
import React6, { useEffect as useEffect2, useState as useState2 } from "react";
|
|
315
354
|
import { HMSHLSPlayerEvents } from "@100mslive/hls-player";
|
|
316
|
-
var VideoTime = (
|
|
355
|
+
var VideoTime = () => {
|
|
356
|
+
const { hlsPlayer: hlsPlayer2 } = useHMSPlayerContext();
|
|
317
357
|
const [videoTime, setVideoTime] = useState2("");
|
|
318
358
|
useEffect2(() => {
|
|
319
|
-
const timeupdateHandler = (currentTime) =>
|
|
359
|
+
const timeupdateHandler = (currentTime) => {
|
|
360
|
+
const videoEl = hlsPlayer2 == null ? void 0 : hlsPlayer2.getVideoElement();
|
|
361
|
+
if (videoEl) {
|
|
362
|
+
setVideoTime(getDurationFromSeconds2(videoEl.duration - currentTime));
|
|
363
|
+
} else {
|
|
364
|
+
setVideoTime(getDurationFromSeconds2(currentTime));
|
|
365
|
+
}
|
|
366
|
+
};
|
|
320
367
|
if (hlsPlayer2) {
|
|
321
368
|
hlsPlayer2.on(HMSHLSPlayerEvents.CURRENT_TIME, timeupdateHandler);
|
|
322
369
|
}
|
|
323
370
|
return function cleanup() {
|
|
324
|
-
|
|
325
|
-
hlsPlayer2.off(HMSHLSPlayerEvents.CURRENT_TIME, timeupdateHandler);
|
|
326
|
-
}
|
|
371
|
+
hlsPlayer2 == null ? void 0 : hlsPlayer2.off(HMSHLSPlayerEvents.CURRENT_TIME, timeupdateHandler);
|
|
327
372
|
};
|
|
328
373
|
}, [hlsPlayer2]);
|
|
329
|
-
return hlsPlayer2 ? /* @__PURE__ */
|
|
374
|
+
return hlsPlayer2 ? /* @__PURE__ */ React6.createElement(
|
|
330
375
|
Text,
|
|
331
376
|
{
|
|
377
|
+
variant: "body1",
|
|
332
378
|
css: {
|
|
333
379
|
minWidth: "$16",
|
|
334
380
|
c: "$on_surface_medium",
|
|
335
381
|
display: "flex",
|
|
336
|
-
justifyContent: "center"
|
|
382
|
+
justifyContent: "center",
|
|
383
|
+
fontWeight: "$regular"
|
|
337
384
|
}
|
|
338
385
|
},
|
|
386
|
+
"-",
|
|
339
387
|
videoTime
|
|
340
388
|
) : null;
|
|
341
389
|
};
|
|
342
390
|
|
|
343
|
-
// src/Prebuilt/components/HMSVideo/VolumeControl.
|
|
391
|
+
// src/Prebuilt/components/HMSVideo/VolumeControl.tsx
|
|
344
392
|
init_define_process_env();
|
|
345
|
-
import
|
|
393
|
+
import React7, { useState as useState3 } from "react";
|
|
346
394
|
import { VolumeOneIcon, VolumeTwoIcon, VolumeZeroIcon } from "@100mslive/react-icons";
|
|
347
|
-
var VolumeControl = (
|
|
348
|
-
|
|
349
|
-
const [volume, setVolume] = useState3((
|
|
395
|
+
var VolumeControl = () => {
|
|
396
|
+
const { hlsPlayer: hlsPlayer2 } = useHMSPlayerContext();
|
|
397
|
+
const [volume, setVolume] = useState3((hlsPlayer2 == null ? void 0 : hlsPlayer2.volume) || 0);
|
|
350
398
|
const [showSlider, setShowSlider] = useState3(false);
|
|
351
|
-
return /* @__PURE__ */
|
|
399
|
+
return /* @__PURE__ */ React7.createElement(
|
|
352
400
|
Flex,
|
|
353
401
|
{
|
|
354
402
|
align: "center",
|
|
@@ -362,7 +410,7 @@ var VolumeControl = ({ hlsPlayer: hlsPlayer2 }) => {
|
|
|
362
410
|
setShowSlider(false);
|
|
363
411
|
}
|
|
364
412
|
},
|
|
365
|
-
/* @__PURE__ */
|
|
413
|
+
/* @__PURE__ */ React7.createElement(
|
|
366
414
|
VolumeIcon,
|
|
367
415
|
{
|
|
368
416
|
volume,
|
|
@@ -377,7 +425,7 @@ var VolumeControl = ({ hlsPlayer: hlsPlayer2 }) => {
|
|
|
377
425
|
}
|
|
378
426
|
}
|
|
379
427
|
),
|
|
380
|
-
/* @__PURE__ */
|
|
428
|
+
/* @__PURE__ */ React7.createElement(
|
|
381
429
|
Slider,
|
|
382
430
|
{
|
|
383
431
|
css: {
|
|
@@ -395,7 +443,7 @@ var VolumeControl = ({ hlsPlayer: hlsPlayer2 }) => {
|
|
|
395
443
|
step: 1,
|
|
396
444
|
value: [volume],
|
|
397
445
|
onValueChange: (volume2) => {
|
|
398
|
-
hlsPlayer2.setVolume(volume2[0]);
|
|
446
|
+
hlsPlayer2 == null ? void 0 : hlsPlayer2.setVolume(volume2[0]);
|
|
399
447
|
setVolume(volume2[0]);
|
|
400
448
|
},
|
|
401
449
|
thumbStyles: { w: "$6", h: "$6" }
|
|
@@ -405,12 +453,12 @@ var VolumeControl = ({ hlsPlayer: hlsPlayer2 }) => {
|
|
|
405
453
|
};
|
|
406
454
|
var VolumeIcon = ({ volume, onClick }) => {
|
|
407
455
|
if (volume === 0) {
|
|
408
|
-
return /* @__PURE__ */
|
|
456
|
+
return /* @__PURE__ */ React7.createElement(VolumeZeroIcon, { style: { cursor: "pointer", transition: "color 0.3s" }, onClick });
|
|
409
457
|
}
|
|
410
|
-
return volume < 50 ? /* @__PURE__ */
|
|
458
|
+
return volume < 50 ? /* @__PURE__ */ React7.createElement(VolumeOneIcon, { style: { cursor: "pointer", transition: "color 0.3s" }, onClick }) : /* @__PURE__ */ React7.createElement(VolumeTwoIcon, { style: { cursor: "pointer", transition: "color 0.3s" }, onClick });
|
|
411
459
|
};
|
|
412
460
|
|
|
413
|
-
// src/Prebuilt/components/HMSVideo/index.
|
|
461
|
+
// src/Prebuilt/components/HMSVideo/index.ts
|
|
414
462
|
var HMSVideoPlayer = {
|
|
415
463
|
Root: HMSVideo,
|
|
416
464
|
PlayButton,
|
|
@@ -424,44 +472,38 @@ var HMSVideoPlayer = {
|
|
|
424
472
|
}
|
|
425
473
|
};
|
|
426
474
|
|
|
427
|
-
// src/Prebuilt/components/HMSVideo/FullscreenButton.
|
|
475
|
+
// src/Prebuilt/components/HMSVideo/FullscreenButton.tsx
|
|
428
476
|
init_define_process_env();
|
|
429
|
-
import
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
{
|
|
434
|
-
variant: "standard",
|
|
435
|
-
css: { margin: "0px" },
|
|
436
|
-
onClick: onToggle,
|
|
437
|
-
key: "fullscreen_btn",
|
|
438
|
-
"data-testid": "fullscreen_btn"
|
|
439
|
-
},
|
|
440
|
-
/* @__PURE__ */ React7.createElement(Flex, null, icon)
|
|
441
|
-
));
|
|
477
|
+
import React8 from "react";
|
|
478
|
+
import { ExpandIcon, ShrinkIcon } from "@100mslive/react-icons";
|
|
479
|
+
var FullScreenButton = ({ isFullScreen, onToggle }) => {
|
|
480
|
+
return /* @__PURE__ */ React8.createElement(Tooltip, { title: `${isFullScreen ? "Exit" : "Go"} fullscreen`, side: "top" }, /* @__PURE__ */ React8.createElement(IconButton, { css: { margin: "0px" }, onClick: onToggle, key: "fullscreen_btn", "data-testid": "fullscreen_btn" }, /* @__PURE__ */ React8.createElement(Flex, null, isFullScreen ? /* @__PURE__ */ React8.createElement(ShrinkIcon, null) : /* @__PURE__ */ React8.createElement(ExpandIcon, null))));
|
|
442
481
|
};
|
|
443
482
|
|
|
444
|
-
// src/Prebuilt/components/HMSVideo/HLSAutoplayBlockedPrompt.
|
|
483
|
+
// src/Prebuilt/components/HMSVideo/HLSAutoplayBlockedPrompt.tsx
|
|
445
484
|
init_define_process_env();
|
|
446
|
-
import
|
|
447
|
-
function HLSAutoplayBlockedPrompt({
|
|
448
|
-
|
|
485
|
+
import React9 from "react";
|
|
486
|
+
function HLSAutoplayBlockedPrompt({
|
|
487
|
+
open,
|
|
488
|
+
unblockAutoPlay
|
|
489
|
+
}) {
|
|
490
|
+
return /* @__PURE__ */ React9.createElement(
|
|
449
491
|
Dialog.Root,
|
|
450
492
|
{
|
|
451
493
|
open,
|
|
452
|
-
onOpenChange: (value) => {
|
|
494
|
+
onOpenChange: (value) => __async(this, null, function* () {
|
|
453
495
|
if (!value) {
|
|
454
|
-
unblockAutoPlay();
|
|
496
|
+
yield unblockAutoPlay();
|
|
455
497
|
}
|
|
456
|
-
}
|
|
498
|
+
})
|
|
457
499
|
},
|
|
458
|
-
/* @__PURE__ */
|
|
500
|
+
/* @__PURE__ */ React9.createElement(DialogContent, { title: "Attention", closeable: false }, /* @__PURE__ */ React9.createElement(DialogRow, null, /* @__PURE__ */ React9.createElement(Text, { variant: "md" }, 'The browser wants us to get a confirmation for playing the HLS Stream. Please click "play stream" to proceed.')), /* @__PURE__ */ React9.createElement(DialogRow, { justify: "end" }, /* @__PURE__ */ React9.createElement(
|
|
459
501
|
Button,
|
|
460
502
|
{
|
|
461
503
|
variant: "primary",
|
|
462
|
-
onClick: () => {
|
|
463
|
-
unblockAutoPlay();
|
|
464
|
-
}
|
|
504
|
+
onClick: () => __async(this, null, function* () {
|
|
505
|
+
yield unblockAutoPlay();
|
|
506
|
+
})
|
|
465
507
|
},
|
|
466
508
|
"Play stream"
|
|
467
509
|
)))
|
|
@@ -470,18 +512,104 @@ function HLSAutoplayBlockedPrompt({ open, unblockAutoPlay }) {
|
|
|
470
512
|
|
|
471
513
|
// src/Prebuilt/components/HMSVideo/HLSCaptionSelector.tsx
|
|
472
514
|
init_define_process_env();
|
|
473
|
-
import
|
|
515
|
+
import React10 from "react";
|
|
474
516
|
import { ClosedCaptionIcon, OpenCaptionIcon } from "@100mslive/react-icons";
|
|
475
|
-
function HLSCaptionSelector({ isEnabled
|
|
476
|
-
|
|
517
|
+
function HLSCaptionSelector({ isEnabled }) {
|
|
518
|
+
const { hlsPlayer: hlsPlayer2 } = useHMSPlayerContext();
|
|
519
|
+
return /* @__PURE__ */ React10.createElement(Tooltip, { title: "Subtitles/closed captions", side: "top" }, /* @__PURE__ */ React10.createElement(IconButton, { css: { p: "$2" }, onClick: () => hlsPlayer2 == null ? void 0 : hlsPlayer2.toggleCaption() }, isEnabled ? /* @__PURE__ */ React10.createElement(ClosedCaptionIcon, { width: "20", height: "20px" }) : /* @__PURE__ */ React10.createElement(OpenCaptionIcon, { width: "20", height: "20px" })));
|
|
477
520
|
}
|
|
478
521
|
|
|
479
|
-
// src/Prebuilt/components/HMSVideo/HLSQualitySelector.
|
|
522
|
+
// src/Prebuilt/components/HMSVideo/HLSQualitySelector.tsx
|
|
480
523
|
init_define_process_env();
|
|
481
|
-
import
|
|
482
|
-
import {
|
|
483
|
-
|
|
484
|
-
|
|
524
|
+
import React11 from "react";
|
|
525
|
+
import { useMedia } from "react-use";
|
|
526
|
+
import { CheckIcon, CrossIcon as CrossIcon2, SettingsIcon } from "@100mslive/react-icons";
|
|
527
|
+
function HLSQualitySelector({
|
|
528
|
+
open,
|
|
529
|
+
onOpenChange,
|
|
530
|
+
layers,
|
|
531
|
+
onQualityChange,
|
|
532
|
+
selection,
|
|
533
|
+
isAuto
|
|
534
|
+
}) {
|
|
535
|
+
const isMobile = useMedia(config.media.md);
|
|
536
|
+
const isLandscape = useIsLandscape();
|
|
537
|
+
if (isMobile || isLandscape) {
|
|
538
|
+
return /* @__PURE__ */ React11.createElement(Sheet.Root, { open, onOpenChange }, /* @__PURE__ */ React11.createElement(Sheet.Trigger, { asChild: true, "data-testid": "quality_selector" }, /* @__PURE__ */ React11.createElement(
|
|
539
|
+
Flex,
|
|
540
|
+
{
|
|
541
|
+
css: {
|
|
542
|
+
color: "$on_primary_high",
|
|
543
|
+
r: "$1",
|
|
544
|
+
cursor: "pointer",
|
|
545
|
+
p: "$2"
|
|
546
|
+
}
|
|
547
|
+
},
|
|
548
|
+
/* @__PURE__ */ React11.createElement(SettingsIcon, null)
|
|
549
|
+
)), layers.length > 0 && /* @__PURE__ */ React11.createElement(Sheet.Content, { css: { bg: "$surface_default", pb: "$1" }, onClick: () => onOpenChange(false) }, /* @__PURE__ */ React11.createElement(
|
|
550
|
+
Sheet.Title,
|
|
551
|
+
{
|
|
552
|
+
css: {
|
|
553
|
+
display: "flex",
|
|
554
|
+
color: "$on_surface_high",
|
|
555
|
+
w: "100%",
|
|
556
|
+
justifyContent: "space-between",
|
|
557
|
+
mt: "$8",
|
|
558
|
+
fontSize: "$md",
|
|
559
|
+
px: "$10",
|
|
560
|
+
pb: "$8",
|
|
561
|
+
borderBottom: "1px solid $border_bright",
|
|
562
|
+
alignItems: "center"
|
|
563
|
+
}
|
|
564
|
+
},
|
|
565
|
+
"Quality",
|
|
566
|
+
/* @__PURE__ */ React11.createElement(Sheet.Close, { css: { color: "$on_surface_high" }, onClick: () => onOpenChange(false) }, /* @__PURE__ */ React11.createElement(CrossIcon2, null))
|
|
567
|
+
), layers.map((layer) => {
|
|
568
|
+
return /* @__PURE__ */ React11.createElement(
|
|
569
|
+
Flex,
|
|
570
|
+
{
|
|
571
|
+
align: "center",
|
|
572
|
+
css: {
|
|
573
|
+
w: "100%",
|
|
574
|
+
bg: "$surface_default",
|
|
575
|
+
"&:hover": {
|
|
576
|
+
bg: "$surface_brighter"
|
|
577
|
+
},
|
|
578
|
+
cursor: "pointer",
|
|
579
|
+
gap: "$4",
|
|
580
|
+
py: "$8",
|
|
581
|
+
px: "$10"
|
|
582
|
+
},
|
|
583
|
+
key: layer.width,
|
|
584
|
+
onClick: () => onQualityChange(layer)
|
|
585
|
+
},
|
|
586
|
+
/* @__PURE__ */ React11.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold" } }, getQualityText(layer)),
|
|
587
|
+
/* @__PURE__ */ React11.createElement(Text, { variant: "caption", css: { flex: "1 1 0", c: "$on_surface_low", pl: "$2" } }, getBitrateText(layer)),
|
|
588
|
+
!isAuto && layer.width === (selection == null ? void 0 : selection.width) && layer.height === (selection == null ? void 0 : selection.height) && /* @__PURE__ */ React11.createElement(CheckIcon, { width: "16px", height: "16px" })
|
|
589
|
+
);
|
|
590
|
+
}), /* @__PURE__ */ React11.createElement(
|
|
591
|
+
Flex,
|
|
592
|
+
{
|
|
593
|
+
align: "center",
|
|
594
|
+
css: {
|
|
595
|
+
w: "100%",
|
|
596
|
+
bg: "$surface_default",
|
|
597
|
+
"&:hover": {
|
|
598
|
+
bg: "$surface_brighter"
|
|
599
|
+
},
|
|
600
|
+
cursor: "pointer",
|
|
601
|
+
gap: "$4",
|
|
602
|
+
py: "$8",
|
|
603
|
+
px: "$10"
|
|
604
|
+
},
|
|
605
|
+
key: "auto",
|
|
606
|
+
onClick: () => onQualityChange({ height: "auto" })
|
|
607
|
+
},
|
|
608
|
+
/* @__PURE__ */ React11.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold", flex: "1 1 0" } }, "Auto"),
|
|
609
|
+
isAuto && /* @__PURE__ */ React11.createElement(CheckIcon, { width: "16px", height: "16px" })
|
|
610
|
+
)));
|
|
611
|
+
}
|
|
612
|
+
return /* @__PURE__ */ React11.createElement(Dropdown.Root, { open, onOpenChange: (value) => onOpenChange(value) }, /* @__PURE__ */ React11.createElement(Dropdown.Trigger, { asChild: true, "data-testid": "quality_selector" }, /* @__PURE__ */ React11.createElement(
|
|
485
613
|
Flex,
|
|
486
614
|
{
|
|
487
615
|
css: {
|
|
@@ -491,7 +619,7 @@ function HLSQualitySelector({ open, onOpen, layers, onQualityChange, selection,
|
|
|
491
619
|
p: "$2"
|
|
492
620
|
}
|
|
493
621
|
},
|
|
494
|
-
/* @__PURE__ */
|
|
622
|
+
/* @__PURE__ */ React11.createElement(Tooltip, { title: "Select Quality", side: "top" }, /* @__PURE__ */ React11.createElement(Flex, { align: "center" }, /* @__PURE__ */ React11.createElement(
|
|
495
623
|
Box,
|
|
496
624
|
{
|
|
497
625
|
css: {
|
|
@@ -502,8 +630,8 @@ function HLSQualitySelector({ open, onOpen, layers, onQualityChange, selection,
|
|
|
502
630
|
c: "$on_surface_high"
|
|
503
631
|
}
|
|
504
632
|
},
|
|
505
|
-
/* @__PURE__ */
|
|
506
|
-
), /* @__PURE__ */
|
|
633
|
+
/* @__PURE__ */ React11.createElement(SettingsIcon, null)
|
|
634
|
+
), /* @__PURE__ */ React11.createElement(
|
|
507
635
|
Text,
|
|
508
636
|
{
|
|
509
637
|
variant: {
|
|
@@ -513,7 +641,7 @@ function HLSQualitySelector({ open, onOpen, layers, onQualityChange, selection,
|
|
|
513
641
|
},
|
|
514
642
|
css: { display: "flex", alignItems: "center", ml: "$2", c: "$on_surface_medium" }
|
|
515
643
|
},
|
|
516
|
-
isAuto && /* @__PURE__ */
|
|
644
|
+
isAuto && /* @__PURE__ */ React11.createElement(React11.Fragment, null, "Auto", /* @__PURE__ */ React11.createElement(
|
|
517
645
|
Box,
|
|
518
646
|
{
|
|
519
647
|
css: {
|
|
@@ -525,10 +653,10 @@ function HLSQualitySelector({ open, onOpen, layers, onQualityChange, selection,
|
|
|
525
653
|
}
|
|
526
654
|
}
|
|
527
655
|
)),
|
|
528
|
-
selection && Math.min(selection.width, selection.height),
|
|
656
|
+
selection && Math.min(selection.width || 0, selection.height || 0),
|
|
529
657
|
"p"
|
|
530
658
|
)))
|
|
531
|
-
)), layers.length > 0 && /* @__PURE__ */
|
|
659
|
+
)), layers.length > 0 && /* @__PURE__ */ React11.createElement(
|
|
532
660
|
Dropdown.Content,
|
|
533
661
|
{
|
|
534
662
|
sideOffset: 5,
|
|
@@ -544,7 +672,7 @@ function HLSQualitySelector({ open, onOpen, layers, onQualityChange, selection,
|
|
|
544
672
|
}
|
|
545
673
|
},
|
|
546
674
|
layers.map((layer) => {
|
|
547
|
-
return /* @__PURE__ */
|
|
675
|
+
return /* @__PURE__ */ React11.createElement(
|
|
548
676
|
Dropdown.Item,
|
|
549
677
|
{
|
|
550
678
|
onClick: () => onQualityChange(layer),
|
|
@@ -559,12 +687,12 @@ function HLSQualitySelector({ open, onOpen, layers, onQualityChange, selection,
|
|
|
559
687
|
gap: "$2"
|
|
560
688
|
}
|
|
561
689
|
},
|
|
562
|
-
/* @__PURE__ */
|
|
563
|
-
/* @__PURE__ */
|
|
564
|
-
!isAuto && layer.width === (selection == null ? void 0 : selection.width) && layer.height === (selection == null ? void 0 : selection.height) && /* @__PURE__ */
|
|
690
|
+
/* @__PURE__ */ React11.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold" } }, getQualityText(layer)),
|
|
691
|
+
/* @__PURE__ */ React11.createElement(Text, { variant: "caption", css: { flex: "1 1 0", c: "$on_surface_low", pl: "$2" } }, getBitrateText(layer)),
|
|
692
|
+
!isAuto && layer.width === (selection == null ? void 0 : selection.width) && layer.height === (selection == null ? void 0 : selection.height) && /* @__PURE__ */ React11.createElement(CheckIcon, { width: "16px", height: "16px" })
|
|
565
693
|
);
|
|
566
694
|
}),
|
|
567
|
-
/* @__PURE__ */
|
|
695
|
+
/* @__PURE__ */ React11.createElement(
|
|
568
696
|
Dropdown.Item,
|
|
569
697
|
{
|
|
570
698
|
onClick: () => onQualityChange({ height: "auto" }),
|
|
@@ -579,52 +707,131 @@ function HLSQualitySelector({ open, onOpen, layers, onQualityChange, selection,
|
|
|
579
707
|
gap: "$2"
|
|
580
708
|
}
|
|
581
709
|
},
|
|
582
|
-
/* @__PURE__ */
|
|
583
|
-
isAuto && /* @__PURE__ */
|
|
710
|
+
/* @__PURE__ */ React11.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold", flex: "1 1 0" } }, "Auto"),
|
|
711
|
+
isAuto && /* @__PURE__ */ React11.createElement(CheckIcon, { width: "16px", height: "16px" })
|
|
584
712
|
)
|
|
585
713
|
));
|
|
586
714
|
}
|
|
587
|
-
var getQualityText = (layer) => `${Math.min(layer.height, layer.width)}p `;
|
|
715
|
+
var getQualityText = (layer) => `${Math.min(layer.height || 0, layer.width || 0)}p `;
|
|
588
716
|
var getBitrateText = (layer) => `(${(Number(layer.bitrate / 1e3) / 1e3).toFixed(2)} Mbps)`;
|
|
589
717
|
|
|
718
|
+
// src/Prebuilt/components/HMSVideo/MwebHLSViewTitle.tsx
|
|
719
|
+
init_define_process_env();
|
|
720
|
+
import React12, { useCallback, useEffect as useEffect3, useRef, useState as useState4 } from "react";
|
|
721
|
+
import { selectHLSState, selectPeerCount, useHMSStore } from "@100mslive/react-sdk";
|
|
722
|
+
var HLSViewTitle = () => {
|
|
723
|
+
const peerCount = useHMSStore(selectPeerCount);
|
|
724
|
+
const hlsState = useHMSStore(selectHLSState);
|
|
725
|
+
const intervalRef = useRef(null);
|
|
726
|
+
const { screenType } = useRoomLayoutConferencingScreen();
|
|
727
|
+
const [liveTime, setLiveTime] = useState4(0);
|
|
728
|
+
const startTimer = useCallback(() => {
|
|
729
|
+
intervalRef.current = setInterval(() => {
|
|
730
|
+
var _a;
|
|
731
|
+
const timeStamp = (_a = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _a[screenType === "hls_live_streaming" ? "startedAt" : "initialisedAt"];
|
|
732
|
+
if ((hlsState == null ? void 0 : hlsState.running) && timeStamp) {
|
|
733
|
+
setLiveTime(Date.now() - timeStamp.getTime());
|
|
734
|
+
}
|
|
735
|
+
}, 6e4);
|
|
736
|
+
}, [hlsState == null ? void 0 : hlsState.running, hlsState == null ? void 0 : hlsState.variants, screenType]);
|
|
737
|
+
useEffect3(() => {
|
|
738
|
+
var _a;
|
|
739
|
+
if (hlsState == null ? void 0 : hlsState.running) {
|
|
740
|
+
startTimer();
|
|
741
|
+
const timeStamp = (_a = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _a[screenType === "hls_live_streaming" ? "startedAt" : "initialisedAt"];
|
|
742
|
+
if ((hlsState == null ? void 0 : hlsState.running) && timeStamp) {
|
|
743
|
+
setLiveTime(Date.now() - timeStamp.getTime());
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
if (!(hlsState == null ? void 0 : hlsState.running) && intervalRef.current) {
|
|
747
|
+
clearInterval(intervalRef.current);
|
|
748
|
+
}
|
|
749
|
+
return () => {
|
|
750
|
+
if (intervalRef.current) {
|
|
751
|
+
clearInterval(intervalRef.current);
|
|
752
|
+
}
|
|
753
|
+
};
|
|
754
|
+
}, [hlsState == null ? void 0 : hlsState.running, hlsState == null ? void 0 : hlsState.variants, screenType, startTimer]);
|
|
755
|
+
return /* @__PURE__ */ React12.createElement(
|
|
756
|
+
Flex,
|
|
757
|
+
{
|
|
758
|
+
gap: "4",
|
|
759
|
+
align: "center",
|
|
760
|
+
css: {
|
|
761
|
+
position: "relative",
|
|
762
|
+
h: "fit-content",
|
|
763
|
+
w: "100%",
|
|
764
|
+
borderBottom: "1px solid $border_bright",
|
|
765
|
+
p: "$8",
|
|
766
|
+
backgroundColor: "$surface_dim"
|
|
767
|
+
}
|
|
768
|
+
},
|
|
769
|
+
/* @__PURE__ */ React12.createElement(Logo, null),
|
|
770
|
+
/* @__PURE__ */ React12.createElement(Flex, { direction: "column" }, /* @__PURE__ */ React12.createElement(Text, { variant: "sub2", css: { fontWeight: "$semiBold" } }, "Tech Talk"), /* @__PURE__ */ React12.createElement(Flex, { gap: "1" }, /* @__PURE__ */ React12.createElement(Text, { variant: "caption", css: { color: "$on_surface_medium" } }, getFormattedCount(peerCount) + " watching"), /* @__PURE__ */ React12.createElement(
|
|
771
|
+
Flex,
|
|
772
|
+
{
|
|
773
|
+
direction: "column",
|
|
774
|
+
css: {
|
|
775
|
+
w: "$3",
|
|
776
|
+
h: "$3",
|
|
777
|
+
backgroundColor: "$on_surface_medium",
|
|
778
|
+
borderRadius: "50%",
|
|
779
|
+
alignSelf: "center"
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
), /* @__PURE__ */ React12.createElement(Text, { variant: "caption", css: { color: "$on_surface_medium" } }, "Started " + getTime(liveTime) + " ago")))
|
|
783
|
+
);
|
|
784
|
+
};
|
|
785
|
+
|
|
590
786
|
// src/Prebuilt/layouts/HLSView.jsx
|
|
591
787
|
var hlsPlayer;
|
|
592
788
|
var toastMap = {};
|
|
593
789
|
var HLSView = () => {
|
|
594
|
-
var _a;
|
|
790
|
+
var _a, _b, _c;
|
|
595
791
|
const videoRef = useRef2(null);
|
|
596
792
|
const hlsViewRef = useRef2(null);
|
|
597
|
-
const hlsState =
|
|
598
|
-
const enablHlsStats =
|
|
793
|
+
const hlsState = useHMSStore2(selectHLSState2);
|
|
794
|
+
const enablHlsStats = useHMSStore2(selectAppData(APP_DATA.hlsStats));
|
|
795
|
+
const { elements, screenType } = useRoomLayoutConferencingScreen();
|
|
599
796
|
const notification = useHMSNotifications(HMSNotificationTypes.POLL_STOPPED);
|
|
600
797
|
const hmsActions = useHMSActions();
|
|
601
|
-
const { themeType
|
|
602
|
-
const [streamEnded, setStreamEnded] =
|
|
603
|
-
let [hlsStatsState, setHlsStatsState] =
|
|
798
|
+
const { themeType } = useTheme();
|
|
799
|
+
const [streamEnded, setStreamEnded] = useState5(false);
|
|
800
|
+
let [hlsStatsState, setHlsStatsState] = useState5(null);
|
|
604
801
|
const hlsUrl = (_a = hlsState.variants[0]) == null ? void 0 : _a.url;
|
|
605
|
-
const [availableLayers, setAvailableLayers] =
|
|
606
|
-
const [isVideoLive, setIsVideoLive] =
|
|
607
|
-
const [
|
|
608
|
-
const [
|
|
609
|
-
const [
|
|
610
|
-
const [
|
|
611
|
-
const [
|
|
612
|
-
const [isPaused, setIsPaused] = useState4(false);
|
|
613
|
-
const isFullScreenSupported = screenfull.isEnabled;
|
|
802
|
+
const [availableLayers, setAvailableLayers] = useState5([]);
|
|
803
|
+
const [isVideoLive, setIsVideoLive] = useState5(true);
|
|
804
|
+
const [isCaptionEnabled, setIsCaptionEnabled] = useState5(true);
|
|
805
|
+
const [hasCaptions, setHasCaptions] = useState5(false);
|
|
806
|
+
const [currentSelectedQuality, setCurrentSelectedQuality] = useState5(null);
|
|
807
|
+
const [isHlsAutoplayBlocked, setIsHlsAutoplayBlocked] = useState5(false);
|
|
808
|
+
const [isPaused, setIsPaused] = useState5(false);
|
|
614
809
|
const [show, toggle] = useToggle(false);
|
|
615
|
-
const [controlsVisible, setControlsVisible] = useState4(true);
|
|
616
|
-
const controlsRef = useRef2();
|
|
617
|
-
const controlsTimerRef = useRef2();
|
|
618
|
-
const [qualityDropDownOpen, setQualityDropDownOpen] = useState4(false);
|
|
619
810
|
const lastHlsUrl = usePrevious(hlsUrl);
|
|
620
811
|
const togglePollView = usePollViewToggle();
|
|
621
812
|
const vanillaStore = useHMSVanillaStore();
|
|
622
|
-
const
|
|
813
|
+
const [controlsVisible, setControlsVisible] = useState5(true);
|
|
814
|
+
const [isUserSelectedAuto, setIsUserSelectedAuto] = useState5(true);
|
|
815
|
+
const [qualityDropDownOpen, setQualityDropDownOpen] = useState5(false);
|
|
816
|
+
const controlsRef = useRef2(null);
|
|
817
|
+
const controlsTimerRef = useRef2();
|
|
818
|
+
const sidepane = useHMSStore2(selectAppData(APP_DATA.sidePane));
|
|
819
|
+
const toggleChat = useSidepaneToggle(SIDE_PANE_OPTIONS.CHAT);
|
|
820
|
+
const showChat = !!(elements == null ? void 0 : elements.chat);
|
|
821
|
+
const isFullScreenSupported = screenfull.isEnabled;
|
|
822
|
+
const isMobile = useMedia2(config.media.md);
|
|
823
|
+
const isLandscape = useIsLandscape();
|
|
623
824
|
const isFullScreen = useFullscreen(hlsViewRef, show, {
|
|
624
825
|
onClose: () => toggle(false)
|
|
625
826
|
});
|
|
626
|
-
const [showLoader, setShowLoader] =
|
|
627
|
-
|
|
827
|
+
const [showLoader, setShowLoader] = useState5(false);
|
|
828
|
+
const isMwebHLSStream = screenType === "hls_live_streaming" && isMobile;
|
|
829
|
+
useEffect4(() => {
|
|
830
|
+
if (sidepane === "" && isMwebHLSStream && showChat) {
|
|
831
|
+
toggleChat();
|
|
832
|
+
}
|
|
833
|
+
}, [sidepane, isMwebHLSStream, toggleChat, showChat]);
|
|
834
|
+
useEffect4(() => {
|
|
628
835
|
const videoEl = videoRef.current;
|
|
629
836
|
const showLoader2 = () => setShowLoader(true);
|
|
630
837
|
const hideLoader = () => setShowLoader(false);
|
|
@@ -635,12 +842,12 @@ var HLSView = () => {
|
|
|
635
842
|
videoEl == null ? void 0 : videoEl.removeEventListener("waiting", showLoader2);
|
|
636
843
|
};
|
|
637
844
|
}, []);
|
|
638
|
-
|
|
845
|
+
useEffect4(() => {
|
|
639
846
|
if (streamEnded && lastHlsUrl !== hlsUrl) {
|
|
640
847
|
setStreamEnded(false);
|
|
641
848
|
}
|
|
642
849
|
}, [hlsUrl, streamEnded, lastHlsUrl]);
|
|
643
|
-
|
|
850
|
+
useEffect4(() => {
|
|
644
851
|
if (!notification)
|
|
645
852
|
return;
|
|
646
853
|
const toastID = toastMap == null ? void 0 : toastMap[notification.data.id];
|
|
@@ -649,7 +856,7 @@ var HLSView = () => {
|
|
|
649
856
|
delete toastMap[notification.data.id];
|
|
650
857
|
}
|
|
651
858
|
}, [notification]);
|
|
652
|
-
|
|
859
|
+
useEffect4(() => {
|
|
653
860
|
const videoElem = videoRef.current;
|
|
654
861
|
const setStreamEndedCallback = () => {
|
|
655
862
|
setStreamEnded(true);
|
|
@@ -660,7 +867,18 @@ var HLSView = () => {
|
|
|
660
867
|
videoElem == null ? void 0 : videoElem.removeEventListener("ended", setStreamEndedCallback);
|
|
661
868
|
};
|
|
662
869
|
}, [hlsUrl]);
|
|
663
|
-
|
|
870
|
+
const handleQuality = useCallback2(
|
|
871
|
+
(quality) => {
|
|
872
|
+
var _a2;
|
|
873
|
+
if (hlsPlayer) {
|
|
874
|
+
setIsUserSelectedAuto(((_a2 = quality.height) == null ? void 0 : _a2.toString().toLowerCase()) === "auto");
|
|
875
|
+
hlsPlayer == null ? void 0 : hlsPlayer.setLayer(quality);
|
|
876
|
+
}
|
|
877
|
+
},
|
|
878
|
+
[availableLayers]
|
|
879
|
+
//eslint-disable-line
|
|
880
|
+
);
|
|
881
|
+
useEffect4(() => {
|
|
664
882
|
let videoEl = videoRef.current;
|
|
665
883
|
const manifestLoadedHandler = ({ layers }) => {
|
|
666
884
|
setAvailableLayers(layers);
|
|
@@ -670,7 +888,7 @@ var HLSView = () => {
|
|
|
670
888
|
setCurrentSelectedQuality(layer);
|
|
671
889
|
};
|
|
672
890
|
const metadataLoadedHandler = (_a2) => {
|
|
673
|
-
var
|
|
891
|
+
var _b2 = _a2, { payload } = _b2, rest = __objRest(_b2, ["payload"]);
|
|
674
892
|
var _a3;
|
|
675
893
|
const parsePayload = (str) => {
|
|
676
894
|
try {
|
|
@@ -687,7 +905,7 @@ var HLSView = () => {
|
|
|
687
905
|
const pollStartedBy = vanillaStore.getState(selectPeerNameByID(poll.startedBy)) || "Participant";
|
|
688
906
|
const toastID = ToastManager.addToast({
|
|
689
907
|
title: `${pollStartedBy} started a ${poll.type}: ${poll.title}`,
|
|
690
|
-
action: /* @__PURE__ */
|
|
908
|
+
action: /* @__PURE__ */ React13.createElement(
|
|
691
909
|
Button,
|
|
692
910
|
{
|
|
693
911
|
onClick: () => togglePollView(pollId),
|
|
@@ -752,11 +970,10 @@ var HLSView = () => {
|
|
|
752
970
|
hlsPlayer.off(HMSHLSPlayerEvents2.MANIFEST_LOADED, manifestLoadedHandler);
|
|
753
971
|
hlsPlayer.off(HMSHLSPlayerEvents2.LAYER_UPDATED, layerUpdatedHandler);
|
|
754
972
|
hlsPlayer.reset();
|
|
755
|
-
hlsPlayer = null;
|
|
756
973
|
};
|
|
757
974
|
}
|
|
758
|
-
}, [hlsUrl]);
|
|
759
|
-
|
|
975
|
+
}, [hlsUrl, togglePollView, vanillaStore]);
|
|
976
|
+
useEffect4(() => {
|
|
760
977
|
const onHLSStats = (state) => setHlsStatsState(state);
|
|
761
978
|
if (enablHlsStats) {
|
|
762
979
|
hlsPlayer == null ? void 0 : hlsPlayer.on(HMSHLSPlayerEvents2.STATS, onHLSStats);
|
|
@@ -775,20 +992,10 @@ var HLSView = () => {
|
|
|
775
992
|
console.error("Tried to unblock Autoplay failed with", error.message);
|
|
776
993
|
}
|
|
777
994
|
});
|
|
778
|
-
const handleQuality = useCallback(
|
|
779
|
-
(quality) => {
|
|
780
|
-
if (hlsPlayer) {
|
|
781
|
-
setIsUserSelectedAuto(quality.height.toString().toLowerCase() === "auto");
|
|
782
|
-
hlsPlayer.setLayer(quality);
|
|
783
|
-
}
|
|
784
|
-
},
|
|
785
|
-
[availableLayers]
|
|
786
|
-
//eslint-disable-line
|
|
787
|
-
);
|
|
788
995
|
const sfnOverlayClose = () => {
|
|
789
996
|
hmsActions.setAppData(APP_DATA.hlsStats, !enablHlsStats);
|
|
790
997
|
};
|
|
791
|
-
|
|
998
|
+
useEffect4(() => {
|
|
792
999
|
if (controlsVisible && isFullScreen && !qualityDropDownOpen) {
|
|
793
1000
|
if (controlsTimerRef.current) {
|
|
794
1001
|
clearTimeout(controlsTimerRef.current);
|
|
@@ -806,7 +1013,27 @@ var HLSView = () => {
|
|
|
806
1013
|
}
|
|
807
1014
|
};
|
|
808
1015
|
}, [controlsVisible, isFullScreen, qualityDropDownOpen]);
|
|
809
|
-
const
|
|
1016
|
+
const onTouchHandler = useCallback2(
|
|
1017
|
+
(event) => {
|
|
1018
|
+
event.preventDefault();
|
|
1019
|
+
if (event.type === "ontouchstart" && controlsVisible) {
|
|
1020
|
+
setControlsVisible(false);
|
|
1021
|
+
return;
|
|
1022
|
+
}
|
|
1023
|
+
if (event.type === "ontouchstart" || qualityDropDownOpen) {
|
|
1024
|
+
setControlsVisible(true);
|
|
1025
|
+
return;
|
|
1026
|
+
}
|
|
1027
|
+
if (isFullScreen && !controlsVisible && event.type === "touchmove") {
|
|
1028
|
+
setControlsVisible(true);
|
|
1029
|
+
if (controlsTimerRef.current) {
|
|
1030
|
+
clearTimeout(controlsTimerRef.current);
|
|
1031
|
+
}
|
|
1032
|
+
}
|
|
1033
|
+
},
|
|
1034
|
+
[controlsVisible, isFullScreen, qualityDropDownOpen]
|
|
1035
|
+
);
|
|
1036
|
+
const onHoverHandler = useCallback2(
|
|
810
1037
|
(event) => {
|
|
811
1038
|
if (event.type === "mouseenter" || qualityDropDownOpen) {
|
|
812
1039
|
setControlsVisible(true);
|
|
@@ -823,31 +1050,31 @@ var HLSView = () => {
|
|
|
823
1050
|
},
|
|
824
1051
|
[controlsVisible, isFullScreen, qualityDropDownOpen]
|
|
825
1052
|
);
|
|
826
|
-
return /* @__PURE__ */
|
|
1053
|
+
return /* @__PURE__ */ React13.createElement(
|
|
827
1054
|
Flex,
|
|
828
1055
|
{
|
|
829
1056
|
key: "hls-viewer",
|
|
830
1057
|
id: `hls-viewer-${themeType}`,
|
|
831
1058
|
ref: hlsViewRef,
|
|
1059
|
+
direction: isMobile || isLandscape ? "column" : "row",
|
|
832
1060
|
css: {
|
|
833
|
-
|
|
1061
|
+
w: sidepane !== "" && isLandscape ? "55%" : "100%",
|
|
1062
|
+
h: sidepane !== "" && isMobile ? "36%" : "100%"
|
|
834
1063
|
}
|
|
835
1064
|
},
|
|
836
|
-
(hlsStatsState == null ? void 0 : hlsStatsState.url) && enablHlsStats ? /* @__PURE__ */
|
|
837
|
-
hlsUrl && !streamEnded ? /* @__PURE__ */ React11.createElement(
|
|
1065
|
+
hlsUrl && !streamEnded ? /* @__PURE__ */ React13.createElement(React13.Fragment, null, /* @__PURE__ */ React13.createElement(HMSPlayerContext.Provider, { value: { hlsPlayer } }, (hlsStatsState == null ? void 0 : hlsStatsState.url) && enablHlsStats && !(isMobile || isLandscape) ? /* @__PURE__ */ React13.createElement(HlsStatsOverlay, { hlsStatsState, onClose: sfnOverlayClose }) : null, /* @__PURE__ */ React13.createElement(
|
|
838
1066
|
Flex,
|
|
839
1067
|
{
|
|
840
1068
|
id: "hls-player-container",
|
|
841
1069
|
align: "center",
|
|
842
1070
|
justify: "center",
|
|
843
1071
|
css: {
|
|
844
|
-
|
|
845
|
-
margin: "0 auto"
|
|
846
|
-
height: "100%"
|
|
1072
|
+
size: "100%",
|
|
1073
|
+
margin: "0 auto"
|
|
847
1074
|
}
|
|
848
1075
|
},
|
|
849
|
-
/* @__PURE__ */
|
|
850
|
-
showLoader && /* @__PURE__ */
|
|
1076
|
+
/* @__PURE__ */ React13.createElement(HLSAutoplayBlockedPrompt, { open: isHlsAutoplayBlocked, unblockAutoPlay }),
|
|
1077
|
+
showLoader && /* @__PURE__ */ React13.createElement(
|
|
851
1078
|
Flex,
|
|
852
1079
|
{
|
|
853
1080
|
align: "center",
|
|
@@ -856,17 +1083,19 @@ var HLSView = () => {
|
|
|
856
1083
|
position: "absolute"
|
|
857
1084
|
}
|
|
858
1085
|
},
|
|
859
|
-
/* @__PURE__ */
|
|
1086
|
+
/* @__PURE__ */ React13.createElement(Loading, { width: 72, height: 72 })
|
|
860
1087
|
),
|
|
861
|
-
/* @__PURE__ */
|
|
1088
|
+
/* @__PURE__ */ React13.createElement(
|
|
862
1089
|
HMSVideoPlayer.Root,
|
|
863
1090
|
{
|
|
864
1091
|
ref: videoRef,
|
|
865
1092
|
onMouseEnter: onHoverHandler,
|
|
866
1093
|
onMouseMove: onHoverHandler,
|
|
867
|
-
onMouseLeave: onHoverHandler
|
|
1094
|
+
onMouseLeave: onHoverHandler,
|
|
1095
|
+
onTouchStart: onTouchHandler,
|
|
1096
|
+
onTouchMove: onTouchHandler
|
|
868
1097
|
},
|
|
869
|
-
isMobile
|
|
1098
|
+
/* @__PURE__ */ React13.createElement(React13.Fragment, null, isMobile || isLandscape ? /* @__PURE__ */ React13.createElement(React13.Fragment, null, !showLoader && /* @__PURE__ */ React13.createElement(
|
|
870
1099
|
Box,
|
|
871
1100
|
{
|
|
872
1101
|
css: {
|
|
@@ -874,30 +1103,83 @@ var HLSView = () => {
|
|
|
874
1103
|
top: "40%",
|
|
875
1104
|
left: "50%",
|
|
876
1105
|
transform: "translateY(-40%) translateX(-50%)",
|
|
877
|
-
padding: "$
|
|
1106
|
+
padding: "$4",
|
|
878
1107
|
display: "inline-flex",
|
|
879
|
-
r: "
|
|
1108
|
+
r: "$round",
|
|
880
1109
|
gap: "$1",
|
|
881
|
-
bg: "
|
|
882
|
-
zIndex:
|
|
1110
|
+
bg: "rgba(0, 0, 0, 0.6)",
|
|
1111
|
+
zIndex: 1,
|
|
1112
|
+
visibility: controlsVisible ? `` : `hidden`,
|
|
1113
|
+
opacity: controlsVisible ? `1` : "0"
|
|
1114
|
+
}
|
|
1115
|
+
},
|
|
1116
|
+
isPaused ? /* @__PURE__ */ React13.createElement(
|
|
1117
|
+
IconButton,
|
|
1118
|
+
{
|
|
1119
|
+
onClick: () => __async(void 0, null, function* () {
|
|
1120
|
+
yield hlsPlayer == null ? void 0 : hlsPlayer.play();
|
|
1121
|
+
}),
|
|
1122
|
+
"data-testid": "play_btn"
|
|
1123
|
+
},
|
|
1124
|
+
/* @__PURE__ */ React13.createElement(PlayIcon2, { width: "48px", height: "48px" })
|
|
1125
|
+
) : /* @__PURE__ */ React13.createElement(
|
|
1126
|
+
IconButton,
|
|
1127
|
+
{
|
|
1128
|
+
onClick: () => __async(void 0, null, function* () {
|
|
1129
|
+
yield hlsPlayer == null ? void 0 : hlsPlayer.pause();
|
|
1130
|
+
}),
|
|
1131
|
+
"data-testid": "pause_btn"
|
|
1132
|
+
},
|
|
1133
|
+
/* @__PURE__ */ React13.createElement(PauseIcon2, { width: "48px", height: "48px" })
|
|
1134
|
+
)
|
|
1135
|
+
), /* @__PURE__ */ React13.createElement(
|
|
1136
|
+
Flex,
|
|
1137
|
+
{
|
|
1138
|
+
ref: controlsRef,
|
|
1139
|
+
direction: "column",
|
|
1140
|
+
justify: "start",
|
|
1141
|
+
align: "start",
|
|
1142
|
+
css: {
|
|
1143
|
+
position: "absolute",
|
|
1144
|
+
top: "0",
|
|
1145
|
+
left: "0",
|
|
1146
|
+
width: "100%",
|
|
1147
|
+
flexShrink: 0,
|
|
1148
|
+
visibility: controlsVisible ? `` : `hidden`,
|
|
1149
|
+
opacity: controlsVisible ? `1` : "0"
|
|
883
1150
|
}
|
|
884
1151
|
},
|
|
885
|
-
/* @__PURE__ */
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
1152
|
+
/* @__PURE__ */ React13.createElement(
|
|
1153
|
+
HMSVideoPlayer.Controls.Root,
|
|
1154
|
+
{
|
|
1155
|
+
css: {
|
|
1156
|
+
p: "$4 $8"
|
|
1157
|
+
}
|
|
1158
|
+
},
|
|
1159
|
+
/* @__PURE__ */ React13.createElement(HMSVideoPlayer.Controls.Right, null, isLandscape && /* @__PURE__ */ React13.createElement(ChatToggle, null), hasCaptions && /* @__PURE__ */ React13.createElement(HLSCaptionSelector, { isEnabled: isCaptionEnabled }), availableLayers.length > 0 ? /* @__PURE__ */ React13.createElement(
|
|
1160
|
+
HLSQualitySelector,
|
|
1161
|
+
{
|
|
1162
|
+
layers: availableLayers,
|
|
1163
|
+
onOpenChange: setQualityDropDownOpen,
|
|
1164
|
+
open: qualityDropDownOpen,
|
|
1165
|
+
selection: currentSelectedQuality,
|
|
1166
|
+
onQualityChange: handleQuality,
|
|
1167
|
+
isAuto: isUserSelectedAuto
|
|
1168
|
+
}
|
|
1169
|
+
) : null)
|
|
1170
|
+
)
|
|
1171
|
+
)) : null, /* @__PURE__ */ React13.createElement(
|
|
890
1172
|
Flex,
|
|
891
1173
|
{
|
|
892
1174
|
ref: controlsRef,
|
|
893
1175
|
direction: "column",
|
|
894
|
-
justify: "
|
|
895
|
-
align: "
|
|
1176
|
+
justify: "end",
|
|
1177
|
+
align: "start",
|
|
896
1178
|
css: {
|
|
897
1179
|
position: "absolute",
|
|
898
1180
|
bottom: "0",
|
|
899
1181
|
left: "0",
|
|
900
|
-
background: `linear-gradient(180deg, ${theme.colors.background_dim.value}00 29.46%, ${theme.colors.background_dim.value}A3 100%);`,
|
|
1182
|
+
background: isMobile || isLandscape ? "" : `linear-gradient(180deg, ${theme.colors.background_dim.value}00 29.46%, ${theme.colors.background_dim.value}A3 100%);`,
|
|
901
1183
|
width: "100%",
|
|
902
1184
|
pt: "$8",
|
|
903
1185
|
flexShrink: 0,
|
|
@@ -906,14 +1188,15 @@ var HLSView = () => {
|
|
|
906
1188
|
opacity: controlsVisible ? `1` : "0"
|
|
907
1189
|
}
|
|
908
1190
|
},
|
|
909
|
-
!isMobile && /* @__PURE__ */
|
|
1191
|
+
!(isMobile || isLandscape) && ((_b = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _b.playlist_type) === HLSPlaylistType.DVR && /* @__PURE__ */ React13.createElement(HMSVideoPlayer.Progress, null),
|
|
1192
|
+
/* @__PURE__ */ React13.createElement(
|
|
910
1193
|
HMSVideoPlayer.Controls.Root,
|
|
911
1194
|
{
|
|
912
1195
|
css: {
|
|
913
1196
|
p: "$4 $8"
|
|
914
1197
|
}
|
|
915
1198
|
},
|
|
916
|
-
/* @__PURE__ */
|
|
1199
|
+
/* @__PURE__ */ React13.createElement(HMSVideoPlayer.Controls.Left, null, !(isMobile || isLandscape) && /* @__PURE__ */ React13.createElement(React13.Fragment, null, /* @__PURE__ */ React13.createElement(
|
|
917
1200
|
HMSVideoPlayer.PlayButton,
|
|
918
1201
|
{
|
|
919
1202
|
onClick: () => __async(void 0, null, function* () {
|
|
@@ -921,19 +1204,18 @@ var HLSView = () => {
|
|
|
921
1204
|
}),
|
|
922
1205
|
isPaused
|
|
923
1206
|
}
|
|
924
|
-
), /* @__PURE__ */
|
|
1207
|
+
), !isVideoLive ? /* @__PURE__ */ React13.createElement(HMSVideoPlayer.Duration, null) : null, /* @__PURE__ */ React13.createElement(HMSVideoPlayer.Volume, null)), /* @__PURE__ */ React13.createElement(
|
|
925
1208
|
IconButton,
|
|
926
1209
|
{
|
|
927
|
-
variant: "standard",
|
|
928
1210
|
css: { px: "$2" },
|
|
929
1211
|
onClick: () => __async(void 0, null, function* () {
|
|
930
|
-
yield hlsPlayer.seekToLivePosition();
|
|
1212
|
+
yield hlsPlayer == null ? void 0 : hlsPlayer.seekToLivePosition();
|
|
931
1213
|
setIsVideoLive(true);
|
|
932
1214
|
}),
|
|
933
1215
|
key: "jump-to-live_btn",
|
|
934
1216
|
"data-testid": "jump-to-live_btn"
|
|
935
1217
|
},
|
|
936
|
-
/* @__PURE__ */
|
|
1218
|
+
/* @__PURE__ */ React13.createElement(Tooltip, { title: isVideoLive ? "Live" : "Go to Live", side: "top" }, /* @__PURE__ */ React13.createElement(Flex, { justify: "center", gap: 2, align: "center" }, /* @__PURE__ */ React13.createElement(
|
|
937
1219
|
Box,
|
|
938
1220
|
{
|
|
939
1221
|
css: {
|
|
@@ -943,45 +1225,38 @@ var HLSView = () => {
|
|
|
943
1225
|
r: "$1"
|
|
944
1226
|
}
|
|
945
1227
|
}
|
|
946
|
-
), /* @__PURE__ */
|
|
1228
|
+
), /* @__PURE__ */ React13.createElement(
|
|
947
1229
|
Text,
|
|
948
1230
|
{
|
|
949
|
-
variant:
|
|
950
|
-
"@sm": "xs"
|
|
951
|
-
},
|
|
1231
|
+
variant: "$body1",
|
|
952
1232
|
css: {
|
|
953
|
-
c: isVideoLive ? "$on_surface_high" : "$on_surface_medium"
|
|
1233
|
+
c: isVideoLive ? "$on_surface_high" : "$on_surface_medium",
|
|
1234
|
+
fontWeight: "$semiBold"
|
|
954
1235
|
}
|
|
955
1236
|
},
|
|
956
1237
|
isVideoLive ? "LIVE" : "GO LIVE"
|
|
957
1238
|
)))
|
|
958
|
-
)),
|
|
959
|
-
/* @__PURE__ */
|
|
1239
|
+
), (isMobile || isLandscape) && !isVideoLive ? /* @__PURE__ */ React13.createElement(HMSVideoPlayer.Duration, null) : null),
|
|
1240
|
+
/* @__PURE__ */ React13.createElement(HMSVideoPlayer.Controls.Right, null, hasCaptions && !(isMobile || isLandscape) && /* @__PURE__ */ React13.createElement(HLSCaptionSelector, { isEnabled: isCaptionEnabled }), availableLayers.length > 0 && !(isMobile || isLandscape) ? /* @__PURE__ */ React13.createElement(
|
|
960
1241
|
HLSQualitySelector,
|
|
961
1242
|
{
|
|
962
1243
|
layers: availableLayers,
|
|
963
|
-
|
|
1244
|
+
onOpenChange: setQualityDropDownOpen,
|
|
964
1245
|
open: qualityDropDownOpen,
|
|
965
1246
|
selection: currentSelectedQuality,
|
|
966
1247
|
onQualityChange: handleQuality,
|
|
967
1248
|
isAuto: isUserSelectedAuto
|
|
968
1249
|
}
|
|
969
|
-
) : null, isFullScreenSupported ? /* @__PURE__ */
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
onToggle: toggle,
|
|
974
|
-
icon: isFullScreen ? /* @__PURE__ */ React11.createElement(ShrinkIcon, null) : /* @__PURE__ */ React11.createElement(ExpandIcon, null)
|
|
975
|
-
}
|
|
976
|
-
) : null)
|
|
977
|
-
)
|
|
978
|
-
)
|
|
1250
|
+
) : null, isFullScreenSupported ? /* @__PURE__ */ React13.createElement(FullScreenButton, { isFullScreen, onToggle: toggle }) : null)
|
|
1251
|
+
),
|
|
1252
|
+
(isMobile || isLandscape) && ((_c = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _c.playlist_type) === HLSPlaylistType.DVR ? /* @__PURE__ */ React13.createElement(HMSVideoPlayer.Progress, null) : null
|
|
1253
|
+
))
|
|
979
1254
|
)
|
|
980
|
-
) : /* @__PURE__ */
|
|
1255
|
+
)), isMobile && !isFullScreen && /* @__PURE__ */ React13.createElement(HLSViewTitle, null)) : /* @__PURE__ */ React13.createElement(Flex, { align: "center", justify: "center", direction: "column", css: { size: "100%", px: "$10" } }, /* @__PURE__ */ React13.createElement(Flex, { css: { c: "$on_surface_high", r: "$round", bg: "$surface_default", p: "$2" } }, streamEnded ? /* @__PURE__ */ React13.createElement(ColoredHandIcon, { height: 56, width: 56 }) : /* @__PURE__ */ React13.createElement(GoLiveIcon, { height: 56, width: 56 })), /* @__PURE__ */ React13.createElement(Text, { variant: "h5", css: { c: "$on_surface_high", mt: "$10", mb: 0, textAlign: "center" } }, streamEnded ? "Stream has ended" : "Stream yet to start"), /* @__PURE__ */ React13.createElement(Text, { variant: "md", css: { textAlign: "center", mt: "$4", c: "$on_surface_medium" } }, streamEnded ? "Have a nice day!" : "Sit back and relax"))
|
|
981
1256
|
);
|
|
982
1257
|
};
|
|
983
1258
|
var HLSView_default = HLSView;
|
|
984
1259
|
export {
|
|
985
1260
|
HLSView_default as default
|
|
986
1261
|
};
|
|
987
|
-
//# sourceMappingURL=HLSView-
|
|
1262
|
+
//# sourceMappingURL=HLSView-UIPDGADR.js.map
|