@micromag/element-video 0.3.585 → 0.3.587
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 +54 -53
- package/package.json +2 -2
package/es/index.js
CHANGED
|
@@ -64,7 +64,7 @@ var defaultProps = {
|
|
|
64
64
|
playsInline: true,
|
|
65
65
|
preload: 'auto',
|
|
66
66
|
disablePictureInPicture: true,
|
|
67
|
-
disableHls:
|
|
67
|
+
disableHls: true,
|
|
68
68
|
shouldLoad: true,
|
|
69
69
|
withoutCors: false,
|
|
70
70
|
className: null,
|
|
@@ -196,60 +196,60 @@ var Video = function Video(_ref) {
|
|
|
196
196
|
useEffect(function () {
|
|
197
197
|
setHlsTsOffset(0);
|
|
198
198
|
setHlsFailed(false);
|
|
199
|
-
if (shouldLoad
|
|
200
|
-
var hls = new Hls({
|
|
201
|
-
maxBufferLength: 15,
|
|
202
|
-
// seconds. prevents loading too much per screen.
|
|
203
|
-
startLevel: qualityStartLevel !== null ? qualityStartLevel : -1
|
|
204
|
-
});
|
|
205
|
-
hls.on(Hls.Events.LEVEL_SWITCHED, function (_, _ref5) {
|
|
206
|
-
var level = _ref5.level;
|
|
207
|
-
if (onQualityLevelChange !== null) {
|
|
208
|
-
onQualityLevelChange(level, _ref16.current);
|
|
209
|
-
}
|
|
210
|
-
});
|
|
211
|
-
hls.on(Hls.Events.ERROR, function (_, _ref6) {
|
|
212
|
-
var isFatal = _ref6.fatal,
|
|
213
|
-
errorType = _ref6.type;
|
|
214
|
-
if (isFatal) {
|
|
215
|
-
switch (errorType) {
|
|
216
|
-
case Hls.ErrorTypes.MEDIA_ERROR:
|
|
217
|
-
// automatically try to recover from media errors
|
|
218
|
-
hls.recoverMediaError();
|
|
219
|
-
break;
|
|
220
|
-
case Hls.ErrorTypes.NETWORK_ERROR:
|
|
221
|
-
// happens when all retries and media options have been exhausted. in that case, fallback to mp4/webm playback
|
|
222
|
-
setHlsJs(null);
|
|
223
|
-
setHlsFailed(true);
|
|
224
|
-
break;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
|
|
229
|
-
// compute hls timestamp offset when we get the first video fragment
|
|
230
|
-
var _onHlsBufferAppended = function onHlsBufferAppended(_, _ref7) {
|
|
231
|
-
var frag = _ref7.frag;
|
|
232
|
-
var fragStart = frag.start,
|
|
233
|
-
fragType = frag.type,
|
|
234
|
-
_frag$sn = frag.sn,
|
|
235
|
-
fragSn = _frag$sn === void 0 ? null : _frag$sn,
|
|
236
|
-
_frag$elementaryStrea = frag.elementaryStreams.video,
|
|
237
|
-
videoStream = _frag$elementaryStrea === void 0 ? null : _frag$elementaryStrea;
|
|
238
|
-
var _ref8 = videoStream || {},
|
|
239
|
-
_ref8$startPTS = _ref8.startPTS,
|
|
240
|
-
videoStartPTS = _ref8$startPTS === void 0 ? null : _ref8$startPTS;
|
|
241
|
-
if (fragType === 'main' && fragSn !== 'initSegment' && videoStartPTS !== null) {
|
|
242
|
-
var tOffset = videoStartPTS - fragStart;
|
|
243
|
-
hls.off(Hls.Events.BUFFER_APPENDED, _onHlsBufferAppended);
|
|
244
|
-
setHlsTsOffset(tOffset);
|
|
245
|
-
}
|
|
246
|
-
};
|
|
247
|
-
hls.on(Hls.Events.BUFFER_APPENDED, _onHlsBufferAppended);
|
|
248
|
-
hls.loadSource(hlsSources[0].url);
|
|
249
|
-
setHlsJs(hls);
|
|
250
|
-
} else {
|
|
199
|
+
if (!shouldLoad || _ref16.current === null || hlsSources === null || hlsSources.length === 0) {
|
|
251
200
|
setHlsJs(null);
|
|
201
|
+
return;
|
|
252
202
|
}
|
|
203
|
+
var hls = new Hls({
|
|
204
|
+
maxBufferLength: 15,
|
|
205
|
+
// seconds. prevents loading too much per screen.
|
|
206
|
+
startLevel: qualityStartLevel !== null ? qualityStartLevel : -1
|
|
207
|
+
});
|
|
208
|
+
hls.on(Hls.Events.LEVEL_SWITCHED, function (_, _ref5) {
|
|
209
|
+
var level = _ref5.level;
|
|
210
|
+
if (onQualityLevelChange !== null) {
|
|
211
|
+
onQualityLevelChange(level, _ref16.current);
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
hls.on(Hls.Events.ERROR, function (_, _ref6) {
|
|
215
|
+
var isFatal = _ref6.fatal,
|
|
216
|
+
errorType = _ref6.type;
|
|
217
|
+
if (isFatal) {
|
|
218
|
+
switch (errorType) {
|
|
219
|
+
case Hls.ErrorTypes.MEDIA_ERROR:
|
|
220
|
+
// automatically try to recover from media errors
|
|
221
|
+
hls.recoverMediaError();
|
|
222
|
+
break;
|
|
223
|
+
case Hls.ErrorTypes.NETWORK_ERROR:
|
|
224
|
+
// happens when all retries and media options have been exhausted. in that case, fallback to mp4/webm playback
|
|
225
|
+
setHlsJs(null);
|
|
226
|
+
setHlsFailed(true);
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
// compute hls timestamp offset when we get the first video fragment
|
|
233
|
+
var _onHlsBufferAppended = function onHlsBufferAppended(_, _ref7) {
|
|
234
|
+
var frag = _ref7.frag;
|
|
235
|
+
var fragStart = frag.start,
|
|
236
|
+
fragType = frag.type,
|
|
237
|
+
_frag$sn = frag.sn,
|
|
238
|
+
fragSn = _frag$sn === void 0 ? null : _frag$sn,
|
|
239
|
+
_frag$elementaryStrea = frag.elementaryStreams.video,
|
|
240
|
+
videoStream = _frag$elementaryStrea === void 0 ? null : _frag$elementaryStrea;
|
|
241
|
+
var _ref8 = videoStream || {},
|
|
242
|
+
_ref8$startPTS = _ref8.startPTS,
|
|
243
|
+
videoStartPTS = _ref8$startPTS === void 0 ? null : _ref8$startPTS;
|
|
244
|
+
if (fragType === 'main' && fragSn !== 'initSegment' && videoStartPTS !== null) {
|
|
245
|
+
var tOffset = videoStartPTS - fragStart;
|
|
246
|
+
hls.off(Hls.Events.BUFFER_APPENDED, _onHlsBufferAppended);
|
|
247
|
+
setHlsTsOffset(tOffset);
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
hls.on(Hls.Events.BUFFER_APPENDED, _onHlsBufferAppended);
|
|
251
|
+
hls.loadSource(hlsSources[0].url);
|
|
252
|
+
setHlsJs(hls);
|
|
253
253
|
}, [shouldLoad, hlsSources, _ref16]);
|
|
254
254
|
|
|
255
255
|
// attach hls.js when the <video> ref is ready
|
|
@@ -272,6 +272,7 @@ var Video = function Video(_ref) {
|
|
|
272
272
|
hlsJs.startLevel = qualityLevel;
|
|
273
273
|
if (_ref16.current !== null && _ref16.current.paused) {
|
|
274
274
|
hlsJs.currentLevel = qualityLevel;
|
|
275
|
+
hlsJs.nextLevel = -1; // force auto quality selection for the next fragment
|
|
275
276
|
}
|
|
276
277
|
}
|
|
277
278
|
}, [qualityStartLevel]);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micromag/element-video",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.587",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"keywords": [
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"access": "public",
|
|
73
73
|
"registry": "https://registry.npmjs.org/"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "40d2d37e166b6677fc19aaf4aefaadb768b0fd4f"
|
|
76
76
|
}
|