1 |
|
2 |
|
3 |
|
4 | 'use strict';
|
5 |
|
6 | Object.defineProperty(exports, '__esModule', {
|
7 | value: true
|
8 | });
|
9 |
|
10 | var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();
|
11 |
|
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
13 |
|
14 | var _globalWindow = require('global/window');
|
15 |
|
16 | var _globalWindow2 = _interopRequireDefault(_globalWindow);
|
17 |
|
18 |
|
19 |
|
20 |
|
21 | var findAdCue = function findAdCue(track, mediaTime) {
|
22 | var cues = track.cues;
|
23 |
|
24 | for (var i = 0; i < cues.length; i++) {
|
25 | var cue = cues[i];
|
26 |
|
27 | if (mediaTime >= cue.adStartTime && mediaTime <= cue.adEndTime) {
|
28 | return cue;
|
29 | }
|
30 | }
|
31 | return null;
|
32 | };
|
33 |
|
34 | var updateAdCues = function updateAdCues(media, track) {
|
35 | var offset = arguments.length <= 2 || arguments[2] === undefined ? 0 : arguments[2];
|
36 |
|
37 | if (!media.segments) {
|
38 | return;
|
39 | }
|
40 |
|
41 | var mediaTime = offset;
|
42 | var cue = undefined;
|
43 |
|
44 | for (var i = 0; i < media.segments.length; i++) {
|
45 | var segment = media.segments[i];
|
46 |
|
47 | if (!cue) {
|
48 |
|
49 |
|
50 |
|
51 |
|
52 | cue = findAdCue(track, mediaTime + segment.duration / 2);
|
53 | }
|
54 |
|
55 | if (cue) {
|
56 | if ('cueIn' in segment) {
|
57 |
|
58 | cue.endTime = mediaTime;
|
59 | cue.adEndTime = mediaTime;
|
60 | mediaTime += segment.duration;
|
61 | cue = null;
|
62 | continue;
|
63 | }
|
64 |
|
65 | if (mediaTime < cue.endTime) {
|
66 |
|
67 | mediaTime += segment.duration;
|
68 | continue;
|
69 | }
|
70 |
|
71 |
|
72 | cue.endTime += segment.duration;
|
73 | } else {
|
74 | if ('cueOut' in segment) {
|
75 | cue = new _globalWindow2['default'].VTTCue(mediaTime, mediaTime + segment.duration, segment.cueOut);
|
76 | cue.adStartTime = mediaTime;
|
77 |
|
78 |
|
79 | cue.adEndTime = mediaTime + parseFloat(segment.cueOut);
|
80 | track.addCue(cue);
|
81 | }
|
82 |
|
83 | if ('cueOutCont' in segment) {
|
84 |
|
85 | var adOffset = undefined;
|
86 | var adTotal = undefined;
|
87 |
|
88 |
|
89 |
|
90 |
|
91 | var _segment$cueOutCont$split$map = segment.cueOutCont.split('/').map(parseFloat);
|
92 |
|
93 | var _segment$cueOutCont$split$map2 = _slicedToArray(_segment$cueOutCont$split$map, 2);
|
94 |
|
95 | adOffset = _segment$cueOutCont$split$map2[0];
|
96 | adTotal = _segment$cueOutCont$split$map2[1];
|
97 |
|
98 | cue = new _globalWindow2['default'].VTTCue(mediaTime, mediaTime + segment.duration, '');
|
99 | cue.adStartTime = mediaTime - adOffset;
|
100 | cue.adEndTime = cue.adStartTime + adTotal;
|
101 | track.addCue(cue);
|
102 | }
|
103 | }
|
104 | mediaTime += segment.duration;
|
105 | }
|
106 | };
|
107 |
|
108 | exports['default'] = {
|
109 | updateAdCues: updateAdCues,
|
110 | findAdCue: findAdCue
|
111 | };
|
112 | module.exports = exports['default']; |
\ | No newline at end of file |