@micromag/element-video 0.3.792 → 0.3.796
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/es/index.js +33 -32
- package/package.json +4 -4
package/es/index.js
CHANGED
|
@@ -7,17 +7,26 @@ import React, { useMemo, useRef, useState, useEffect, useCallback } from 'react'
|
|
|
7
7
|
import { PropTypes as PropTypes$1 } from '@micromag/core';
|
|
8
8
|
import { Spinner } from '@micromag/core/components';
|
|
9
9
|
import { useMediaThumbnail, useMediaCurrentTime, useMediaDuration, useMediaReady, useProgressSteps } from '@micromag/core/hooks';
|
|
10
|
+
import { useSetting } from '@micromag/core/contexts';
|
|
10
11
|
import { getMediaFilesAsArray, getVideoSupportedMimes } from '@micromag/core/utils';
|
|
11
12
|
|
|
13
|
+
// Disabled webm for now
|
|
14
|
+
// const defaultPossibleMimes = ['video/mp4', 'video/webm', 'video/ogg', 'application/vnd.apple.mpegurl'];
|
|
15
|
+
|
|
12
16
|
function useSources(media) {
|
|
13
|
-
var _ref =
|
|
14
|
-
_ref$
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
_ref2$
|
|
20
|
-
|
|
17
|
+
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
18
|
+
_ref$possibleMimes = _ref.possibleMimes,
|
|
19
|
+
possibleMimes = _ref$possibleMimes === void 0 ? null : _ref$possibleMimes;
|
|
20
|
+
var _ref2 = media || {},
|
|
21
|
+
_ref2$files = _ref2.files,
|
|
22
|
+
mediaFiles = _ref2$files === void 0 ? null : _ref2$files,
|
|
23
|
+
_ref2$metadata = _ref2.metadata,
|
|
24
|
+
metadata = _ref2$metadata === void 0 ? null : _ref2$metadata;
|
|
25
|
+
var _ref3 = metadata || {},
|
|
26
|
+
_ref3$mime = _ref3.mime,
|
|
27
|
+
mediaMime = _ref3$mime === void 0 ? null : _ref3$mime;
|
|
28
|
+
var settingsPossibleMimes = useSetting('supportedVideoMimes');
|
|
29
|
+
var finalPossibleMimes = possibleMimes || settingsPossibleMimes;
|
|
21
30
|
var files = useMemo(function () {
|
|
22
31
|
return getMediaFilesAsArray(mediaFiles);
|
|
23
32
|
}, [mediaFiles]);
|
|
@@ -25,9 +34,9 @@ function useSources(media) {
|
|
|
25
34
|
if (files.length === 0) {
|
|
26
35
|
return null;
|
|
27
36
|
}
|
|
28
|
-
var supportedMimes = getVideoSupportedMimes();
|
|
37
|
+
var supportedMimes = getVideoSupportedMimes(finalPossibleMimes);
|
|
29
38
|
if (supportedMimes.length === 0) {
|
|
30
|
-
supportedMimes = ['video/mp4'
|
|
39
|
+
supportedMimes = ['video/mp4'];
|
|
31
40
|
}
|
|
32
41
|
var supportedFiles = files.filter(function (file) {
|
|
33
42
|
var fileHandle = file.handle || file.id;
|
|
@@ -39,27 +48,27 @@ function useSources(media) {
|
|
|
39
48
|
var fileHandle = file.handle || file.id;
|
|
40
49
|
return fileHandle !== 'original';
|
|
41
50
|
});
|
|
42
|
-
return (supportedFilesWithoutOriginal.length > 0 ? supportedFilesWithoutOriginal : supportedFiles).sort(function (
|
|
43
|
-
var _ref3$size = _ref3.size,
|
|
44
|
-
a = _ref3$size === void 0 ? Infinity : _ref3$size;
|
|
51
|
+
return (supportedFilesWithoutOriginal.length > 0 ? supportedFilesWithoutOriginal : supportedFiles).sort(function (_ref4, _ref5) {
|
|
45
52
|
var _ref4$size = _ref4.size,
|
|
46
|
-
|
|
53
|
+
a = _ref4$size === void 0 ? Infinity : _ref4$size;
|
|
54
|
+
var _ref5$size = _ref5.size,
|
|
55
|
+
b = _ref5$size === void 0 ? Infinity : _ref5$size;
|
|
47
56
|
if (a === b) {
|
|
48
57
|
return 0;
|
|
49
58
|
}
|
|
50
59
|
return a > b ? 1 : -1;
|
|
51
60
|
});
|
|
52
|
-
}, [files]);
|
|
61
|
+
}, [files, finalPossibleMimes]);
|
|
53
62
|
|
|
54
63
|
// @NOTE: Media is an animated image and doesn't have source files in video formats
|
|
55
|
-
var
|
|
56
|
-
var handle =
|
|
64
|
+
var _ref6 = files.find(function (_ref7) {
|
|
65
|
+
var handle = _ref7.handle;
|
|
57
66
|
return handle === 'original';
|
|
58
67
|
}) || {},
|
|
59
|
-
|
|
60
|
-
originalType =
|
|
61
|
-
|
|
62
|
-
originalMime =
|
|
68
|
+
_ref6$type = _ref6.type,
|
|
69
|
+
originalType = _ref6$type === void 0 ? null : _ref6$type,
|
|
70
|
+
_ref6$mime = _ref6.mime,
|
|
71
|
+
originalMime = _ref6$mime === void 0 ? mediaMime : _ref6$mime;
|
|
63
72
|
var originalFileIsImage = originalType === 'image' || originalMime !== null && originalMime.indexOf('image/') === 0;
|
|
64
73
|
return {
|
|
65
74
|
sources: sources !== null && sources.length > 0 ? sources : null,
|
|
@@ -264,31 +273,23 @@ var Video = function Video(_ref) {
|
|
|
264
273
|
}
|
|
265
274
|
}, [ready, onReady]);
|
|
266
275
|
var finalPreload = shouldLoad ? preload : 'none';
|
|
267
|
-
var preloadRef = useRef(finalPreload);
|
|
268
|
-
var hasPlayedRef = useRef(false);
|
|
269
276
|
useEffect(function () {
|
|
270
277
|
var _ref$current2 = _ref6.current,
|
|
271
278
|
element = _ref$current2 === void 0 ? null : _ref$current2;
|
|
272
|
-
if (element === null) {
|
|
279
|
+
if (element === null || mediaUrl === null) {
|
|
273
280
|
return;
|
|
274
281
|
}
|
|
275
282
|
var isPaused = element.paused;
|
|
276
283
|
if (paused && !isPaused) {
|
|
277
284
|
element.pause();
|
|
278
285
|
} else if (!paused && isPaused) {
|
|
279
|
-
if (preloadRef.current === 'none') {
|
|
280
|
-
element.load();
|
|
281
|
-
preloadRef.current = finalPreload;
|
|
282
|
-
}
|
|
283
|
-
hasPlayedRef.current = true;
|
|
284
286
|
element.play()["catch"](function (e) {
|
|
285
287
|
if (onPlayError !== null) {
|
|
286
288
|
onPlayError(e);
|
|
287
289
|
}
|
|
288
290
|
});
|
|
289
291
|
}
|
|
290
|
-
}, [paused, media, onPlayError]);
|
|
291
|
-
|
|
292
|
+
}, [paused, media, mediaUrl, onPlayError]);
|
|
292
293
|
useProgressSteps({
|
|
293
294
|
currentTime: currentTime,
|
|
294
295
|
duration: duration,
|
|
@@ -317,7 +318,7 @@ var Video = function Video(_ref) {
|
|
|
317
318
|
}
|
|
318
319
|
},
|
|
319
320
|
src: sources === null && shouldLoad ? "".concat(mediaUrl, "#t=0.001") : null,
|
|
320
|
-
autoPlay: autoPlay && !paused
|
|
321
|
+
autoPlay: autoPlay && !paused,
|
|
321
322
|
loop: loop,
|
|
322
323
|
muted: muted,
|
|
323
324
|
poster: shouldLoad && withPoster && finalThumbnail !== null ? finalThumbnail.url || null : null,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micromag/element-video",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.796",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"keywords": [
|
|
@@ -59,8 +59,8 @@
|
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"@babel/runtime": "^7.13.10",
|
|
62
|
-
"@micromag/core": "^0.3.
|
|
63
|
-
"@micromag/element-closed-captions": "^0.3.
|
|
62
|
+
"@micromag/core": "^0.3.796",
|
|
63
|
+
"@micromag/element-closed-captions": "^0.3.796",
|
|
64
64
|
"classnames": "^2.2.6",
|
|
65
65
|
"hls.js": "^1.5.15",
|
|
66
66
|
"lodash": "^4.17.21",
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"access": "public",
|
|
73
73
|
"registry": "https://registry.npmjs.org/"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "d3bf71e5a23e09d0cd26f543fb1327ff7eb27983"
|
|
76
76
|
}
|