@realsee/vreo 1.0.0-alpha.1 → 1.0.0-alpha.11
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/docs/assets/search.js +1 -1
- package/docs/classes/Player.AudioLike.html +6 -6
- package/docs/classes/Player.Controller.html +12 -12
- package/docs/classes/Player.Player-1.html +11 -11
- package/docs/classes/Player.VideoAgentMesh.html +12 -12
- package/docs/classes/Player.VideoAgentScene.html +1 -1
- package/docs/demo/assets/{AppReact.d0ee843a.js → AppReact.e6e509fc.js} +1 -1
- package/docs/demo/assets/default.bc4c715d.css +1 -0
- package/docs/demo/assets/default.e9102488.js +3988 -0
- package/docs/demo/assets/{dynamic.76506c2c.js → dynamic.0dd42f6c.js} +1 -1
- package/docs/demo/assets/{examples.3d8323db.js → examples.e70954e5.js} +1 -1
- package/docs/demo/assets/{index.7e31122c.js → index.62e9f091.js} +1 -1
- package/docs/demo/assets/{main.79b11b9d.js → main.c6fa1444.js} +1 -1
- package/docs/demo/assets/{react.c1c07c14.js → react.89edd358.js} +1 -1
- package/docs/demo/examples.html +3 -3
- package/docs/demo/index-react-dynamic.html +5 -5
- package/docs/demo/index-react.html +5 -5
- package/docs/demo/index.html +4 -4
- package/docs/enums/Player.InfoPanelStyleEnum.html +1 -1
- package/docs/enums/Player.InfoPanelTypeEnum.html +1 -1
- package/docs/enums/Player.PanoEffectEnum.html +1 -1
- package/docs/enums/Player.PanoTagEnum.html +1 -1
- package/docs/enums/Player.PanoTagStyleEnum.html +2 -2
- package/docs/enums/Player.VreoKeyframeEnum.html +12 -12
- package/docs/enums/fivePlugins.CameraMovementEffect.html +1 -1
- package/docs/enums/fivePlugins.Rotation.html +1 -1
- package/docs/interfaces/Player.CustomVreoKeyframeProps.html +1 -1
- package/docs/interfaces/Player.PlayerConfigs.html +4 -3
- package/docs/interfaces/Player.Vertex.html +1 -1
- package/docs/interfaces/Player.VideoAgentMeshOptions.html +3 -3
- package/docs/interfaces/Player.VreoKeyframe.html +1 -1
- package/docs/interfaces/Player.VreoUnit.html +1 -1
- package/docs/interfaces/Player.VreoVideo.html +1 -1
- package/docs/interfaces/fivePlugins.CSS3DRenderPluginExportType.html +2 -2
- package/docs/interfaces/fivePlugins.CameraMovementOptsCallback.html +1 -1
- package/docs/interfaces/fivePlugins.CameraMovementPluginExportType.html +2 -2
- package/docs/interfaces/fivePlugins.ModelTVVideoPluginData.html +1 -1
- package/docs/interfaces/fivePlugins.ModelTVVideoPluginExportType.html +1 -1
- package/docs/interfaces/fivePlugins.ModelTVVideoPluginParameterType.html +1 -1
- package/docs/interfaces/fivePlugins.Vector3Position.html +1 -1
- package/docs/interfaces/react.VreoActionCallbacks.html +6 -6
- package/docs/interfaces/react.VreoProviderProps.html +1 -1
- package/docs/modules/Player.html +16 -16
- package/docs/modules/custom.html +1 -1
- package/docs/modules/fivePlugins.html +3 -3
- package/docs/modules/react.html +1 -1
- package/lib/PlayController/createHTMLAudioElement.js +6 -11
- package/lib/PlayController/index.js +16 -82
- package/lib/Player/App.js +6 -28
- package/lib/Player/Controller.d.ts +27 -8
- package/lib/Player/Controller.js +163 -84
- package/lib/Player/custom/SpatialScenePanel/index.js +44 -69
- package/lib/Player/hooks.js +2 -12
- package/lib/Player/index.d.ts +2 -1
- package/lib/Player/index.js +63 -108
- package/lib/Player/modules/Drawer/index.js +0 -17
- package/lib/Player/modules/PopUp/index.js +0 -10
- package/lib/Player/modules/ResizeObserver/index.d.ts +2 -0
- package/lib/Player/modules/ResizeObserver/index.js +29 -0
- package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts +1 -1
- package/lib/Player/modules/VideoAgent/VideoAgentMesh.js +58 -151
- package/lib/Player/modules/VideoAgent/VideoAgentScene.d.ts +3 -7
- package/lib/Player/modules/VideoAgent/VideoAgentScene.js +21 -52
- package/lib/Player/modules/VideoAgent/index.js +45 -21
- package/lib/Player/modules/Wave/index.d.ts +5 -0
- package/lib/Player/modules/Wave/index.js +158 -0
- package/lib/Player/modules/keyframes/BgMusic/index.js +2 -15
- package/lib/Player/modules/keyframes/CameraMovement/index.js +3 -27
- package/lib/Player/modules/keyframes/InfoPanel/index.js +28 -33
- package/lib/Player/modules/keyframes/ModelVideo/index.js +3 -29
- package/lib/Player/modules/keyframes/PanoEffect/index.js +15 -43
- package/lib/Player/modules/keyframes/PanoEffect/lineAnime.js +0 -7
- package/lib/Player/modules/keyframes/PanoTag/index.d.ts +1 -2
- package/lib/Player/modules/keyframes/PanoTag/index.js +74 -144
- package/lib/Player/modules/keyframes/PanoTextLabel/index.js +22 -48
- package/lib/Player/modules/keyframes/Prompter/index.js +14 -35
- package/lib/Player/modules/keyframes/UpdateVRPanorama/index.js +18 -25
- package/lib/Player/modules/keyframes/VideoEffect/index.js +12 -47
- package/lib/Player/typings.d.ts +9 -2
- package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.js +0 -2
- package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.js +0 -1
- package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.js +0 -1
- package/lib/fivePlugins/CSS3DRenderPlugin/index.js +19 -60
- package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.js +2 -5
- package/lib/fivePlugins/CameraMovementPlugin/index.js +30 -80
- package/lib/fivePlugins/CameraMovementPlugin/typings.js +0 -4
- package/lib/fivePlugins/ModelTVVideoPlugin/index.js +11 -60
- package/lib/index.js +0 -1
- package/lib/react/index.d.ts +2 -2
- package/lib/react/index.js +7 -34
- package/lib/shared-utils/AduioLike.js +12 -45
- package/lib/shared-utils/Preloader.js +0 -7
- package/lib/shared-utils/addResizeListener.d.ts +4 -0
- package/lib/shared-utils/addResizeListener.js +46 -0
- package/lib/shared-utils/animationFrame/BetterTween.js +2 -38
- package/lib/shared-utils/animationFrame/index.js +2 -10
- package/lib/shared-utils/animationFrame/tween.js +2 -15
- package/lib/shared-utils/createTransMatrix.js +2 -17
- package/lib/shared-utils/getFileExpandedName.d.ts +1 -0
- package/lib/shared-utils/getFileExpandedName.js +12 -0
- package/lib/shared-utils/getMediaInfo.d.ts +9 -0
- package/lib/shared-utils/getMediaInfo.js +66 -0
- package/lib/shared-utils/setElementDataset.d.ts +1 -0
- package/lib/shared-utils/setElementDataset.js +22 -0
- package/lib/typings/VreoUnit.d.ts +4 -0
- package/lib/typings/VreoUnit.js +0 -15
- package/package.json +2 -2
- package/resources/Player/Controller.ts +4 -7
- package/resources/Player/index.tsx +2 -0
- package/resources/Player/modules/Wave/index.tsx +133 -12
- package/resources/Player/modules/keyframes/PanoTag/index.tsx +1 -2
- package/resources/typings/VreoUnit.ts +1 -1
- package/stylesheets/default.css +4 -2
- package/docs/demo/assets/default.63925584.js +0 -3984
- package/docs/demo/assets/default.f3f3ca8c.css +0 -1
|
@@ -1,18 +1,139 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
1
|
import { WaveAppearance } from '../../typings'
|
|
2
|
+
import React, { FC, useState, useCallback, useRef, useEffect, ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
const prefix = 'https://vr-public.realsee-cdn.cn/release/static/image/release/'
|
|
6
|
+
|
|
7
|
+
const WAVES = {
|
|
8
|
+
single: {
|
|
9
|
+
width: 766,
|
|
10
|
+
height: 60,
|
|
11
|
+
frames: 20,
|
|
12
|
+
hevc: 'vapor/static/wave-single.140d197f4838c130b69e87dfd0705479.mov',
|
|
13
|
+
vp9: 'vapor/static/wave-single.eda65de390a830193fff40d1f1255555.webm',
|
|
14
|
+
png: 'vapor/static/wave-single.f51aade2a6e1c59211698a1a24e6135f.png',
|
|
15
|
+
},
|
|
16
|
+
double: {
|
|
17
|
+
width: 766,
|
|
18
|
+
height: 60,
|
|
19
|
+
frames: 16,
|
|
20
|
+
hevc: 'vapor/static/wave-double.3e6d73050ee6958cc3060b107ebe5f39.mov',
|
|
21
|
+
vp9: '/vapor/static/wave-double.77dfe8548ebcb3f3d336785d4fe9c7b2.webm',
|
|
22
|
+
png: '/vapor/static/wave-double.ab4fe7d8a70395109ca4f759af7bd53f.png',
|
|
23
|
+
},
|
|
24
|
+
solid: {
|
|
25
|
+
width: 1126,
|
|
26
|
+
height: 90,
|
|
27
|
+
frames: 48,
|
|
28
|
+
hevc: 'vapor/static/wave-solid.cf68912a93275d07aa6b5097ea11fdda.mov',
|
|
29
|
+
vp9: 'vapor/static/wave-solid.64438b63cbb346906d066bb7b8dc3e20.webm',
|
|
30
|
+
png: 'vapor/static/wave-solid.6969d7f3f2f44f7ac1ade30e65660cb1.png',
|
|
31
|
+
},
|
|
32
|
+
swap: {
|
|
33
|
+
width: 2250,
|
|
34
|
+
height: 180,
|
|
35
|
+
frames: 41,
|
|
36
|
+
hevc: 'vapor/static/wave-swap.b38f22e2cf84ee21e9be35f7f56c9cfc.mov',
|
|
37
|
+
vp9: 'vapor/static/wave-swap.c02e4b94cf05aecf6e7a0023bc7bb90f.webm',
|
|
38
|
+
png: 'vapor/static/wave-swap.772ba526a7210dcc01567062c6319545.png',
|
|
39
|
+
},
|
|
40
|
+
expand: {
|
|
41
|
+
width: 2250,
|
|
42
|
+
height: 180,
|
|
43
|
+
frames: 45,
|
|
44
|
+
hevc: 'vapor/static/wave-expand.9529956c5954740cd4c9d07d51e32822.mov',
|
|
45
|
+
vp9: 'vapor/static/wave-expand.a0d2a0074001cd3d4fea56818c6d3c38.webm',
|
|
46
|
+
png: 'vapor/static/wave-expand.62fcf27b445533e6eb1b17bab5eafa0d.png',
|
|
47
|
+
}
|
|
48
|
+
} as const;
|
|
49
|
+
|
|
50
|
+
const userAgent = typeof navigator !== 'undefined' ? navigator.userAgent : '';
|
|
51
|
+
const isAppleDevice = /(iPhone|iPad|iPod)/i.test(userAgent);
|
|
52
|
+
const isSafari = /safari/i.test(userAgent) && !/chrome/i.test(userAgent) && /version/i.test(userAgent);
|
|
53
|
+
const isMicroMessenger = /microMessenger/i.test(userAgent);
|
|
54
|
+
const canPlayHevc = isAppleDevice || isSafari;
|
|
55
|
+
const canPlayVp9 = typeof MediaSource !== 'undefined' && MediaSource.isTypeSupported("video/webm; codecs=vp9");
|
|
56
|
+
|
|
3
57
|
|
|
4
58
|
export function Wave(props?: { appearance?: WaveAppearance }) {
|
|
5
|
-
|
|
59
|
+
|
|
60
|
+
const wave = React.useMemo(() => {
|
|
6
61
|
const appearance = props?.appearance ?? 'solid'
|
|
7
|
-
|
|
8
|
-
default: return 'https://vr-public.realsee-cdn.cn/release/static/image/release/vapor/static/wave-solid.64438b63cbb346906d066bb7b8dc3e20.webm'
|
|
9
|
-
case 'solid': return 'https://vr-public.realsee-cdn.cn/release/static/image/release/vapor/static/wave-solid.64438b63cbb346906d066bb7b8dc3e20.webm'
|
|
10
|
-
case 'single': return 'https://vr-public.realsee-cdn.cn/release/static/image/release/vapor/static/wave-single.eda65de390a830193fff40d1f1255555.webm'
|
|
11
|
-
case 'double': return 'https://vr-public.realsee-cdn.cn/release/static/image/release/vapor/static/wave-double.77dfe8548ebcb3f3d336785d4fe9c7b2.webm'
|
|
12
|
-
case 'swap': return 'https://vr-public.realsee-cdn.cn/release/static/image/release/vapor/static/wave-swap.c02e4b94cf05aecf6e7a0023bc7bb90f.webm'
|
|
13
|
-
case 'expand': return 'https://vr-public.realsee-cdn.cn/release/static/image/release/vapor/static/wave-expand.a0d2a0074001cd3d4fea56818c6d3c38.webm'
|
|
14
|
-
}
|
|
62
|
+
return WAVES[appearance]
|
|
15
63
|
}, [props?.appearance])
|
|
16
64
|
|
|
17
|
-
|
|
18
|
-
|
|
65
|
+
let content: ReactNode = null;
|
|
66
|
+
if (isMicroMessenger) {
|
|
67
|
+
content = <KeyframeWaveContent wave={wave} />
|
|
68
|
+
} else if (canPlayVp9) {
|
|
69
|
+
content = <VideoWaveContent format="vp9" wave={wave} />
|
|
70
|
+
} else if (canPlayHevc) {
|
|
71
|
+
content = <VideoWaveContent format="hevc" wave={wave} />
|
|
72
|
+
} else {
|
|
73
|
+
content = <KeyframeWaveContent wave={wave} />
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return <div className="vreo-wave">{content}</div>
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const VideoWaveContent: FC<{ wave: typeof WAVES[keyof typeof WAVES]; format: 'hevc' | 'vp9' }> = ({
|
|
80
|
+
wave,
|
|
81
|
+
format,
|
|
82
|
+
}) => {
|
|
83
|
+
const videoRef = useRef<HTMLVideoElement>(null);
|
|
84
|
+
const [canPlay, setCanPlay] = useState(false);
|
|
85
|
+
const [errored, setErrored] = useState(false);
|
|
86
|
+
const source = prefix + wave[format];
|
|
87
|
+
|
|
88
|
+
useEffect(() => {
|
|
89
|
+
setCanPlay(false);
|
|
90
|
+
}, [source]);
|
|
91
|
+
|
|
92
|
+
const canPlayHandler = useCallback(() => {
|
|
93
|
+
if (videoRef.current) {
|
|
94
|
+
videoRef.current.play();
|
|
95
|
+
}
|
|
96
|
+
setCanPlay(true);
|
|
97
|
+
}, []);
|
|
98
|
+
|
|
99
|
+
const errorHandler = useCallback(() => {
|
|
100
|
+
setErrored(true);
|
|
101
|
+
}, []);
|
|
102
|
+
|
|
103
|
+
if (errored) {
|
|
104
|
+
return <KeyframeWaveContent wave={wave} />;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return <video
|
|
108
|
+
style={{ opacity: canPlay ? 1 : 0 }}
|
|
109
|
+
preload="auto"
|
|
110
|
+
ref={videoRef}
|
|
111
|
+
width="100%"
|
|
112
|
+
height="100%"
|
|
113
|
+
playsInline
|
|
114
|
+
autoPlay
|
|
115
|
+
onCanPlay={canPlayHandler}
|
|
116
|
+
onError={errorHandler}
|
|
117
|
+
muted
|
|
118
|
+
loop
|
|
119
|
+
src={source}
|
|
120
|
+
/>;
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
const KeyframeWaveContent: FC<{ wave: typeof WAVES[keyof typeof WAVES] }> = ({
|
|
124
|
+
wave,
|
|
125
|
+
}) => {
|
|
126
|
+
const source = prefix + wave.png;
|
|
127
|
+
return <div
|
|
128
|
+
style={{
|
|
129
|
+
width: "100%",
|
|
130
|
+
height: "100%",
|
|
131
|
+
backgroundImage: `url(${source})`,
|
|
132
|
+
backgroundSize: "100%",
|
|
133
|
+
animationName: `keyframes`,
|
|
134
|
+
animationTimingFunction: `steps(${wave.frames - 1})`,
|
|
135
|
+
animationDuration: `${wave.frames / 25}s`,
|
|
136
|
+
animationIterationCount: 'infinite',
|
|
137
|
+
}}
|
|
138
|
+
/>;
|
|
139
|
+
};
|
|
@@ -35,7 +35,7 @@ export function PanoTag() {
|
|
|
35
35
|
|
|
36
36
|
const panoTagData = data as PanoTagData
|
|
37
37
|
|
|
38
|
-
const id =
|
|
38
|
+
const id = Date.now().toString()
|
|
39
39
|
const pointType = PointType.PointTag
|
|
40
40
|
const dimensionType = DimensionType.Two
|
|
41
41
|
const position = [panoTagData.vertex.x, panoTagData.vertex.y, panoTagData.vertex.z]
|
|
@@ -51,7 +51,6 @@ export function PanoTag() {
|
|
|
51
51
|
panoTagPlugin.current.load({ tagList: [tag] })
|
|
52
52
|
|
|
53
53
|
timeoutRef.current = setTimeout(() => {
|
|
54
|
-
const id = Date.now()
|
|
55
54
|
// clear
|
|
56
55
|
const tag = panoTagPlugin.current.getTagById(id)
|
|
57
56
|
if (tag.state) {
|
package/stylesheets/default.css
CHANGED
|
@@ -107,6 +107,8 @@
|
|
|
107
107
|
|
|
108
108
|
.vreo-wave {
|
|
109
109
|
position: absolute;
|
|
110
|
+
background-color: transparent;
|
|
111
|
+
border: none;
|
|
110
112
|
bottom: 0;
|
|
111
113
|
}
|
|
112
114
|
|
|
@@ -855,8 +857,8 @@
|
|
|
855
857
|
|
|
856
858
|
.vreo-app .vreo-PopUp-inner .vreo-infoPanel-title .vreo-infoPanel-t1,
|
|
857
859
|
.vreo-app[data-size="S"] .vreo-PopUp-inner .vreo-infoPanel-title .vreo-infoPanel-t1 {
|
|
858
|
-
font-size:
|
|
859
|
-
line-height:
|
|
860
|
+
font-size: 16px;
|
|
861
|
+
line-height: 22px;
|
|
860
862
|
}
|
|
861
863
|
.vreo-app[data-size="M"][data-orientation="landscape"] .vreo-PopUp-inner .vreo-infoPanel-title .vreo-infoPanel-t1 {
|
|
862
864
|
font-size: 14px;
|