@realsee/vreo 1.1.0-dev.1 → 1.2.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/Player/App.js CHANGED
@@ -44,7 +44,6 @@ var AppView = (0, _mobxReact.observer)(function (_ref) {
44
44
  controller.configs.onAvatarClick();
45
45
  return;
46
46
  }
47
- // 默认点击逻辑
48
47
  if (controller.playing) {
49
48
  controller.setPlaying(false);
50
49
  } else {
@@ -133,19 +133,14 @@ var Player = /*#__PURE__*/function (_Subscribe) {
133
133
  if (force) {
134
134
  vreoUnit = JSON.parse(JSON.stringify(vreoUnit));
135
135
  }
136
- if (this.controller.visible) {
137
- _context.next = 10;
138
- break;
139
- }
140
- this.controller.setVisible(true);
141
- // 延迟 500ms 规避跟 DOM 动画冲突
142
- _context.next = 10;
143
- return new Promise(function (resolve) {
144
- setTimeout(function () {
145
- return resolve(true);
146
- }, 500);
147
- });
148
- case 10:
136
+ // if (!this.controller.visible) {
137
+ // this.controller.setVisible(true)
138
+ // // 延迟 500ms 规避跟 DOM 动画冲突
139
+ // await new Promise((resolve) => {
140
+ // setTimeout(() => resolve(true), 500)
141
+ // })
142
+ // }
143
+
149
144
  if (this.controller.stopInterval) {
150
145
  this.controller.stopInterval();
151
146
  this.controller.stopInterval = undefined;
@@ -161,7 +156,7 @@ var Player = /*#__PURE__*/function (_Subscribe) {
161
156
 
162
157
  // 预载数据中的点位
163
158
  if (!(preload || preload === undefined && this.configs.autoPreload)) {
164
- _context.next = 24;
159
+ _context.next = 20;
165
160
  break;
166
161
  }
167
162
  panoIndexMap = vreoUnit.keyframes.filter(function (vreoKeyframe) {
@@ -182,18 +177,18 @@ var Player = /*#__PURE__*/function (_Subscribe) {
182
177
  }, {});
183
178
  panoIndexes = Object.keys(panoIndexMap);
184
179
  i = 0;
185
- case 18:
180
+ case 14:
186
181
  if (!(i < panoIndexes.length)) {
187
- _context.next = 24;
182
+ _context.next = 20;
188
183
  break;
189
184
  }
190
- _context.next = 21;
185
+ _context.next = 17;
191
186
  return this.$five.preloadPano(Number(panoIndexes[i]));
192
- case 21:
187
+ case 17:
193
188
  i++;
194
- _context.next = 18;
189
+ _context.next = 14;
195
190
  break;
196
- case 24:
191
+ case 20:
197
192
  // 新数据载入就绪
198
193
  this.emit('loaded', vreoUnit);
199
194
  this.controller.emit('loaded', vreoUnit);
@@ -201,12 +196,12 @@ var Player = /*#__PURE__*/function (_Subscribe) {
201
196
  this.controller.videoAgentScene.videoAgentMesh.mediaInstance.currentTime = currentTime / 1000;
202
197
  }
203
198
  this.controller.setAvatar(vreoUnit.video.avatar);
204
- _context.next = 30;
199
+ _context.next = 26;
205
200
  return (0, _Audio.waitForBlankAudioGenerated)();
206
- case 30:
207
- _context.next = 32;
201
+ case 26:
202
+ _context.next = 28;
208
203
  return (_this$controller$vide2 = this.controller.videoAgentScene) === null || _this$controller$vide2 === void 0 ? void 0 : _this$controller$vide2.videoAgentMesh.play(vreoUnit.video.url, currentTime / 1000, vreoUnit.video.duration);
209
- case 32:
204
+ case 28:
210
205
  this.controller.setEnded(false);
211
206
  this.play();
212
207
  this.controller.run(function (type, keyframe) {
@@ -214,7 +209,7 @@ var Player = /*#__PURE__*/function (_Subscribe) {
214
209
  });
215
210
  this.controller.setLoading(false);
216
211
  return _context.abrupt("return", true);
217
- case 37:
212
+ case 33:
218
213
  case "end":
219
214
  return _context.stop();
220
215
  }
@@ -1,2 +1,3 @@
1
1
  /// <reference types="react" />
2
+ export declare const isWX: boolean;
2
3
  export declare function InfoPanel(): JSX.Element;
@@ -5,11 +5,24 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.InfoPanel = InfoPanel;
8
+ exports.isWX = void 0;
8
9
  var React = _interopRequireWildcard(require("react"));
9
10
  var _VreoUnit = require("../../../../typings/VreoUnit");
10
11
  var _hooks = require("../../../hooks");
11
12
  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); }
12
13
  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; }
14
+ var isWX = navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1;
15
+ exports.isWX = isWX;
16
+ var videoElement = document.createElement('video');
17
+ if (isWX) {
18
+ videoElement.playsInline = true;
19
+ videoElement.classList.add('vreo-infoPanelVideo');
20
+ document.body.addEventListener('click', function () {
21
+ return videoElement.play();
22
+ }, {
23
+ once: true
24
+ });
25
+ }
13
26
  function InfoPanelImg(_ref) {
14
27
  var url = _ref.url,
15
28
  children = _ref.children;
@@ -29,6 +42,16 @@ function InfoPanelImg(_ref) {
29
42
  function InfoPanelVideo(_ref2) {
30
43
  var url = _ref2.url,
31
44
  children = _ref2.children;
45
+ var videoWrapperRef = React.useRef(null);
46
+ React.useEffect(function () {
47
+ if (!isWX) return;
48
+ if (!videoWrapperRef.current) return;
49
+ videoElement.src = url;
50
+ if (!videoWrapperRef.current.contains(videoElement)) {
51
+ videoWrapperRef.current.appendChild(videoElement);
52
+ }
53
+ videoElement.play();
54
+ }, [videoWrapperRef.current]);
32
55
  return /*#__PURE__*/React.createElement("div", {
33
56
  className: "vreo-infoPanel-container"
34
57
  }, /*#__PURE__*/React.createElement("div", {
@@ -38,8 +61,9 @@ function InfoPanelVideo(_ref2) {
38
61
  }, /*#__PURE__*/React.createElement("div", {
39
62
  className: "vreo-infoPanel-inner"
40
63
  }, children, /*#__PURE__*/React.createElement("div", {
41
- className: "vreo-infoPanelVideo"
42
- }, /*#__PURE__*/React.createElement("video", {
64
+ className: "vreo-infoPanelVideo",
65
+ ref: videoWrapperRef
66
+ }, !isWX && /*#__PURE__*/React.createElement("video", {
43
67
  playsInline: true,
44
68
  autoPlay: true,
45
69
  className: "vreo-infoPanelVideo",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@realsee/vreo",
3
- "version": "1.1.0-dev.1",
3
+ "version": "1.2.0-alpha.0",
4
4
  "description": "Vreo (VR Video 缩写) 是基于如视三维渲染引擎 Five 和 用户界面构建库 React 实现的如视 3D 空间剧本播放器。",
5
5
  "keywords": [
6
6
  "realsee",