@100mslive/roomkit-react 0.2.6-alpha.2 → 0.2.6-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-U3DKJBM7.js → HLSView-H6Q2FEMZ.js} +3 -3
- package/dist/{HLSView-U3DKJBM7.js.map → HLSView-H6Q2FEMZ.js.map} +2 -2
- package/dist/Prebuilt/common/constants.d.ts +0 -1
- package/dist/Prebuilt/components/VirtualBackground/VBHandler.d.ts +1 -1
- package/dist/{chunk-DO5NCPPI.js → chunk-HRUQKLGN.js} +532 -515
- package/dist/chunk-HRUQKLGN.js.map +7 -0
- package/dist/index.cjs.js +4294 -4275
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.js +1 -1
- package/dist/meta.cjs.json +176 -156
- package/dist/meta.esbuild.json +187 -167
- package/package.json +6 -6
- package/src/Prebuilt/App.tsx +7 -8
- package/src/Prebuilt/common/constants.ts +1 -1
- package/src/Prebuilt/components/AppData/AppData.tsx +23 -1
- package/src/Prebuilt/components/Header/HeaderComponents.jsx +1 -1
- package/src/Prebuilt/components/MoreSettings/SplitComponents/MwebOptions.tsx +4 -5
- package/src/Prebuilt/components/Preview/PreviewJoin.tsx +1 -2
- package/src/Prebuilt/components/ScreenshareTile.tsx +1 -1
- package/src/Prebuilt/components/VirtualBackground/VBHandler.tsx +2 -2
- package/src/Prebuilt/components/VirtualBackground/VBPicker.tsx +29 -12
- package/src/Prebuilt/layouts/HLSView.jsx +1 -2
- package/dist/chunk-DO5NCPPI.js.map +0 -7
- package/src/Prebuilt/plugins/VirtualBackground/VirtualBackground.jsx +0 -112
- package/src/Prebuilt/plugins/VirtualBackground/vbutils.js +0 -66
@@ -1,112 +0,0 @@
|
|
1
|
-
import React, { useEffect, useRef, useState } from 'react';
|
2
|
-
import { HMSVirtualBackgroundTypes } from '@100mslive/hms-virtual-background';
|
3
|
-
import {
|
4
|
-
selectIsLocalVideoEnabled,
|
5
|
-
selectIsLocalVideoPluginPresent,
|
6
|
-
selectLocalPeerRole,
|
7
|
-
selectLocalVideoTrackID,
|
8
|
-
useHMSActions,
|
9
|
-
useHMSStore,
|
10
|
-
} from '@100mslive/react-sdk';
|
11
|
-
import { VirtualBackgroundIcon } from '@100mslive/react-icons';
|
12
|
-
import { ActionTile } from '../../components/MoreSettings/ActionTile';
|
13
|
-
import { Loading } from '../../../Loading';
|
14
|
-
import { Tooltip } from '../../../Tooltip';
|
15
|
-
import IconButton from '../../IconButton';
|
16
|
-
import { getRandomVirtualBackground } from './vbutils';
|
17
|
-
|
18
|
-
export const VirtualBackground = ({
|
19
|
-
asActionTile = false,
|
20
|
-
onVBClick = () => {
|
21
|
-
return;
|
22
|
-
},
|
23
|
-
}) => {
|
24
|
-
const pluginRef = useRef(null);
|
25
|
-
const hmsActions = useHMSActions();
|
26
|
-
const role = useHMSStore(selectLocalPeerRole);
|
27
|
-
const isVideoOn = useHMSStore(selectIsLocalVideoEnabled);
|
28
|
-
const [isVBLoading, setIsVBLoading] = useState(false);
|
29
|
-
const [isVBSupported, setIsVBSupported] = useState(false);
|
30
|
-
const [isVBOn, setIsVBOn] = useState(false);
|
31
|
-
const localPeerVideoTrackID = useHMSStore(selectLocalVideoTrackID);
|
32
|
-
const isVBPresent = useHMSStore(selectIsLocalVideoPluginPresent('HMSVB'));
|
33
|
-
|
34
|
-
async function createPlugin() {
|
35
|
-
if (!pluginRef.current) {
|
36
|
-
const { HMSVBPlugin } = await import('@100mslive/hms-virtual-background');
|
37
|
-
pluginRef.current = new HMSVBPlugin(HMSVirtualBackgroundTypes.NONE, HMSVirtualBackgroundTypes.NONE);
|
38
|
-
}
|
39
|
-
}
|
40
|
-
useEffect(() => {
|
41
|
-
if (!localPeerVideoTrackID) {
|
42
|
-
return;
|
43
|
-
}
|
44
|
-
createPlugin().then(() => {
|
45
|
-
//check support of plugin
|
46
|
-
const pluginSupport = hmsActions.validateVideoPluginSupport(pluginRef.current);
|
47
|
-
setIsVBSupported(pluginSupport.isSupported);
|
48
|
-
});
|
49
|
-
}, [hmsActions, localPeerVideoTrackID]);
|
50
|
-
|
51
|
-
async function addPlugin() {
|
52
|
-
setIsVBLoading(true);
|
53
|
-
try {
|
54
|
-
await createPlugin();
|
55
|
-
window.HMS.virtualBackground = pluginRef.current;
|
56
|
-
const { background, backgroundType } = getRandomVirtualBackground();
|
57
|
-
await pluginRef.current.setBackground(background, backgroundType);
|
58
|
-
await hmsActions.addPluginToVideoTrack(pluginRef.current, Math.floor(role.publishParams.video.frameRate / 2));
|
59
|
-
} catch (err) {
|
60
|
-
console.error('add virtual background plugin failed', err);
|
61
|
-
}
|
62
|
-
setIsVBLoading(false);
|
63
|
-
}
|
64
|
-
|
65
|
-
async function removePlugin() {
|
66
|
-
if (pluginRef.current) {
|
67
|
-
await hmsActions.removePluginFromVideoTrack(pluginRef.current);
|
68
|
-
pluginRef.current = null;
|
69
|
-
}
|
70
|
-
}
|
71
|
-
|
72
|
-
if (!isVBSupported || !isVideoOn) {
|
73
|
-
return null;
|
74
|
-
}
|
75
|
-
if (asActionTile) {
|
76
|
-
return (
|
77
|
-
<ActionTile.Root
|
78
|
-
data-testid="virtual_bg_btn"
|
79
|
-
active={isVBPresent}
|
80
|
-
disabled={isVBLoading}
|
81
|
-
onClick={() => {
|
82
|
-
setIsVBOn(!isVBOn);
|
83
|
-
!isVBPresent ? addPlugin() : removePlugin();
|
84
|
-
onVBClick();
|
85
|
-
}}
|
86
|
-
>
|
87
|
-
<VirtualBackgroundIcon />
|
88
|
-
<ActionTile.Title>Virtual Background</ActionTile.Title>
|
89
|
-
</ActionTile.Root>
|
90
|
-
);
|
91
|
-
}
|
92
|
-
|
93
|
-
return (
|
94
|
-
<Tooltip
|
95
|
-
boxCss={{ zIndex: '100' }}
|
96
|
-
title={isVBLoading ? 'Adding virtual background' : `Turn ${!isVBPresent ? 'on' : 'off'} virtual background`}
|
97
|
-
>
|
98
|
-
<IconButton
|
99
|
-
active={!isVBPresent}
|
100
|
-
disabled={isVBLoading}
|
101
|
-
onClick={() => {
|
102
|
-
!isVBPresent ? addPlugin() : removePlugin();
|
103
|
-
}}
|
104
|
-
data-testid="virtual_bg_btn"
|
105
|
-
>
|
106
|
-
{isVBLoading ? <Loading /> : <VirtualBackgroundIcon />}
|
107
|
-
</IconButton>
|
108
|
-
</Tooltip>
|
109
|
-
);
|
110
|
-
};
|
111
|
-
|
112
|
-
export default VirtualBackground;
|
@@ -1,66 +0,0 @@
|
|
1
|
-
/* eslint-disable no-case-declarations */
|
2
|
-
import { HMSVirtualBackgroundTypes } from '@100mslive/hms-virtual-background';
|
3
|
-
export function getRandomVirtualBackground() {
|
4
|
-
const backgroundList = [
|
5
|
-
{
|
6
|
-
background: HMSVirtualBackgroundTypes.BLUR,
|
7
|
-
backgroundType: HMSVirtualBackgroundTypes.BLUR,
|
8
|
-
},
|
9
|
-
];
|
10
|
-
|
11
|
-
const images = [
|
12
|
-
'https://www.100ms.live/images/vb-1.jpeg',
|
13
|
-
'https://www.100ms.live/images/vb-2.jpg',
|
14
|
-
'https://www.100ms.live/images/vb-3.png',
|
15
|
-
'https://d2qi07yyjujoxr.cloudfront.net/webapp/vb/hms1.png',
|
16
|
-
'https://d2qi07yyjujoxr.cloudfront.net/webapp/vb/hms2.png',
|
17
|
-
'https://d2qi07yyjujoxr.cloudfront.net/webapp/vb/hms3.png',
|
18
|
-
'https://d2qi07yyjujoxr.cloudfront.net/webapp/vb/hms4.png',
|
19
|
-
].map(url => ({
|
20
|
-
background: url,
|
21
|
-
backgroundType: HMSVirtualBackgroundTypes.IMAGE,
|
22
|
-
}));
|
23
|
-
|
24
|
-
backgroundList.push(...images);
|
25
|
-
|
26
|
-
/*
|
27
|
-
//TODO: update with a better quality gif.
|
28
|
-
const gifList = [
|
29
|
-
{
|
30
|
-
background: "https://www.100ms.live/images/vb-1.gif",
|
31
|
-
backgroundType: HMSVirtualBackgroundTypes.GIF,
|
32
|
-
},
|
33
|
-
];
|
34
|
-
backgroundList.push(...gifList);
|
35
|
-
*/
|
36
|
-
|
37
|
-
const videoList = [
|
38
|
-
'https://www.100ms.live/images/video-1.mp4',
|
39
|
-
'https://www.100ms.live/images/video-2.mp4',
|
40
|
-
'https://www.100ms.live/images/video-5.mp4',
|
41
|
-
'https://www.100ms.live/images/video-7.mp4',
|
42
|
-
'https://www.100ms.live/images/video-8.mp4',
|
43
|
-
].map(url => ({
|
44
|
-
background: url,
|
45
|
-
backgroundType: HMSVirtualBackgroundTypes.VIDEO,
|
46
|
-
}));
|
47
|
-
backgroundList.push(...videoList);
|
48
|
-
|
49
|
-
const randomIdx = Math.floor(Math.random() * backgroundList.length);
|
50
|
-
const virtualBackground = backgroundList[randomIdx];
|
51
|
-
switch (virtualBackground.backgroundType) {
|
52
|
-
case HMSVirtualBackgroundTypes.IMAGE:
|
53
|
-
const img = document.createElement('img');
|
54
|
-
img.alt = 'VB';
|
55
|
-
img.src = backgroundList[randomIdx].background;
|
56
|
-
virtualBackground.background = img;
|
57
|
-
return virtualBackground;
|
58
|
-
case HMSVirtualBackgroundTypes.VIDEO:
|
59
|
-
const videoEl = document.createElement('video');
|
60
|
-
videoEl.src = backgroundList[randomIdx].background;
|
61
|
-
virtualBackground.background = videoEl;
|
62
|
-
return virtualBackground;
|
63
|
-
default:
|
64
|
-
return virtualBackground;
|
65
|
-
}
|
66
|
-
}
|