@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,17 +1,26 @@
|
|
|
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.ModelTVVideoPlugin = void 0;
|
|
11
|
+
|
|
9
12
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
13
|
+
|
|
10
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
11
16
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
17
|
+
|
|
12
18
|
var THREE = _interopRequireWildcard(require("three"));
|
|
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
|
var ModelTVVideoPlugin = function ModelTVVideoPlugin(five, _ref) {
|
|
16
25
|
var videoElement = _ref.videoElement;
|
|
17
26
|
var state = {
|
|
@@ -22,15 +31,18 @@ var ModelTVVideoPlugin = function ModelTVVideoPlugin(five, _ref) {
|
|
|
22
31
|
enabled: false,
|
|
23
32
|
videoElement: videoElement
|
|
24
33
|
};
|
|
34
|
+
|
|
25
35
|
var setMuted = function setMuted(muted) {
|
|
26
36
|
if (state.videoTexture) {
|
|
27
37
|
state.videoTexture.image.muted = muted;
|
|
28
38
|
state.videoTexture.image.play();
|
|
29
39
|
}
|
|
30
40
|
};
|
|
41
|
+
|
|
31
42
|
var getMuted = function getMuted() {
|
|
32
43
|
if (state.videoTexture) return state.videoTexture.image.muted;else return true;
|
|
33
44
|
};
|
|
45
|
+
|
|
34
46
|
var enable = function enable() {
|
|
35
47
|
if (state.enabled) return;
|
|
36
48
|
if (!state.videoTexture) return;
|
|
@@ -39,10 +51,13 @@ var ModelTVVideoPlugin = function ModelTVVideoPlugin(five, _ref) {
|
|
|
39
51
|
state.videoMeshes.forEach(function (mesh) {
|
|
40
52
|
return five.scene.add(mesh);
|
|
41
53
|
});
|
|
54
|
+
|
|
42
55
|
var play = function play() {
|
|
43
56
|
if (!state.videoTexture) return;
|
|
57
|
+
|
|
44
58
|
var timeupdate = function timeupdate() {
|
|
45
59
|
var _state$videoTexture;
|
|
60
|
+
|
|
46
61
|
if (!state.videoTexture) return;
|
|
47
62
|
(_state$videoTexture = state.videoTexture) === null || _state$videoTexture === void 0 ? void 0 : _state$videoTexture.image.removeEventListener('timeupdate', timeupdate);
|
|
48
63
|
state.videoTextureEnabled = true;
|
|
@@ -51,17 +66,21 @@ var ModelTVVideoPlugin = function ModelTVVideoPlugin(five, _ref) {
|
|
|
51
66
|
});
|
|
52
67
|
five.needsRender = true;
|
|
53
68
|
};
|
|
69
|
+
|
|
54
70
|
state.videoTexture.image.addEventListener('timeupdate', timeupdate);
|
|
71
|
+
|
|
55
72
|
if (state.videoTexture && state.videoMeshes.length) {
|
|
56
73
|
state.videoTexture.image.play();
|
|
57
74
|
}
|
|
58
75
|
};
|
|
76
|
+
|
|
59
77
|
if (five.model.loaded) play();else {
|
|
60
78
|
return five.once('modelLoaded', function () {
|
|
61
79
|
return play();
|
|
62
80
|
});
|
|
63
81
|
}
|
|
64
82
|
};
|
|
83
|
+
|
|
65
84
|
var disable = function disable() {
|
|
66
85
|
if (!state.enabled) return;
|
|
67
86
|
state.enabled = false;
|
|
@@ -74,36 +93,47 @@ var ModelTVVideoPlugin = function ModelTVVideoPlugin(five, _ref) {
|
|
|
74
93
|
state.videoMeshes = [];
|
|
75
94
|
five.needsRender = true;
|
|
76
95
|
};
|
|
96
|
+
|
|
77
97
|
var createPanoVideoMeshes = function createPanoVideoMeshes() {
|
|
78
98
|
return state.rectPoints.map(function (points, index) {
|
|
79
99
|
var geometry = new THREE.BufferGeometry();
|
|
80
100
|
var segments = 128;
|
|
81
101
|
var verticesArray = [];
|
|
82
102
|
verticesArray.push(points[0].x, points[0].y, points[0].z);
|
|
103
|
+
|
|
83
104
|
for (var i = 1; i < segments; i++) {
|
|
84
105
|
verticesArray.push(points[0].x + (points[1].x - points[0].x) * i / segments, points[0].y + (points[1].y - points[0].y) * i / segments, points[0].z + (points[1].z - points[0].z) * i / segments);
|
|
85
106
|
}
|
|
107
|
+
|
|
86
108
|
verticesArray.push(points[1].x, points[1].y, points[1].z);
|
|
87
109
|
verticesArray.push(points[2].x, points[2].y, points[2].z);
|
|
110
|
+
|
|
88
111
|
for (var _i = 1; _i < segments; _i++) {
|
|
89
112
|
verticesArray.push(points[2].x + (points[3].x - points[2].x) * _i / segments, points[2].y + (points[3].y - points[2].y) * _i / segments, points[2].z + (points[3].z - points[2].z) * _i / segments);
|
|
90
113
|
}
|
|
114
|
+
|
|
91
115
|
verticesArray.push(points[3].x, points[3].y, points[3].z);
|
|
92
116
|
var uvArray = [];
|
|
93
117
|
uvArray.push(0, 1);
|
|
118
|
+
|
|
94
119
|
for (var _i2 = 1; _i2 < segments; _i2++) {
|
|
95
120
|
uvArray.push(0, 1 - _i2 / segments);
|
|
96
121
|
}
|
|
122
|
+
|
|
97
123
|
uvArray.push(0, 0);
|
|
98
124
|
uvArray.push(1, 0);
|
|
125
|
+
|
|
99
126
|
for (var _i3 = 1; _i3 < segments; _i3++) {
|
|
100
127
|
uvArray.push(1, _i3 / segments);
|
|
101
128
|
}
|
|
129
|
+
|
|
102
130
|
uvArray.push(1, 1);
|
|
103
131
|
var indicesArray = [];
|
|
132
|
+
|
|
104
133
|
for (var _i4 = 0; _i4 < segments; _i4++) {
|
|
105
134
|
indicesArray.push(_i4, _i4 + 1, segments * 2 - _i4, _i4, segments * 2 - _i4, segments * 2 + 1 - _i4);
|
|
106
135
|
}
|
|
136
|
+
|
|
107
137
|
geometry.setAttribute('position', new THREE.BufferAttribute(new Float32Array(verticesArray), 3));
|
|
108
138
|
geometry.setAttribute('uv', new THREE.BufferAttribute(new Float32Array(uvArray), 2));
|
|
109
139
|
geometry.setIndex(new THREE.BufferAttribute(new Uint32Array(indicesArray), 1));
|
|
@@ -117,6 +147,7 @@ var ModelTVVideoPlugin = function ModelTVVideoPlugin(five, _ref) {
|
|
|
117
147
|
return mesh;
|
|
118
148
|
});
|
|
119
149
|
};
|
|
150
|
+
|
|
120
151
|
var getImageTexture = function getImageTexture(source) {
|
|
121
152
|
var texture = new THREE.TextureLoader().load(source);
|
|
122
153
|
texture.minFilter = THREE.LinearFilter;
|
|
@@ -124,9 +155,11 @@ var ModelTVVideoPlugin = function ModelTVVideoPlugin(five, _ref) {
|
|
|
124
155
|
texture.format = THREE.RGBFormat;
|
|
125
156
|
return texture;
|
|
126
157
|
};
|
|
158
|
+
|
|
127
159
|
var getVideoTexture = function getVideoTexture(source, video) {
|
|
128
160
|
return new Promise(function (resolve, reject) {
|
|
129
161
|
var xhr = new XMLHttpRequest();
|
|
162
|
+
|
|
130
163
|
xhr.onreadystatechange = function () {
|
|
131
164
|
if (xhr.readyState == 4) {
|
|
132
165
|
if (xhr.status == 200) {
|
|
@@ -150,14 +183,17 @@ var ModelTVVideoPlugin = function ModelTVVideoPlugin(five, _ref) {
|
|
|
150
183
|
}
|
|
151
184
|
}
|
|
152
185
|
};
|
|
186
|
+
|
|
153
187
|
xhr.onerror = function (error) {
|
|
154
188
|
return reject(error);
|
|
155
189
|
};
|
|
190
|
+
|
|
156
191
|
xhr.open('GET', source);
|
|
157
192
|
xhr.responseType = 'blob';
|
|
158
193
|
xhr.send();
|
|
159
194
|
});
|
|
160
195
|
};
|
|
196
|
+
|
|
161
197
|
var load = /*#__PURE__*/function () {
|
|
162
198
|
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(data, videoElement) {
|
|
163
199
|
var video_src, video_poster_src, points;
|
|
@@ -170,21 +206,25 @@ var ModelTVVideoPlugin = function ModelTVVideoPlugin(five, _ref) {
|
|
|
170
206
|
state.rectPoints = points.map(function (items) {
|
|
171
207
|
return items.map(function (_ref3) {
|
|
172
208
|
var x = _ref3.x,
|
|
173
|
-
|
|
174
|
-
|
|
209
|
+
y = _ref3.y,
|
|
210
|
+
z = _ref3.z;
|
|
175
211
|
return new THREE.Vector3(x, y, z);
|
|
176
212
|
});
|
|
177
213
|
});
|
|
178
214
|
state.imageTexture = getImageTexture(video_poster_src);
|
|
215
|
+
|
|
179
216
|
if (videoElement) {
|
|
180
217
|
state.videoElement = videoElement;
|
|
181
218
|
}
|
|
219
|
+
|
|
182
220
|
_context.next = 7;
|
|
183
221
|
return getVideoTexture(state.videoSource, state.videoElement);
|
|
222
|
+
|
|
184
223
|
case 7:
|
|
185
224
|
state.videoTexture = _context.sent;
|
|
186
225
|
state.enabled = !!data.enable;
|
|
187
226
|
if (state.enabled) enable();
|
|
227
|
+
|
|
188
228
|
case 10:
|
|
189
229
|
case "end":
|
|
190
230
|
return _context.stop();
|
|
@@ -192,18 +232,22 @@ var ModelTVVideoPlugin = function ModelTVVideoPlugin(five, _ref) {
|
|
|
192
232
|
}
|
|
193
233
|
}, _callee);
|
|
194
234
|
}));
|
|
235
|
+
|
|
195
236
|
return function load(_x, _x2) {
|
|
196
237
|
return _ref2.apply(this, arguments);
|
|
197
238
|
};
|
|
198
239
|
}();
|
|
240
|
+
|
|
199
241
|
five.on('modeChange', function () {
|
|
200
242
|
return setMuted(true);
|
|
201
243
|
});
|
|
202
244
|
five.on('wantsTapGesture', function (raycaster) {
|
|
203
245
|
if (!state.enabled) return;
|
|
246
|
+
|
|
204
247
|
var _raycaster$intersectO = raycaster.intersectObjects(five.scene.children, true),
|
|
205
|
-
|
|
206
|
-
|
|
248
|
+
_raycaster$intersectO2 = (0, _slicedToArray2["default"])(_raycaster$intersectO, 1),
|
|
249
|
+
intersect = _raycaster$intersectO2[0];
|
|
250
|
+
|
|
207
251
|
if (!!intersect && /^video/.test(intersect.object.name)) {
|
|
208
252
|
if (state.videoTexture) setMuted(!state.videoTexture.image.muted);
|
|
209
253
|
return false;
|
|
@@ -222,9 +266,11 @@ var ModelTVVideoPlugin = function ModelTVVideoPlugin(five, _ref) {
|
|
|
222
266
|
}).filter(function (vector) {
|
|
223
267
|
vector = vector.clone().sub(cameraPosition).normalize();
|
|
224
268
|
var raycaster = new THREE.Raycaster(cameraPosition, vector);
|
|
269
|
+
|
|
225
270
|
var _raycaster$intersectO3 = raycaster.intersectObjects(five.scene.children, true),
|
|
226
|
-
|
|
227
|
-
|
|
271
|
+
_raycaster$intersectO4 = (0, _slicedToArray2["default"])(_raycaster$intersectO3, 1),
|
|
272
|
+
intersect = _raycaster$intersectO4[0];
|
|
273
|
+
|
|
228
274
|
return !!intersect && /^video/.test(intersect.object.name);
|
|
229
275
|
}).length >= 2;
|
|
230
276
|
});
|
|
@@ -232,8 +278,7 @@ var ModelTVVideoPlugin = function ModelTVVideoPlugin(five, _ref) {
|
|
|
232
278
|
});
|
|
233
279
|
five.on('renderFrame', function () {
|
|
234
280
|
state.videoMeshes.forEach(function (meshes) {
|
|
235
|
-
if (meshes)
|
|
236
|
-
//@ts-ignore
|
|
281
|
+
if (meshes) //@ts-ignore
|
|
237
282
|
meshes.needsRender = true;
|
|
238
283
|
});
|
|
239
284
|
});
|
|
@@ -248,4 +293,5 @@ var ModelTVVideoPlugin = function ModelTVVideoPlugin(five, _ref) {
|
|
|
248
293
|
load: load
|
|
249
294
|
};
|
|
250
295
|
};
|
|
296
|
+
|
|
251
297
|
exports.ModelTVVideoPlugin = ModelTVVideoPlugin;
|
package/lib/index.js
CHANGED
package/lib/react/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
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
|
});
|
|
@@ -9,25 +11,36 @@ exports.VreoProvider = void 0;
|
|
|
9
11
|
exports.useVreoAction = useVreoAction;
|
|
10
12
|
exports.useVreoEventCallback = useVreoEventCallback;
|
|
11
13
|
exports.useVreoPausedState = useVreoPausedState;
|
|
14
|
+
|
|
12
15
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
16
|
+
|
|
13
17
|
var _react = require("@realsee/five/react");
|
|
18
|
+
|
|
14
19
|
var React = _interopRequireWildcard(require("react"));
|
|
20
|
+
|
|
15
21
|
var _Player = require("../Player");
|
|
22
|
+
|
|
16
23
|
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); }
|
|
24
|
+
|
|
17
25
|
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; }
|
|
26
|
+
|
|
18
27
|
var VreoContext = /*#__PURE__*/React.createContext(null);
|
|
28
|
+
|
|
19
29
|
var VreoProvider = function VreoProvider(props) {
|
|
20
30
|
var five = (0, _react.unsafe__useFiveInstance)();
|
|
31
|
+
|
|
21
32
|
var _React$useState = React.useState(null),
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
33
|
+
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
|
34
|
+
player = _React$useState2[0],
|
|
35
|
+
setPlayer = _React$useState2[1];
|
|
36
|
+
|
|
25
37
|
var playerRef = React.useRef(null);
|
|
26
38
|
React.useEffect(function () {
|
|
27
39
|
playerRef.current = new _Player.Player(five, props.configs || {});
|
|
28
40
|
setPlayer(playerRef.current);
|
|
29
41
|
return function () {
|
|
30
42
|
var _playerRef$current;
|
|
43
|
+
|
|
31
44
|
(_playerRef$current = playerRef.current) === null || _playerRef$current === void 0 ? void 0 : _playerRef$current.dispose();
|
|
32
45
|
};
|
|
33
46
|
}, []);
|
|
@@ -36,19 +49,23 @@ var VreoProvider = function VreoProvider(props) {
|
|
|
36
49
|
value: player
|
|
37
50
|
}, props.children);
|
|
38
51
|
};
|
|
52
|
+
|
|
39
53
|
exports.VreoProvider = VreoProvider;
|
|
54
|
+
|
|
40
55
|
function useVreoInstance() {
|
|
41
56
|
var context = React.useContext(VreoContext);
|
|
57
|
+
|
|
42
58
|
if (!context) {
|
|
43
59
|
throw new Error('VreoProvider never found.');
|
|
44
60
|
}
|
|
61
|
+
|
|
45
62
|
return context;
|
|
46
63
|
}
|
|
47
|
-
|
|
48
64
|
/**
|
|
49
65
|
* VreoPlayer 命令集合。
|
|
50
66
|
*/
|
|
51
67
|
|
|
68
|
+
|
|
52
69
|
function useVreoAction() {
|
|
53
70
|
var player = useVreoInstance();
|
|
54
71
|
var load = React.useCallback(function (vreoUnit, currentTime) {
|
|
@@ -78,12 +95,15 @@ function useVreoAction() {
|
|
|
78
95
|
dispose: dispose
|
|
79
96
|
};
|
|
80
97
|
}
|
|
98
|
+
|
|
81
99
|
function useVreoEventCallback(name, callback, deps) {
|
|
82
100
|
var player = useVreoInstance();
|
|
83
101
|
var dependencyList = [player, name];
|
|
102
|
+
|
|
84
103
|
if (deps !== undefined) {
|
|
85
104
|
dependencyList = dependencyList.concat(deps);
|
|
86
105
|
}
|
|
106
|
+
|
|
87
107
|
React.useEffect(function () {
|
|
88
108
|
// @ts-ignore
|
|
89
109
|
player.on(name, callback);
|
|
@@ -93,12 +113,15 @@ function useVreoEventCallback(name, callback, deps) {
|
|
|
93
113
|
};
|
|
94
114
|
}, dependencyList);
|
|
95
115
|
}
|
|
116
|
+
|
|
96
117
|
function useVreoPausedState() {
|
|
97
118
|
var player = useVreoInstance();
|
|
119
|
+
|
|
98
120
|
var _React$useState3 = React.useState(player.paused),
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
121
|
+
_React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2),
|
|
122
|
+
state = _React$useState4[0],
|
|
123
|
+
setState = _React$useState4[1];
|
|
124
|
+
|
|
102
125
|
useVreoEventCallback('paused', function () {
|
|
103
126
|
return setState(true);
|
|
104
127
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
@@ -8,50 +9,70 @@ exports.audioList = void 0;
|
|
|
8
9
|
exports.generateBlankAudio = generateBlankAudio;
|
|
9
10
|
exports.getAudio = getAudio;
|
|
10
11
|
exports.waitForBlankAudioGenerated = waitForBlankAudioGenerated;
|
|
12
|
+
|
|
11
13
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
14
|
+
|
|
12
15
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
16
|
+
|
|
13
17
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
18
|
+
|
|
14
19
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
20
|
+
|
|
15
21
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
22
|
+
|
|
16
23
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
24
|
+
|
|
17
25
|
var _set2 = _interopRequireDefault(require("@babel/runtime/helpers/set"));
|
|
26
|
+
|
|
18
27
|
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
28
|
+
|
|
19
29
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
30
|
+
|
|
20
31
|
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
32
|
+
|
|
21
33
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
34
|
+
|
|
22
35
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
36
|
+
|
|
23
37
|
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); }; }
|
|
38
|
+
|
|
24
39
|
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; } }
|
|
25
|
-
|
|
26
|
-
// 下面这段空音频居然在11pro和xr上播不出来
|
|
40
|
+
|
|
41
|
+
var blankAudioSrc = 'data:audio/mpeg;base64,//uQxAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAADAAAGhgBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr///////////////////////////////////////////8AAAA5TEFNRTMuOThyAc0AAAAAAAAAABSAJAiqQgAAgAAABobxtI73AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//uQxAACFEII9ACZ/sJZwWEoEb8w/////N//////JcxjHjf+7/v/H2PzCCFAiDtGeyBCIx7bJJ1mmEEMy6g8mm2c8nrGABB4h2Mkmn//4z/73u773R5qHHu/j/w7Kxkzh5lWRWdsifCkNAnY9Zc1HvDAhjhSHdFkHFzLmabt/AQxSg2wwzLhHIJOBnAWwVY4zrhIYhhc2kvhYDfQ4hDi2Gmh5KyFn8EcGIrHAngNgIwVIEMf5bzbAiTRoAD///8z/KVhkkWEle6IX+d/z4fvH3BShK1e5kmjkCMoxVmXhd4ROlTKo3iipasvTilY21q19ta30/v/0/idPX1v8PNxJL6ramnOVsdvMv2akO0iSYIzdJFirtzWXCZicS9vHqvSKyqm5XJBdqBwPxyfJdykhWTZ0G0ZyTZGpLKxsNwwoRhsx3tZfhwmeOBVISm3impAC/IT/8hP/EKEM1KMdVdVKM2rHV4x7HVXZvbVVKN/qq8CiV9VL9jjH/6l6qf7MBCjZmOqsAibjcP+qqqv0oxqpa/NVW286hPo1nz2L/h8+jXt//uSxCmDU2IK/ECN98KKtE5IYzNoCfbw+u9i5r8PoadUMFPKqWL4LK3T/LCraMSHGkW4bpLXR/E6LlHOVQxmslKVJ8IULktMN06N0FKCpHCoYsjC4F+Z0NVqdNFoGSTjSiyjzLdnZ2fNqTi2eHKONONKLMPMKLONKLMPQRJGlFxZRoKcJFAYEeIFiRQkUWUeYfef//Ko04soswso40UJAgMw8wosososy0EalnZyjQUGBRQGIFggOWUacWUeYmuadrZziQKKEgQsQLAhQkUJAgMQDghltLO1onp0cpkNInSFMqlYeSEJ5AHsqFdOwy1DA2sRmRJKxdKRfLhfLw5BzUxBTUUzLjk4LjJVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjk4LjJVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7ksRRA8AAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU='; // 下面这段空音频居然在11pro和xr上播不出来
|
|
27
42
|
// const blankAudioSrc = 'data:audio/mpeg;base64,//AAAAHGZ0eXBNNEEgAAAAAE00QSBpc29tbXA0MgAAAAFtZGF0AAAAAAAAABwA0AAHANAABwDQAAcAAAM+bW9vdgAAAGxtdmhkAAAAAN+jti7fo7YuAACsRAAADAAAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAdB0cmFrAAAAXHRraGQAAAAB36O2Lt+jti4AAAABAAAAAAAADAAAAAAAAAAAAAAAAAABAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAFsbWRpYQAAACBtZGhkAAAAAN+jti7fo7YuAACsRAAADABVxAAAAAAAMWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABDb3JlIE1lZGlhIEF1ZGlvAAAAARNtaW5mAAAAEHNtaGQAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAANdzdGJsAAAAZ3N0c2QAAAAAAAAAAQAAAFdtcDRhAAAAAAAAAAEAAAAAAAAAAAACABAAAAAArEQAAAAAADNlc2RzAAAAAAOAgIAiAAAABICAgBRAFAAYAAAA+gAAAPoABYCAgAISCAaAgIABAgAAABhzdHRzAAAAAAAAAAEAAAADAAAEAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAwAAAAEAAAAgc3RzegAAAAAAAAAAAAAAAwAAAAQAAAAEAAAABAAAABRzdGNvAAAAAAAAAAEAAAAsAAAA+nVkdGEAAADybWV0YQAAAAAAAAAiaGRscgAAAAAAAAAAbWRpcgAAAAAAAAAAAAAAAAAAAAAAxGlsc3QAAAC8LS0tLQAAABxtZWFuAAAAAGNvbS5hcHBsZS5pVHVuZXMAAAAUbmFtZQAAAABpVHVuU01QQgAAAIRkYXRhAAAAAQAAAAAgMDAwMDAwMDAgMDAwMDA4NDAgMDAwMDAzQzAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMA=='
|
|
28
43
|
|
|
29
44
|
var audioList = [];
|
|
30
45
|
exports.audioList = audioList;
|
|
46
|
+
|
|
31
47
|
function getAudio(src) {
|
|
32
48
|
var audio = audioList.find(function (audio) {
|
|
33
49
|
return !audio.realSrc || audio.realSrc === blankAudioSrc;
|
|
34
50
|
});
|
|
51
|
+
|
|
35
52
|
if (!audio) {
|
|
36
53
|
// console.warn('未找到缓存音频,已新建', audioList)
|
|
37
54
|
audio = new IAudio(blankAudioSrc);
|
|
38
55
|
audioList.push(audio);
|
|
39
56
|
}
|
|
57
|
+
|
|
40
58
|
if (src) {
|
|
41
59
|
audio.src = src;
|
|
42
60
|
}
|
|
61
|
+
|
|
43
62
|
return audio;
|
|
44
63
|
}
|
|
64
|
+
|
|
45
65
|
function waitForBlankAudioGenerated() {
|
|
46
66
|
return _waitForBlankAudioGenerated.apply(this, arguments);
|
|
47
67
|
}
|
|
68
|
+
|
|
48
69
|
function _waitForBlankAudioGenerated() {
|
|
49
70
|
_waitForBlankAudioGenerated = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
50
71
|
var checkInterval,
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
72
|
+
timeout,
|
|
73
|
+
startTime,
|
|
74
|
+
isTimedOut,
|
|
75
|
+
_args = arguments;
|
|
55
76
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
56
77
|
while (1) {
|
|
57
78
|
switch (_context.prev = _context.next) {
|
|
@@ -60,10 +81,11 @@ function _waitForBlankAudioGenerated() {
|
|
|
60
81
|
timeout = _args.length > 1 && _args[1] !== undefined ? _args[1] : 2000;
|
|
61
82
|
console.log('waitForBlankAudioGenerated, needGenerate: ', audioList.some(function (audio) {
|
|
62
83
|
return !audio.ended && audio.src === blankAudioSrc;
|
|
63
|
-
}));
|
|
64
|
-
|
|
84
|
+
})); // while any audioList not ended
|
|
85
|
+
|
|
65
86
|
startTime = Date.now();
|
|
66
87
|
isTimedOut = false;
|
|
88
|
+
|
|
67
89
|
case 5:
|
|
68
90
|
if (!(audioList.some(function (audio) {
|
|
69
91
|
return !audio.ended && audio.src === blankAudioSrc;
|
|
@@ -71,20 +93,25 @@ function _waitForBlankAudioGenerated() {
|
|
|
71
93
|
_context.next = 13;
|
|
72
94
|
break;
|
|
73
95
|
}
|
|
96
|
+
|
|
74
97
|
if (!(Date.now() - startTime > timeout)) {
|
|
75
98
|
_context.next = 9;
|
|
76
99
|
break;
|
|
77
100
|
}
|
|
101
|
+
|
|
78
102
|
isTimedOut = true;
|
|
79
103
|
return _context.abrupt("return", Promise.resolve());
|
|
104
|
+
|
|
80
105
|
case 9:
|
|
81
106
|
_context.next = 11;
|
|
82
107
|
return new Promise(function (resolve) {
|
|
83
108
|
return setTimeout(resolve, checkInterval);
|
|
84
109
|
});
|
|
110
|
+
|
|
85
111
|
case 11:
|
|
86
112
|
_context.next = 5;
|
|
87
113
|
break;
|
|
114
|
+
|
|
88
115
|
case 13:
|
|
89
116
|
case "end":
|
|
90
117
|
return _context.stop();
|
|
@@ -94,29 +121,38 @@ function _waitForBlankAudioGenerated() {
|
|
|
94
121
|
}));
|
|
95
122
|
return _waitForBlankAudioGenerated.apply(this, arguments);
|
|
96
123
|
}
|
|
124
|
+
|
|
97
125
|
function generateBlankAudio(length) {
|
|
98
126
|
// 判断一下已经生成几个了,防止重复生成
|
|
99
127
|
var generateLength = length - audioList.length;
|
|
100
128
|
if (generateLength <= 0) return;
|
|
129
|
+
|
|
101
130
|
for (var i = 0; i < generateLength; i++) {
|
|
102
131
|
audioList.push(new IAudio(blankAudioSrc));
|
|
103
132
|
}
|
|
104
133
|
}
|
|
134
|
+
|
|
105
135
|
function initAudio(audio) {
|
|
106
136
|
if (audio.inited) return;
|
|
137
|
+
|
|
107
138
|
if (audio.src) {
|
|
108
139
|
audio.inited = true;
|
|
109
140
|
audio.removeDocumentEventListener();
|
|
110
141
|
}
|
|
142
|
+
|
|
111
143
|
if (audio.src === blankAudioSrc) {
|
|
112
144
|
audio.play();
|
|
113
145
|
}
|
|
114
146
|
}
|
|
147
|
+
|
|
115
148
|
var IAudio = /*#__PURE__*/function (_Audio) {
|
|
116
149
|
(0, _inherits2["default"])(IAudio, _Audio);
|
|
150
|
+
|
|
117
151
|
var _super = _createSuper(IAudio);
|
|
152
|
+
|
|
118
153
|
function IAudio(src) {
|
|
119
154
|
var _thisSuper, _this;
|
|
155
|
+
|
|
120
156
|
(0, _classCallCheck2["default"])(this, IAudio);
|
|
121
157
|
_this = _super.call(this, src);
|
|
122
158
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "preload", 'auto');
|
|
@@ -126,17 +162,22 @@ var IAudio = /*#__PURE__*/function (_Audio) {
|
|
|
126
162
|
(0, _get2["default"])((_thisSuper = (0, _assertThisInitialized2["default"])(_this), (0, _getPrototypeOf2["default"])(IAudio.prototype)), "addEventListener", _thisSuper).call(_thisSuper, 'ended', function () {
|
|
127
163
|
_this.src = '';
|
|
128
164
|
});
|
|
165
|
+
|
|
129
166
|
var init = function init() {
|
|
130
167
|
return initAudio((0, _assertThisInitialized2["default"])(_this));
|
|
131
168
|
};
|
|
169
|
+
|
|
132
170
|
document.addEventListener('click', init);
|
|
133
171
|
document.addEventListener('touchend', init);
|
|
172
|
+
|
|
134
173
|
_this.removeDocumentEventListener = function () {
|
|
135
174
|
document.removeEventListener('click', init);
|
|
136
175
|
document.removeEventListener('touchend', init);
|
|
137
176
|
};
|
|
177
|
+
|
|
138
178
|
return _this;
|
|
139
179
|
}
|
|
180
|
+
|
|
140
181
|
(0, _createClass2["default"])(IAudio, [{
|
|
141
182
|
key: "src",
|
|
142
183
|
get: function get() {
|
|
@@ -1,31 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports["default"] = exports.AudioLike = void 0;
|
|
9
|
+
|
|
8
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
9
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
10
14
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
+
|
|
11
16
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
12
18
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
13
20
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
14
22
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
+
|
|
15
24
|
var _five = require("@realsee/five");
|
|
25
|
+
|
|
16
26
|
var _animationFrame = require("./animationFrame");
|
|
27
|
+
|
|
17
28
|
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); }; }
|
|
29
|
+
|
|
18
30
|
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; } }
|
|
31
|
+
|
|
19
32
|
/**
|
|
20
33
|
* 模拟 `<Audio>` 功能:没有音频,但执行逻辑跟 `<Audio>` 相似。
|
|
21
34
|
*/
|
|
22
35
|
var AudioLike = /*#__PURE__*/function (_Subscribe) {
|
|
23
36
|
(0, _inherits2["default"])(AudioLike, _Subscribe);
|
|
37
|
+
|
|
24
38
|
var _super = _createSuper(AudioLike);
|
|
39
|
+
|
|
25
40
|
function AudioLike() {
|
|
26
41
|
var _this;
|
|
42
|
+
|
|
27
43
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
28
|
-
|
|
44
|
+
duration = _ref.duration;
|
|
45
|
+
|
|
29
46
|
(0, _classCallCheck2["default"])(this, AudioLike);
|
|
30
47
|
_this = _super.call(this);
|
|
31
48
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "$timestamp", null);
|
|
@@ -33,26 +50,31 @@ var AudioLike = /*#__PURE__*/function (_Subscribe) {
|
|
|
33
50
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "$duration", 0);
|
|
34
51
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "muted", false);
|
|
35
52
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "src", '');
|
|
53
|
+
|
|
36
54
|
if (duration) {
|
|
37
55
|
_this.$duration = duration;
|
|
38
56
|
}
|
|
57
|
+
|
|
39
58
|
return _this;
|
|
40
59
|
}
|
|
60
|
+
|
|
41
61
|
(0, _createClass2["default"])(AudioLike, [{
|
|
42
62
|
key: "setAttribute",
|
|
43
|
-
value: function setAttribute(name, value) {
|
|
44
|
-
// nothing todo
|
|
63
|
+
value: function setAttribute(name, value) {// nothing todo
|
|
45
64
|
}
|
|
46
65
|
}, {
|
|
47
66
|
key: "play",
|
|
48
67
|
value: function play() {
|
|
49
68
|
var _this2 = this;
|
|
69
|
+
|
|
50
70
|
if (this.$currentTime === this.$duration) {
|
|
51
71
|
this.$currentTime = 0;
|
|
52
72
|
}
|
|
73
|
+
|
|
53
74
|
if (this.$timestamp === null) {
|
|
54
75
|
this.$timestamp = performance.now();
|
|
55
76
|
}
|
|
77
|
+
|
|
56
78
|
this.stopInterval = (0, _animationFrame.requestAnimationFrameInterval)(function () {
|
|
57
79
|
return _this2.requestAnimationFrameLoop();
|
|
58
80
|
});
|
|
@@ -66,6 +88,7 @@ var AudioLike = /*#__PURE__*/function (_Subscribe) {
|
|
|
66
88
|
this.emit('pause');
|
|
67
89
|
this.stopInterval = undefined;
|
|
68
90
|
}
|
|
91
|
+
|
|
69
92
|
this.$timestamp = null;
|
|
70
93
|
}
|
|
71
94
|
}, {
|
|
@@ -76,6 +99,7 @@ var AudioLike = /*#__PURE__*/function (_Subscribe) {
|
|
|
76
99
|
this.$currentTime += now - this.$timestamp;
|
|
77
100
|
this.$timestamp = now;
|
|
78
101
|
this.emit('timeupdate');
|
|
102
|
+
|
|
79
103
|
if (this.$currentTime >= this.$duration - 10) {
|
|
80
104
|
this.$currentTime = this.$duration;
|
|
81
105
|
this.pause();
|
|
@@ -123,6 +147,7 @@ var AudioLike = /*#__PURE__*/function (_Subscribe) {
|
|
|
123
147
|
}]);
|
|
124
148
|
return AudioLike;
|
|
125
149
|
}(_five.Subscribe);
|
|
150
|
+
|
|
126
151
|
exports.AudioLike = AudioLike;
|
|
127
152
|
var _default = AudioLike;
|
|
128
153
|
exports["default"] = _default;
|