@realsee/vreo 2.3.8 → 2.3.9-alpha.1
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/lib/PlayController/createHTMLAudioElement.js +10 -2
- package/lib/PlayController/index.js +66 -6
- package/lib/Player/App.js +26 -0
- package/lib/Player/Controller.js +77 -21
- package/lib/Player/custom/SpatialScenePanel/index.js +63 -42
- package/lib/Player/hooks.js +10 -0
- package/lib/Player/index.js +79 -19
- package/lib/Player/modules/Drawer/index.js +17 -0
- package/lib/Player/modules/PopUp/index.js +10 -0
- package/lib/Player/modules/ResizeObserver/index.js +8 -0
- package/lib/Player/modules/VideoAgent/VideoAgentMesh.js +96 -8
- package/lib/Player/modules/VideoAgent/VideoAgentScene.js +17 -3
- package/lib/Player/modules/VideoAgent/index.js +17 -0
- package/lib/Player/modules/Wave/index.js +32 -11
- package/lib/Player/modules/keyframes/BgMusic/index.js +24 -4
- package/lib/Player/modules/keyframes/CameraMovement/index.js +26 -0
- package/lib/Player/modules/keyframes/InfoPanel/index.js +38 -8
- package/lib/Player/modules/keyframes/ModelVideo/index.js +28 -0
- package/lib/Player/modules/keyframes/PanoEffect/index.js +38 -15
- package/lib/Player/modules/keyframes/PanoEffect/lineAnime.js +7 -0
- package/lib/Player/modules/keyframes/PanoTag/index.js +22 -4
- package/lib/Player/modules/keyframes/PanoTextLabel/index.js +42 -22
- package/lib/Player/modules/keyframes/Prompter/index.js +27 -10
- package/lib/Player/modules/keyframes/UpdateVRPanorama/index.js +25 -18
- package/lib/Player/modules/keyframes/VideoEffect/index.js +42 -10
- package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.js +2 -0
- package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.js +1 -0
- package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.js +1 -0
- package/lib/fivePlugins/CSS3DRenderPlugin/index.js +60 -19
- package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.js +5 -2
- package/lib/fivePlugins/CameraMovementPlugin/index.js +109 -50
- package/lib/fivePlugins/CameraMovementPlugin/typings.js +4 -0
- package/lib/fivePlugins/ModelTVVideoPlugin/index.js +54 -8
- package/lib/index.js +1 -0
- package/lib/react/index.js +30 -7
- package/lib/shared-utils/Audio.js +49 -8
- package/lib/shared-utils/AudioLike.js +28 -3
- package/lib/shared-utils/Preloader.js +7 -0
- package/lib/shared-utils/addResizeListener.js +5 -0
- package/lib/shared-utils/animationFrame/BetterTween.js +28 -0
- package/lib/shared-utils/animationFrame/index.js +10 -2
- package/lib/shared-utils/animationFrame/tween.js +11 -2
- package/lib/shared-utils/createTransMatrix.js +8 -0
- package/lib/shared-utils/getFileExpandedName.js +1 -0
- package/lib/shared-utils/getMediaInfo.js +9 -0
- package/lib/shared-utils/setElementDataset.js +2 -0
- package/lib/typings/VreoUnit.js +15 -0
- package/package.json +1 -1
|
@@ -1,39 +1,64 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
8
10
|
exports.VideoAgentMesh = void 0;
|
|
11
|
+
|
|
9
12
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
13
|
+
|
|
10
14
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
+
|
|
11
16
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
17
|
+
|
|
12
18
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
19
|
+
|
|
13
20
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
21
|
+
|
|
14
22
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
23
|
+
|
|
15
24
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
25
|
+
|
|
16
26
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
27
|
+
|
|
17
28
|
var THREE = _interopRequireWildcard(require("three"));
|
|
29
|
+
|
|
18
30
|
var _Preloader = require("../../../shared-utils/Preloader");
|
|
31
|
+
|
|
19
32
|
var _mobx = require("mobx");
|
|
33
|
+
|
|
20
34
|
var _AudioLike = _interopRequireDefault(require("../../../shared-utils/AudioLike"));
|
|
35
|
+
|
|
21
36
|
var _getMediaInfo = require("../../../shared-utils/getMediaInfo");
|
|
37
|
+
|
|
22
38
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
39
|
+
|
|
23
40
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
41
|
+
|
|
24
42
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
43
|
+
|
|
25
44
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
45
|
+
|
|
26
46
|
var vertexShader = "\nvarying vec2 vUv;\nvarying vec2 vColorUv;\nvarying vec2 vMaskUv;\nvoid main(){\n vUv = uv;\n vColorUv = vec2(uv.x / 2.0, uv.y);\n vMaskUv = vec2(0.5 + uv.x / 2.0, uv.y);\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n";
|
|
47
|
+
|
|
27
48
|
var fragmentShaderTpl = function fragmentShaderTpl() {
|
|
28
49
|
return "\nuniform int enable;\nuniform sampler2D map;\nvarying vec2 vUv;\nvarying vec2 vColorUv;\nvarying vec2 vMaskUv;\n\nvec3 hsv2rgb(vec3 c) {\n const vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}\n\nvec3 rgb2hsv(vec3 c) {\n const vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n float d = q.x - min(q.w, q.y);\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + 0.001)), d / (q.x + 0.001), q.x);\n}\n\nvoid main(void) {\n vec3 color = texture2D(map, vUv).xyz;\n float amask = 1.0;\n\n float ref = color.r;\n if (ref < color.b) ref = color.b;\n amask = color.g - ref + 0.1;\n amask = smoothstep(0.1, 0.3, amask);\n amask = 1.0 - amask;\n\n vec3 target = rgb2hsv(vec3(0.0 / 255.0, 255.0 / 255.0, 0.0 / 255.0));\n vec3 hsv = rgb2hsv(color);\n float distance = abs(hsv.x - target.x);\n if (distance < 0.15) {\n hsv.y = 0.0;\n }\n color = hsv2rgb(hsv);\n\n gl_FragColor = vec4(color.rgb, amask * float(enable));\n}\n";
|
|
29
50
|
};
|
|
51
|
+
|
|
30
52
|
var cacheInstance = {};
|
|
53
|
+
|
|
31
54
|
/**
|
|
32
55
|
* 视频经纪人MESH
|
|
33
56
|
*/
|
|
34
57
|
var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
35
58
|
(0, _inherits2["default"])(VideoAgentMesh, _THREE$Mesh);
|
|
59
|
+
|
|
36
60
|
var _super = _createSuper(VideoAgentMesh);
|
|
61
|
+
|
|
37
62
|
/**
|
|
38
63
|
*
|
|
39
64
|
* @param width
|
|
@@ -44,11 +69,14 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
44
69
|
*/
|
|
45
70
|
function VideoAgentMesh(width, height, widthSegments, heightSegments) {
|
|
46
71
|
var _this$options$videoIn, _this$options$videoIn2;
|
|
72
|
+
|
|
47
73
|
var _this;
|
|
74
|
+
|
|
48
75
|
var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {
|
|
49
76
|
preload: true
|
|
50
77
|
};
|
|
51
78
|
(0, _classCallCheck2["default"])(this, VideoAgentMesh);
|
|
79
|
+
|
|
52
80
|
if (!options.videoInstance) {
|
|
53
81
|
if (cacheInstance.videoInstance) {
|
|
54
82
|
options.videoInstance = cacheInstance.videoInstance;
|
|
@@ -64,6 +92,7 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
64
92
|
videoInstance.controls = false;
|
|
65
93
|
}
|
|
66
94
|
}
|
|
95
|
+
|
|
67
96
|
var geometry = new THREE.PlaneGeometry(width, height, widthSegments, heightSegments);
|
|
68
97
|
var videoTexture = new THREE.VideoTexture(options.videoInstance);
|
|
69
98
|
var material = new THREE.ShaderMaterial({
|
|
@@ -83,13 +112,14 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
83
112
|
_this.options = options;
|
|
84
113
|
_this.freeze = false;
|
|
85
114
|
_this.paused = true;
|
|
115
|
+
|
|
86
116
|
if (!options.audioInstance) {
|
|
87
117
|
if (cacheInstance.audioInstance) {
|
|
88
118
|
_this.audioInstance = cacheInstance.audioInstance;
|
|
89
119
|
} else {
|
|
90
120
|
var audioInstance = document.createElement('audio');
|
|
91
|
-
audioInstance.crossOrigin = '';
|
|
92
|
-
|
|
121
|
+
audioInstance.crossOrigin = ''; // videoInstance.muted = true
|
|
122
|
+
|
|
93
123
|
audioInstance.muted = false;
|
|
94
124
|
audioInstance.autoplay = false;
|
|
95
125
|
audioInstance.style.display = 'none';
|
|
@@ -100,47 +130,66 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
100
130
|
} else {
|
|
101
131
|
_this.audioInstance = options.audioInstance;
|
|
102
132
|
}
|
|
133
|
+
|
|
103
134
|
_this.audioLikeInstance = new _AudioLike["default"]();
|
|
104
135
|
(0, _mobx.makeObservable)((0, _assertThisInitialized2["default"])(_this), {
|
|
105
136
|
paused: _mobx.observable
|
|
106
137
|
});
|
|
138
|
+
|
|
107
139
|
var updatePaused = function updatePaused(paused) {
|
|
108
140
|
return (0, _mobx.runInAction)(function () {
|
|
109
141
|
return _this.paused = paused;
|
|
110
142
|
});
|
|
111
143
|
};
|
|
144
|
+
|
|
112
145
|
var onPause = function onPause() {
|
|
113
146
|
return updatePaused(true);
|
|
114
147
|
};
|
|
148
|
+
|
|
115
149
|
var onPlay = function onPlay() {
|
|
116
150
|
return updatePaused(false);
|
|
117
151
|
};
|
|
152
|
+
|
|
118
153
|
_this.audioInstance.addEventListener('pause', onPause);
|
|
154
|
+
|
|
119
155
|
_this.audioInstance.addEventListener('play', onPlay);
|
|
156
|
+
|
|
120
157
|
(_this$options$videoIn = _this.options.videoInstance) === null || _this$options$videoIn === void 0 ? void 0 : _this$options$videoIn.addEventListener('pause', onPause);
|
|
121
158
|
(_this$options$videoIn2 = _this.options.videoInstance) === null || _this$options$videoIn2 === void 0 ? void 0 : _this$options$videoIn2.addEventListener('play', onPlay);
|
|
159
|
+
|
|
122
160
|
_this.audioLikeInstance.addEventListener('pause', onPause);
|
|
161
|
+
|
|
123
162
|
_this.audioLikeInstance.addEventListener('play', onPlay);
|
|
163
|
+
|
|
124
164
|
_this.$removeEventListener = function () {
|
|
125
165
|
var _this$options$videoIn3, _this$options$videoIn4;
|
|
166
|
+
|
|
126
167
|
_this.audioInstance.removeEventListener('pause', onPause);
|
|
168
|
+
|
|
127
169
|
_this.audioInstance.removeEventListener('play', onPlay);
|
|
170
|
+
|
|
128
171
|
(_this$options$videoIn3 = _this.options.videoInstance) === null || _this$options$videoIn3 === void 0 ? void 0 : _this$options$videoIn3.removeEventListener('pause', onPause);
|
|
129
172
|
(_this$options$videoIn4 = _this.options.videoInstance) === null || _this$options$videoIn4 === void 0 ? void 0 : _this$options$videoIn4.removeEventListener('play', onPlay);
|
|
173
|
+
|
|
130
174
|
_this.audioLikeInstance.removeEventListener('pause', onPause);
|
|
175
|
+
|
|
131
176
|
_this.audioLikeInstance.removeEventListener('play', onPlay);
|
|
132
177
|
};
|
|
178
|
+
|
|
133
179
|
return _this;
|
|
134
180
|
}
|
|
181
|
+
|
|
135
182
|
(0, _createClass2["default"])(VideoAgentMesh, [{
|
|
136
183
|
key: "mediaInstance",
|
|
137
184
|
get: function get() {
|
|
138
185
|
if (!this.videoUrl) {
|
|
139
186
|
return this.audioLikeInstance;
|
|
140
187
|
}
|
|
188
|
+
|
|
141
189
|
if ((0, _getMediaInfo.getMediaType)(this.videoUrl) === 'audio') {
|
|
142
190
|
return this.audioInstance;
|
|
143
191
|
}
|
|
192
|
+
|
|
144
193
|
var uniforms = this.material.uniforms;
|
|
145
194
|
var videoInstance = uniforms.map.value.image;
|
|
146
195
|
return videoInstance;
|
|
@@ -150,6 +199,7 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
150
199
|
value: function () {
|
|
151
200
|
var _update = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(videoUrl) {
|
|
152
201
|
var _this2 = this;
|
|
202
|
+
|
|
153
203
|
var uniforms, onStart;
|
|
154
204
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
155
205
|
while (1) {
|
|
@@ -159,11 +209,11 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
159
209
|
_context.next = 2;
|
|
160
210
|
break;
|
|
161
211
|
}
|
|
212
|
+
|
|
162
213
|
return _context.abrupt("return");
|
|
163
|
-
case 2:
|
|
164
|
-
this.videoUrl = videoUrl;
|
|
165
214
|
|
|
166
|
-
|
|
215
|
+
case 2:
|
|
216
|
+
this.videoUrl = videoUrl; // // 兼容非视频场景
|
|
167
217
|
// if (this.mediaInstance instanceof HTMLAudioElement) {
|
|
168
218
|
// this.mediaInstance.style.display = 'none'
|
|
169
219
|
// } else if (this.mediaInstance instanceof HTMLVideoElement) {
|
|
@@ -173,37 +223,48 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
173
223
|
this.freeze = true;
|
|
174
224
|
_context.next = 6;
|
|
175
225
|
return this.mediaInstance.pause();
|
|
226
|
+
|
|
176
227
|
case 6:
|
|
177
228
|
uniforms = this.material.uniforms;
|
|
178
229
|
this.mediaInstance.muted = true;
|
|
230
|
+
|
|
179
231
|
if (!(this.options.preload || this.options.preload === undefined || (0, _getMediaInfo.getMediaType)(this.videoUrl) === 'video')) {
|
|
180
232
|
_context.next = 18;
|
|
181
233
|
break;
|
|
182
234
|
}
|
|
235
|
+
|
|
183
236
|
_context.t1 = URL;
|
|
184
237
|
_context.next = 12;
|
|
185
238
|
return _Preloader.Preloader.blob(this.videoUrl);
|
|
239
|
+
|
|
186
240
|
case 12:
|
|
187
241
|
_context.t2 = _context.sent;
|
|
188
242
|
_context.next = 15;
|
|
189
243
|
return _context.t1.createObjectURL.call(_context.t1, _context.t2);
|
|
244
|
+
|
|
190
245
|
case 15:
|
|
191
246
|
_context.t0 = _context.sent;
|
|
192
247
|
_context.next = 19;
|
|
193
248
|
break;
|
|
249
|
+
|
|
194
250
|
case 18:
|
|
195
251
|
_context.t0 = this.videoUrl;
|
|
252
|
+
|
|
196
253
|
case 19:
|
|
197
254
|
this.mediaInstance.src = _context.t0;
|
|
198
255
|
this.mediaInstance.setAttribute('data-src', this.videoUrl);
|
|
256
|
+
|
|
199
257
|
onStart = function onStart() {
|
|
200
258
|
if (_this2.mediaInstance.currentTime === 0) return;
|
|
201
259
|
_this2.freeze = false;
|
|
202
260
|
_this2.mediaInstance.muted = false;
|
|
203
261
|
uniforms.enable.value = (0, _getMediaInfo.getMediaType)(_this2.videoUrl) ? 1 : 0;
|
|
262
|
+
|
|
204
263
|
_this2.mediaInstance.removeEventListener('timeupdate', onStart, false);
|
|
205
264
|
};
|
|
265
|
+
|
|
206
266
|
this.mediaInstance.addEventListener('timeupdate', onStart, false);
|
|
267
|
+
|
|
207
268
|
case 23:
|
|
208
269
|
case "end":
|
|
209
270
|
return _context.stop();
|
|
@@ -211,9 +272,11 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
211
272
|
}
|
|
212
273
|
}, _callee, this);
|
|
213
274
|
}));
|
|
275
|
+
|
|
214
276
|
function update(_x) {
|
|
215
277
|
return _update.apply(this, arguments);
|
|
216
278
|
}
|
|
279
|
+
|
|
217
280
|
return update;
|
|
218
281
|
}()
|
|
219
282
|
}, {
|
|
@@ -221,10 +284,11 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
221
284
|
value: function () {
|
|
222
285
|
var _play = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
223
286
|
var _this3 = this;
|
|
287
|
+
|
|
224
288
|
var videoUrl,
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
289
|
+
currentTime,
|
|
290
|
+
duration,
|
|
291
|
+
_args3 = arguments;
|
|
228
292
|
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
229
293
|
while (1) {
|
|
230
294
|
switch (_context3.prev = _context3.next) {
|
|
@@ -233,48 +297,62 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
233
297
|
currentTime = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : 0;
|
|
234
298
|
duration = _args3.length > 2 ? _args3[2] : undefined;
|
|
235
299
|
videoUrl = videoUrl || '';
|
|
300
|
+
|
|
236
301
|
if (!(duration && !videoUrl)) {
|
|
237
302
|
_context3.next = 10;
|
|
238
303
|
break;
|
|
239
304
|
}
|
|
305
|
+
|
|
240
306
|
if (this.currentTime) {
|
|
241
307
|
this.mediaInstance.currentTime = currentTime;
|
|
242
308
|
}
|
|
309
|
+
|
|
243
310
|
this.mediaInstance.duration = duration;
|
|
244
311
|
this.videoUrl = '';
|
|
245
312
|
this.mediaInstance.play();
|
|
246
313
|
return _context3.abrupt("return", true);
|
|
314
|
+
|
|
247
315
|
case 10:
|
|
248
316
|
if (videoUrl) {
|
|
249
317
|
_context3.next = 18;
|
|
250
318
|
break;
|
|
251
319
|
}
|
|
320
|
+
|
|
252
321
|
if (!this.videoUrl) {
|
|
253
322
|
_context3.next = 16;
|
|
254
323
|
break;
|
|
255
324
|
}
|
|
325
|
+
|
|
256
326
|
_context3.next = 14;
|
|
257
327
|
return this.mediaInstance.play();
|
|
328
|
+
|
|
258
329
|
case 14:
|
|
259
330
|
_context3.next = 17;
|
|
260
331
|
break;
|
|
332
|
+
|
|
261
333
|
case 16:
|
|
262
334
|
console.warn('警告:视频资源未初始化。');
|
|
335
|
+
|
|
263
336
|
case 17:
|
|
264
337
|
return _context3.abrupt("return", true);
|
|
338
|
+
|
|
265
339
|
case 18:
|
|
266
340
|
if (!(videoUrl === this.videoUrl)) {
|
|
267
341
|
_context3.next = 23;
|
|
268
342
|
break;
|
|
269
343
|
}
|
|
344
|
+
|
|
270
345
|
this.mediaInstance.currentTime = currentTime;
|
|
271
346
|
_context3.next = 22;
|
|
272
347
|
return this.mediaInstance.play();
|
|
348
|
+
|
|
273
349
|
case 22:
|
|
274
350
|
return _context3.abrupt("return", true);
|
|
351
|
+
|
|
275
352
|
case 23:
|
|
276
353
|
_context3.next = 25;
|
|
277
354
|
return this.update(videoUrl);
|
|
355
|
+
|
|
278
356
|
case 25:
|
|
279
357
|
this.mediaInstance.pause();
|
|
280
358
|
_context3.next = 28;
|
|
@@ -287,8 +365,10 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
287
365
|
_this3.mediaInstance.currentTime = currentTime;
|
|
288
366
|
_context2.next = 3;
|
|
289
367
|
return _this3.mediaInstance.play();
|
|
368
|
+
|
|
290
369
|
case 3:
|
|
291
370
|
resolve(true);
|
|
371
|
+
|
|
292
372
|
case 4:
|
|
293
373
|
case "end":
|
|
294
374
|
return _context2.stop();
|
|
@@ -297,8 +377,10 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
297
377
|
}, _callee2);
|
|
298
378
|
})), 20);
|
|
299
379
|
});
|
|
380
|
+
|
|
300
381
|
case 28:
|
|
301
382
|
return _context3.abrupt("return", _context3.sent);
|
|
383
|
+
|
|
302
384
|
case 29:
|
|
303
385
|
case "end":
|
|
304
386
|
return _context3.stop();
|
|
@@ -306,14 +388,17 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
306
388
|
}
|
|
307
389
|
}, _callee3, this);
|
|
308
390
|
}));
|
|
391
|
+
|
|
309
392
|
function play() {
|
|
310
393
|
return _play.apply(this, arguments);
|
|
311
394
|
}
|
|
395
|
+
|
|
312
396
|
return play;
|
|
313
397
|
}()
|
|
314
398
|
/**
|
|
315
399
|
* 秒转成毫秒,保障精准度
|
|
316
400
|
*/
|
|
401
|
+
|
|
317
402
|
}, {
|
|
318
403
|
key: "currentTime",
|
|
319
404
|
get: function get() {
|
|
@@ -324,10 +409,12 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
324
409
|
value: function dispose() {
|
|
325
410
|
// 销毁事件监听
|
|
326
411
|
this.$removeEventListener();
|
|
412
|
+
|
|
327
413
|
if (cacheInstance.audioInstance) {
|
|
328
414
|
document.body.removeChild(cacheInstance.audioInstance);
|
|
329
415
|
cacheInstance.audioInstance = undefined;
|
|
330
416
|
}
|
|
417
|
+
|
|
331
418
|
if (cacheInstance.videoInstance) {
|
|
332
419
|
document.body.removeChild(cacheInstance.videoInstance);
|
|
333
420
|
cacheInstance.videoInstance = undefined;
|
|
@@ -336,4 +423,5 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
336
423
|
}]);
|
|
337
424
|
return VideoAgentMesh;
|
|
338
425
|
}(THREE.Mesh);
|
|
426
|
+
|
|
339
427
|
exports.VideoAgentMesh = VideoAgentMesh;
|
|
@@ -1,21 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
8
10
|
exports.VideoAgentScene = void 0;
|
|
11
|
+
|
|
9
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
10
14
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
+
|
|
11
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
|
|
12
18
|
var THREE = _interopRequireWildcard(require("three"));
|
|
19
|
+
|
|
13
20
|
var _addResizeListener = require("../../../shared-utils/addResizeListener");
|
|
21
|
+
|
|
14
22
|
var _VideoAgentMesh = require("./VideoAgentMesh");
|
|
23
|
+
|
|
15
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
|
+
|
|
16
26
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
|
+
|
|
17
28
|
var VideoAgentScene = /*#__PURE__*/(0, _createClass2["default"])(function VideoAgentScene(container, options) {
|
|
18
29
|
var _this = this;
|
|
30
|
+
|
|
19
31
|
(0, _classCallCheck2["default"])(this, VideoAgentScene);
|
|
20
32
|
(0, _defineProperty2["default"])(this, "scene", new THREE.Scene());
|
|
21
33
|
(0, _defineProperty2["default"])(this, "camera", new THREE.OrthographicCamera(-240, 240, 135, -135));
|
|
@@ -28,18 +40,19 @@ var VideoAgentScene = /*#__PURE__*/(0, _createClass2["default"])(function VideoA
|
|
|
28
40
|
if (!(_this.videoAgentMesh.paused || _this.videoAgentMesh.freeze) && _this.videoAgentMesh.currentTime > 1000) {
|
|
29
41
|
_this.renderer.render(_this.scene, _this.camera);
|
|
30
42
|
}
|
|
43
|
+
|
|
31
44
|
requestAnimationFrame(_this.run);
|
|
32
45
|
});
|
|
33
46
|
(0, _defineProperty2["default"])(this, "dispose", function () {
|
|
34
47
|
var _this$videoAgentMesh;
|
|
48
|
+
|
|
35
49
|
(_this$videoAgentMesh = _this.videoAgentMesh) === null || _this$videoAgentMesh === void 0 ? void 0 : _this$videoAgentMesh.dispose();
|
|
50
|
+
|
|
36
51
|
_this.disposers.forEach(function (disposer) {
|
|
37
52
|
return disposer === null || disposer === void 0 ? void 0 : disposer();
|
|
38
53
|
});
|
|
39
54
|
});
|
|
40
|
-
this.videoAgentMesh = new _VideoAgentMesh.VideoAgentMesh(480, 270, 1, 1, options);
|
|
41
|
-
|
|
42
|
-
// const needRender = getMediaType(this.videoAgentMesh.videoUrl) === 'video'
|
|
55
|
+
this.videoAgentMesh = new _VideoAgentMesh.VideoAgentMesh(480, 270, 1, 1, options); // const needRender = getMediaType(this.videoAgentMesh.videoUrl) === 'video'
|
|
43
56
|
|
|
44
57
|
if (container) {
|
|
45
58
|
this.camera.position.set(0, 0, 10);
|
|
@@ -48,6 +61,7 @@ var VideoAgentScene = /*#__PURE__*/(0, _createClass2["default"])(function VideoA
|
|
|
48
61
|
domElement.classList.add('VideoAgent-canvas');
|
|
49
62
|
var dispose = (0, _addResizeListener.addResizeListener)(container, function (width, height) {
|
|
50
63
|
_this.renderer.setSize(width * window.devicePixelRatio, height * window.devicePixelRatio);
|
|
64
|
+
|
|
51
65
|
domElement.style.width = "".concat(width, "px");
|
|
52
66
|
domElement.style.height = "".concat(height, "px");
|
|
53
67
|
});
|
|
@@ -1,40 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
8
10
|
exports.VideoAgent = VideoAgent;
|
|
11
|
+
|
|
9
12
|
var React = _interopRequireWildcard(require("react"));
|
|
13
|
+
|
|
10
14
|
var _hooks = require("../../hooks");
|
|
15
|
+
|
|
11
16
|
var _VideoAgentScene = require("./VideoAgentScene");
|
|
17
|
+
|
|
12
18
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
19
|
+
|
|
13
20
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
+
|
|
14
22
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
+
|
|
15
24
|
function VideoAgent(props) {
|
|
16
25
|
var _controller$avatar2;
|
|
26
|
+
|
|
17
27
|
var ref = React.useRef(null);
|
|
18
28
|
var controller = (0, _hooks.useController)();
|
|
19
29
|
var showAvatar = React.useMemo(function () {
|
|
20
30
|
var _controller$avatar;
|
|
31
|
+
|
|
21
32
|
return ((_controller$avatar = controller.avatar) === null || _controller$avatar === void 0 ? void 0 : _controller$avatar.url) && controller.avatar.force === true;
|
|
22
33
|
}, [controller.avatar]);
|
|
23
34
|
var showVideoAgent = React.useMemo(function () {
|
|
24
35
|
var _controller$videoAgen;
|
|
36
|
+
|
|
25
37
|
if (showAvatar) return false;
|
|
26
38
|
return ((_controller$videoAgen = controller.videoAgentScene) === null || _controller$videoAgen === void 0 ? void 0 : _controller$videoAgen.videoAgentMesh.mediaInstance) instanceof HTMLVideoElement;
|
|
27
39
|
}, [controller.videoAgentScene, showAvatar]);
|
|
28
40
|
React.useEffect(function () {
|
|
29
41
|
if (!ref.current) throw new Error('React 渲染异常,请稍后重试 ...');
|
|
42
|
+
|
|
30
43
|
if (controller.videoAgentScene) {
|
|
31
44
|
console.warn('VideoAgentScene" 重复初始化,已被过滤');
|
|
32
45
|
return;
|
|
33
46
|
}
|
|
47
|
+
|
|
34
48
|
var videoAgentScene = new _VideoAgentScene.VideoAgentScene(ref.current, props.options);
|
|
35
49
|
controller.videoAgentScene = videoAgentScene;
|
|
36
50
|
return function () {
|
|
37
51
|
var _controller$videoAgen2;
|
|
52
|
+
|
|
38
53
|
controller.dispose();
|
|
39
54
|
(_controller$videoAgen2 = controller.videoAgentScene) === null || _controller$videoAgen2 === void 0 ? void 0 : _controller$videoAgen2.dispose();
|
|
40
55
|
};
|
|
@@ -51,6 +66,7 @@ function VideoAgent(props) {
|
|
|
51
66
|
src: (_controller$avatar2 = controller.avatar) === null || _controller$avatar2 === void 0 ? void 0 : _controller$avatar2.url,
|
|
52
67
|
onClick: function onClick() {
|
|
53
68
|
var _props$onClick;
|
|
69
|
+
|
|
54
70
|
return (_props$onClick = props.onClick) === null || _props$onClick === void 0 ? void 0 : _props$onClick.call(props);
|
|
55
71
|
}
|
|
56
72
|
}))), /*#__PURE__*/React.createElement("div", {
|
|
@@ -68,6 +84,7 @@ function VideoAgent(props) {
|
|
|
68
84
|
className: "VideoAgent-play",
|
|
69
85
|
onClick: function onClick() {
|
|
70
86
|
var _props$onClick2;
|
|
87
|
+
|
|
71
88
|
return (_props$onClick2 = props.onClick) === null || _props$onClick2 === void 0 ? void 0 : _props$onClick2.call(props);
|
|
72
89
|
}
|
|
73
90
|
}))))));
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
8
10
|
exports.Wave = Wave;
|
|
11
|
+
|
|
9
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
10
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
11
16
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
+
|
|
12
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
+
|
|
13
20
|
var defaultPrefix = 'https://vr-public.realsee-cdn.cn/release/static/image/release/';
|
|
14
21
|
var WAVES = {
|
|
15
22
|
single: {
|
|
@@ -59,16 +66,21 @@ var isSafari = /safari/i.test(userAgent) && !/chrome/i.test(userAgent) && /versi
|
|
|
59
66
|
var isMicroMessenger = /microMessenger/i.test(userAgent);
|
|
60
67
|
var canPlayHevc = isAppleDevice || isSafari;
|
|
61
68
|
var canPlayVp9 = typeof MediaSource !== 'undefined' && MediaSource.isTypeSupported("video/webm; codecs=vp9");
|
|
69
|
+
|
|
62
70
|
function Wave(props) {
|
|
63
71
|
var wave = _react["default"].useMemo(function () {
|
|
64
72
|
var _props$appearance;
|
|
73
|
+
|
|
65
74
|
var appearance = (_props$appearance = props === null || props === void 0 ? void 0 : props.appearance) !== null && _props$appearance !== void 0 ? _props$appearance : 'solid';
|
|
66
75
|
return WAVES[appearance];
|
|
67
76
|
}, [props === null || props === void 0 ? void 0 : props.appearance]);
|
|
77
|
+
|
|
68
78
|
var heightWidthRatio = _react["default"].useMemo(function () {
|
|
69
79
|
return wave.height / wave.width;
|
|
70
80
|
}, [wave]);
|
|
81
|
+
|
|
71
82
|
var content = null;
|
|
83
|
+
|
|
72
84
|
if (isMicroMessenger) {
|
|
73
85
|
content = /*#__PURE__*/_react["default"].createElement(KeyframeWaveContent, {
|
|
74
86
|
wave: wave,
|
|
@@ -92,6 +104,7 @@ function Wave(props) {
|
|
|
92
104
|
prefix: props === null || props === void 0 ? void 0 : props.staticPrefix
|
|
93
105
|
});
|
|
94
106
|
}
|
|
107
|
+
|
|
95
108
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
96
109
|
className: "vreo-wave",
|
|
97
110
|
onClick: props === null || props === void 0 ? void 0 : props.onClick
|
|
@@ -111,20 +124,24 @@ function Wave(props) {
|
|
|
111
124
|
}
|
|
112
125
|
}, content)));
|
|
113
126
|
}
|
|
127
|
+
|
|
114
128
|
var VideoWaveContent = function VideoWaveContent(_ref) {
|
|
115
129
|
var wave = _ref.wave,
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
130
|
+
format = _ref.format,
|
|
131
|
+
_ref$prefix = _ref.prefix,
|
|
132
|
+
prefix = _ref$prefix === void 0 ? defaultPrefix : _ref$prefix;
|
|
119
133
|
var videoRef = (0, _react.useRef)(null);
|
|
134
|
+
|
|
120
135
|
var _useState = (0, _react.useState)(false),
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
136
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
137
|
+
canPlay = _useState2[0],
|
|
138
|
+
setCanPlay = _useState2[1];
|
|
139
|
+
|
|
124
140
|
var _useState3 = (0, _react.useState)(false),
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
141
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
142
|
+
errored = _useState4[0],
|
|
143
|
+
setErrored = _useState4[1];
|
|
144
|
+
|
|
128
145
|
var source = prefix + wave[format];
|
|
129
146
|
(0, _react.useEffect)(function () {
|
|
130
147
|
setCanPlay(false);
|
|
@@ -133,17 +150,20 @@ var VideoWaveContent = function VideoWaveContent(_ref) {
|
|
|
133
150
|
if (videoRef.current) {
|
|
134
151
|
videoRef.current.play();
|
|
135
152
|
}
|
|
153
|
+
|
|
136
154
|
setCanPlay(true);
|
|
137
155
|
}, []);
|
|
138
156
|
var errorHandler = (0, _react.useCallback)(function () {
|
|
139
157
|
setErrored(true);
|
|
140
158
|
}, []);
|
|
159
|
+
|
|
141
160
|
if (errored) {
|
|
142
161
|
return /*#__PURE__*/_react["default"].createElement(KeyframeWaveContent, {
|
|
143
162
|
wave: wave,
|
|
144
163
|
prefix: prefix
|
|
145
164
|
});
|
|
146
165
|
}
|
|
166
|
+
|
|
147
167
|
return /*#__PURE__*/_react["default"].createElement("video", {
|
|
148
168
|
style: {
|
|
149
169
|
opacity: canPlay ? 1 : 0
|
|
@@ -161,10 +181,11 @@ var VideoWaveContent = function VideoWaveContent(_ref) {
|
|
|
161
181
|
src: source
|
|
162
182
|
});
|
|
163
183
|
};
|
|
184
|
+
|
|
164
185
|
var KeyframeWaveContent = function KeyframeWaveContent(_ref2) {
|
|
165
186
|
var wave = _ref2.wave,
|
|
166
|
-
|
|
167
|
-
|
|
187
|
+
_ref2$prefix = _ref2.prefix,
|
|
188
|
+
prefix = _ref2$prefix === void 0 ? defaultPrefix : _ref2$prefix;
|
|
168
189
|
var source = prefix + wave.png;
|
|
169
190
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
170
191
|
style: {
|