@desynova-digital/player 3.1.1 → 3.2.2
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/components/PlayerHeader.js +6 -3
- package/components/PointersBar.js +33 -19
- package/components/Shortcut.js +12 -17
- package/components/Video.js +161 -63
- package/components/control-bar/ControlBar.js +7 -0
- package/components/control-bar/SubtitleLanguagesMenuButton.js +133 -0
- package/components/marking-controls/MarkOutControl.js +8 -4
- package/components/marking-controls/MarkingControl.js +5 -14
- package/components/settings-menu-control/PlaybackRateControl.js +9 -9
- package/package.json +1 -1
|
@@ -410,7 +410,7 @@ var PlayerHeader = function (_Component) {
|
|
|
410
410
|
_react2.default.createElement(
|
|
411
411
|
PlayerType,
|
|
412
412
|
null,
|
|
413
|
-
isShareAvailable && playerType === 'default' && _react2.default.createElement(_components.Button, _extends({
|
|
413
|
+
!isFullscreen && !isUserGuest && isShareAvailable && playerType === 'default' && _react2.default.createElement(_components.Button, _extends({
|
|
414
414
|
display: 'rounded',
|
|
415
415
|
appearance: 'cta',
|
|
416
416
|
icon: 'share',
|
|
@@ -422,7 +422,7 @@ var PlayerHeader = function (_Component) {
|
|
|
422
422
|
}, this.props, {
|
|
423
423
|
onClick: openSharePopup
|
|
424
424
|
})),
|
|
425
|
-
(playerType === 'default' || playerType === 'qc') && qcReportAvailable && _react2.default.createElement(QCReportButton, _extends({
|
|
425
|
+
!isFullscreen && !isUserGuest && (playerType === 'default' || playerType === 'qc') && qcReportAvailable && _react2.default.createElement(QCReportButton, _extends({
|
|
426
426
|
display: 'rounded',
|
|
427
427
|
appearance: 'cta',
|
|
428
428
|
icon: 'qc_report',
|
|
@@ -443,7 +443,10 @@ var PlayerHeader = function (_Component) {
|
|
|
443
443
|
height: 25,
|
|
444
444
|
iconWidth: 12,
|
|
445
445
|
iconHeight: 12,
|
|
446
|
-
tabIndex: '0'
|
|
446
|
+
tabIndex: '0',
|
|
447
|
+
style: {
|
|
448
|
+
pointerEvents: 'none'
|
|
449
|
+
}
|
|
447
450
|
}, this.props)) : null
|
|
448
451
|
)
|
|
449
452
|
);
|
|
@@ -64,7 +64,9 @@ var MarkerTagsBlock = _styledComponents2.default.div.withConfig({
|
|
|
64
64
|
var ToolTipStyles = _styledComponents2.default.div.withConfig({
|
|
65
65
|
displayName: 'PointersBar__ToolTipStyles',
|
|
66
66
|
componentId: 'b8687a-3'
|
|
67
|
-
})(['position:absolute;z-index:2;height:18px;transition:left .1s ease-in-out;.tooltip-container{border-radius:0.25rem;padding:5px;width:fit-content;background:#FFFFFF;;color:#666666;h4{white-space:nowrap;font-size:12px;}&:after{content:\'\';position:absolute;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid white;
|
|
67
|
+
})(['position:absolute;z-index:2;height:18px;transition:left .1s ease-in-out;.tooltip-container{border-radius:0.25rem;padding:5px;width:fit-content;background:#FFFFFF;;color:#666666;h4{white-space:nowrap;font-size:12px;}&:after{content:\'\';position:absolute;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid white;', ' left:50%;transform:translateX(-50%);}}'], function (props) {
|
|
68
|
+
return props.multiline ? "bottom: -21px;" : "bottom: -9px;";
|
|
69
|
+
});
|
|
68
70
|
|
|
69
71
|
var PointersBar = function (_Component) {
|
|
70
72
|
_inherits(PointersBar, _Component);
|
|
@@ -128,7 +130,8 @@ var PointersBar = function (_Component) {
|
|
|
128
130
|
|
|
129
131
|
tooltip.isVisible = false;
|
|
130
132
|
tooltip.text = title;
|
|
131
|
-
tooltip.
|
|
133
|
+
tooltip.bottom = window.innerHeight - e.target.getBoundingClientRect().top; // e.target.getBoundingClientRect().top - e.target.getBoundingClientRect().height - 10;
|
|
134
|
+
tooltip.bottom = title.line1 ? tooltip.bottom + 22 : tooltip.bottom + 10;
|
|
132
135
|
tooltip.left = e.target.getBoundingClientRect().left + (e.target.getBoundingClientRect().right - e.target.getBoundingClientRect().left) / 2;
|
|
133
136
|
this.setState(_extends({}, tooltip), function () {
|
|
134
137
|
var tooltip = _this2.state.tooltip;
|
|
@@ -138,6 +141,18 @@ var PointersBar = function (_Component) {
|
|
|
138
141
|
_this2.setState(_extends({}, tooltip));
|
|
139
142
|
});
|
|
140
143
|
}
|
|
144
|
+
}, {
|
|
145
|
+
key: 'getTitle',
|
|
146
|
+
value: function getTitle(marker) {
|
|
147
|
+
var data = marker.segment_title || marker.word || '';
|
|
148
|
+
if (!data.length && marker.line1) {
|
|
149
|
+
return {
|
|
150
|
+
line1: marker.line1,
|
|
151
|
+
line2: marker.line2
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
return data;
|
|
155
|
+
}
|
|
141
156
|
}, {
|
|
142
157
|
key: 'render',
|
|
143
158
|
value: function render() {
|
|
@@ -148,7 +163,7 @@ var PointersBar = function (_Component) {
|
|
|
148
163
|
isVisible = _state$tooltip.isVisible,
|
|
149
164
|
text = _state$tooltip.text,
|
|
150
165
|
left = _state$tooltip.left,
|
|
151
|
-
|
|
166
|
+
bottom = _state$tooltip.bottom;
|
|
152
167
|
|
|
153
168
|
var self = this;
|
|
154
169
|
return _react2.default.createElement(
|
|
@@ -182,7 +197,7 @@ var PointersBar = function (_Component) {
|
|
|
182
197
|
_this3.onMarkerClick(e, marker);
|
|
183
198
|
},
|
|
184
199
|
onMouseOver: function onMouseOver(e) {
|
|
185
|
-
self.setTooltipData(e, marker
|
|
200
|
+
self.setTooltipData(e, _this3.getTitle(marker));
|
|
186
201
|
},
|
|
187
202
|
onMouseOut: function onMouseOut() {
|
|
188
203
|
var tooltip = _this3.state.tooltip;
|
|
@@ -224,23 +239,12 @@ var PointersBar = function (_Component) {
|
|
|
224
239
|
width: 7,
|
|
225
240
|
height: 11
|
|
226
241
|
}),
|
|
227
|
-
_react2.default.createElement(
|
|
228
|
-
'p',
|
|
229
|
-
null,
|
|
230
|
-
'to select a range. '
|
|
231
|
-
),
|
|
232
|
-
_react2.default.createElement(
|
|
233
|
-
'p',
|
|
234
|
-
null,
|
|
235
|
-
'Then press'
|
|
236
|
-
),
|
|
237
|
-
_react2.default.createElement(_components.Icon, { name: 'add', stroke: '#fff', width: 10, height: 10 }),
|
|
238
242
|
_react2.default.createElement(
|
|
239
243
|
'p',
|
|
240
244
|
null,
|
|
241
245
|
'to create ',
|
|
242
246
|
marker_obj.name,
|
|
243
|
-
'.'
|
|
247
|
+
' in the selected range. '
|
|
244
248
|
)
|
|
245
249
|
)
|
|
246
250
|
),
|
|
@@ -255,13 +259,23 @@ var PointersBar = function (_Component) {
|
|
|
255
259
|
)
|
|
256
260
|
);
|
|
257
261
|
}) : null,
|
|
258
|
-
_react2.default.createElement(
|
|
262
|
+
text && _react2.default.createElement(
|
|
259
263
|
ToolTipStyles,
|
|
260
|
-
{ ref: this._tooltipRef, style: { left: left || 0,
|
|
264
|
+
{ multiline: !!text.line1, ref: this._tooltipRef, style: { left: left || 0, bottom: bottom || 0, visibility: isVisible ? "visible" : "hidden" } },
|
|
261
265
|
_react2.default.createElement(
|
|
262
266
|
'div',
|
|
263
267
|
{ className: 'tooltip-container' },
|
|
264
|
-
_react2.default.createElement(
|
|
268
|
+
text.line1 && _react2.default.createElement(
|
|
269
|
+
'h4',
|
|
270
|
+
null,
|
|
271
|
+
text.line1
|
|
272
|
+
),
|
|
273
|
+
text.line2 && _react2.default.createElement(
|
|
274
|
+
'h4',
|
|
275
|
+
null,
|
|
276
|
+
text.line2
|
|
277
|
+
),
|
|
278
|
+
!text.line1 && _react2.default.createElement(
|
|
265
279
|
'h4',
|
|
266
280
|
null,
|
|
267
281
|
text
|
package/components/Shortcut.js
CHANGED
|
@@ -224,11 +224,16 @@ var Shortcut = function (_Component) {
|
|
|
224
224
|
if (player.leftMarker > -1 && player.rightMarker > -1 && (!player.markerCreate || player.markerType === 'update')) {
|
|
225
225
|
onAddMarker(player.leftMarker, player.currentTime, 'update');
|
|
226
226
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
227
|
+
//Commented for CN-632.
|
|
228
|
+
// if (player.controlType === 'default') {
|
|
229
|
+
// onMarkerSelect(player.leftMarker, player.currentTime);
|
|
230
|
+
// }
|
|
230
231
|
}
|
|
231
232
|
}
|
|
233
|
+
if (player.leftMarker > -1 && player.currentTime > -1 && player.markerCreate) {
|
|
234
|
+
actions.handleMarkerPointChange('create');
|
|
235
|
+
onAddMarker(player.leftMarker, player.currentTime);
|
|
236
|
+
}
|
|
232
237
|
}
|
|
233
238
|
}, {
|
|
234
239
|
keyCode: 35, // End
|
|
@@ -266,16 +271,6 @@ var Shortcut = function (_Component) {
|
|
|
266
271
|
source: 'shortcut'
|
|
267
272
|
});
|
|
268
273
|
}
|
|
269
|
-
}, {
|
|
270
|
-
keyCode: 67, // C Key
|
|
271
|
-
handle: function handle(player, actions) {
|
|
272
|
-
var onAddMarker = _this.props.onAddMarker;
|
|
273
|
-
|
|
274
|
-
if (player.leftMarker > -1 && player.rightMarker > -1 && player.markerCreate) {
|
|
275
|
-
actions.handleMarkerPointChange('create');
|
|
276
|
-
onAddMarker(player.leftMarker, player.rightMarker);
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
274
|
}, {
|
|
280
275
|
keyCode: 68, // D Key
|
|
281
276
|
handle: function handle(player, actions) {
|
|
@@ -463,12 +458,12 @@ var Shortcut = function (_Component) {
|
|
|
463
458
|
key: 'changePlaybackRate',
|
|
464
459
|
value: function changePlaybackRate(player, actions) {
|
|
465
460
|
var playbackRate = player.playbackRate;
|
|
466
|
-
if (playbackRate >=
|
|
467
|
-
playbackRate = 8;
|
|
468
|
-
} else if (playbackRate >= 2) {
|
|
461
|
+
if (playbackRate >= 2) {
|
|
469
462
|
playbackRate = 4;
|
|
470
|
-
} else if (playbackRate >= 1) {
|
|
463
|
+
} else if (playbackRate >= 1.5) {
|
|
471
464
|
playbackRate = 2;
|
|
465
|
+
} else if (playbackRate >= 1) {
|
|
466
|
+
playbackRate = 1.5;
|
|
472
467
|
}
|
|
473
468
|
/*
|
|
474
469
|
* else if (playbackRate >= 1.25) {
|
package/components/Video.js
CHANGED
|
@@ -112,9 +112,14 @@ var defaultProps = {
|
|
|
112
112
|
crossOrigin: 'anonymous'
|
|
113
113
|
};
|
|
114
114
|
|
|
115
|
+
var SubTitleSection = _styledComponents2.default.div.withConfig({
|
|
116
|
+
displayName: 'Video__SubTitleSection',
|
|
117
|
+
componentId: 'omlcc3-0'
|
|
118
|
+
})(['position:absolute;font-family:SFUIText-Regular;font-size:14px;bottom:20px;width:100%;display:flex;justify-content:center;text-align:center;color:#FFFFFF;height:85%;align-items:center;.subtitleContainer{border-radius:4px;width:fit-content;background:#000000;opacity:0.5;padding:8px 10px;line-height:20px;position:absolute;}']);
|
|
119
|
+
|
|
115
120
|
var VideoBlock = _styledComponents2.default.div.withConfig({
|
|
116
121
|
displayName: 'Video__VideoBlock',
|
|
117
|
-
componentId: 'omlcc3-
|
|
122
|
+
componentId: 'omlcc3-1'
|
|
118
123
|
})(['position:relative;&.video-react-player-block{position:relative;transition:all 0.1s ease-in-out;-moz-transition:all 0.1s ease-in-out;-webkit-transition:all 0.1s ease-in-out;-ms-transition:all 0.1s ease-in-out;-o-transition:all 0.1s ease-in-out;video{position:absolute;top:0;left:0;width:100%;height:100%;right:0;bottom:0;}.audio-tracks{position:relative;display:flex;background:rgba(0,0,0,0.5);color:#fff;z-index:10;position:absolute;width:100%;bottom:0;p{cursor:pointer;padding:10px;}}.loader-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;position:absolute;z-index:10;background:rgba(0,0,0,0.5)}}&.ratio-border{border:1px solid rgba(255,255,255,0.5);&:after{content:\'16:9 Safe Area\';position:absolute;color:#fff;font-family:SFUIText-Regular;font-size:12px;transform:rotate(-90deg);top:20%;left:-50px;}}']);
|
|
119
124
|
|
|
120
125
|
var Video = function (_Component) {
|
|
@@ -140,7 +145,8 @@ var Video = function (_Component) {
|
|
|
140
145
|
'left': '0px'
|
|
141
146
|
},
|
|
142
147
|
watermarkInterval: -1,
|
|
143
|
-
isBuffering: false
|
|
148
|
+
isBuffering: false,
|
|
149
|
+
currentSubtitleObj: {}
|
|
144
150
|
};
|
|
145
151
|
_this.video = null; // the html5 video
|
|
146
152
|
_this.manager = new _Manager2.default(props.store);
|
|
@@ -414,7 +420,9 @@ var Video = function (_Component) {
|
|
|
414
420
|
value: function UNSAFE_componentWillReceiveProps(newProps) {
|
|
415
421
|
var _props4 = this.props,
|
|
416
422
|
src = _props4.src,
|
|
417
|
-
activeAudio = _props4.player.activeAudio
|
|
423
|
+
activeAudio = _props4.player.activeAudio,
|
|
424
|
+
currentSubtitleObj = _props4.currentSubtitleObj,
|
|
425
|
+
markers = _props4.markers;
|
|
418
426
|
|
|
419
427
|
if (newProps.src !== src) {
|
|
420
428
|
var isM3U8 = this.state.isM3U8;
|
|
@@ -442,6 +450,26 @@ var Video = function (_Component) {
|
|
|
442
450
|
if (newProps.player.activeAudio && activeAudio.id !== newProps.player.activeAudio.id) {
|
|
443
451
|
this.hls.audioTrack = newProps.player.activeAudio.id;
|
|
444
452
|
}
|
|
453
|
+
if (newProps.subtitleObj && newProps.subtitleObj.field && JSON.stringify(newProps.subtitleObj) !== JSON.stringify(currentSubtitleObj)) {
|
|
454
|
+
// if(newProps.subtitleObj?.field){
|
|
455
|
+
var style = this.getSubtitleStyle(newProps.subtitleObj.field);
|
|
456
|
+
this.setState({
|
|
457
|
+
currentSubtitleObj: {
|
|
458
|
+
line1: newProps.subtitleObj.field.line1,
|
|
459
|
+
line2: newProps.subtitleObj.field.line2,
|
|
460
|
+
style: style
|
|
461
|
+
}
|
|
462
|
+
});
|
|
463
|
+
// } else if (!newProps.subtitleObj?.field?.length) {
|
|
464
|
+
// this.setState({
|
|
465
|
+
// subtitleObj: {
|
|
466
|
+
// }
|
|
467
|
+
// })
|
|
468
|
+
// }
|
|
469
|
+
}
|
|
470
|
+
if (newProps.markers.length && markers.length && newProps.markers[0].values.length !== markers[0].values.length) {
|
|
471
|
+
this.displaySubtitle(newProps.markers);
|
|
472
|
+
}
|
|
445
473
|
}
|
|
446
474
|
|
|
447
475
|
// play the video
|
|
@@ -524,6 +552,7 @@ var Video = function (_Component) {
|
|
|
524
552
|
key: 'forward',
|
|
525
553
|
value: function forward(seconds) {
|
|
526
554
|
this.seek(this.video.currentTime + seconds);
|
|
555
|
+
this.displaySubtitle();
|
|
527
556
|
}
|
|
528
557
|
|
|
529
558
|
// jump back x seconds
|
|
@@ -532,6 +561,7 @@ var Video = function (_Component) {
|
|
|
532
561
|
key: 'replay',
|
|
533
562
|
value: function replay(seconds) {
|
|
534
563
|
this.forward(-seconds);
|
|
564
|
+
this.displaySubtitle();
|
|
535
565
|
}
|
|
536
566
|
|
|
537
567
|
// enter or exist full screen
|
|
@@ -677,6 +707,7 @@ var Video = function (_Component) {
|
|
|
677
707
|
if (onDurationChange) {
|
|
678
708
|
onDurationChange.apply(undefined, arguments);
|
|
679
709
|
}
|
|
710
|
+
this.displaySubtitle();
|
|
680
711
|
}
|
|
681
712
|
|
|
682
713
|
/*
|
|
@@ -698,6 +729,40 @@ var Video = function (_Component) {
|
|
|
698
729
|
if (onProgress) {
|
|
699
730
|
onProgress.apply(undefined, arguments);
|
|
700
731
|
}
|
|
732
|
+
this.displaySubtitle();
|
|
733
|
+
}
|
|
734
|
+
}, {
|
|
735
|
+
key: 'getSubtitleStyle',
|
|
736
|
+
value: function getSubtitleStyle(data) {
|
|
737
|
+
var style = {};
|
|
738
|
+
style.top = data && data.text_position === 'text_position_top' ? '0px' : '';
|
|
739
|
+
style.bottom = data && data.text_position === 'text_position_bottom' ? '0px' : '';
|
|
740
|
+
style.left = data && data.text_alignment === 'text_aligned_left' ? '0px' : '';
|
|
741
|
+
style.right = data && data.text_alignment === 'text_aligned_right' ? '0px' : '';
|
|
742
|
+
return style;
|
|
743
|
+
}
|
|
744
|
+
}, {
|
|
745
|
+
key: 'displaySubtitle',
|
|
746
|
+
value: function displaySubtitle(marker) {
|
|
747
|
+
var _props14 = this.props,
|
|
748
|
+
currentTime = _props14.player.currentTime,
|
|
749
|
+
markers = _props14.markers;
|
|
750
|
+
|
|
751
|
+
var currentMarker = marker || markers;
|
|
752
|
+
if (currentMarker && currentMarker[0] && currentMarker[0].name === "Subtitle") {
|
|
753
|
+
var values = currentMarker[0].values;
|
|
754
|
+
var currentValue = values.filter(function (ele) {
|
|
755
|
+
return ele.in_time <= currentTime && ele.out_time >= currentTime;
|
|
756
|
+
});
|
|
757
|
+
var style = this.getSubtitleStyle(currentValue[0]);
|
|
758
|
+
this.setState({
|
|
759
|
+
currentSubtitleObj: {
|
|
760
|
+
line1: currentValue[0] && currentValue[0].line1 || '',
|
|
761
|
+
line2: currentValue[0] && currentValue[0].line2 || '',
|
|
762
|
+
style: style
|
|
763
|
+
}
|
|
764
|
+
});
|
|
765
|
+
}
|
|
701
766
|
}
|
|
702
767
|
|
|
703
768
|
/*
|
|
@@ -708,11 +773,11 @@ var Video = function (_Component) {
|
|
|
708
773
|
}, {
|
|
709
774
|
key: 'handleEnded',
|
|
710
775
|
value: function handleEnded() {
|
|
711
|
-
var
|
|
712
|
-
loop =
|
|
713
|
-
player =
|
|
714
|
-
actions =
|
|
715
|
-
onEnded =
|
|
776
|
+
var _props15 = this.props,
|
|
777
|
+
loop = _props15.loop,
|
|
778
|
+
player = _props15.player,
|
|
779
|
+
actions = _props15.actions,
|
|
780
|
+
onEnded = _props15.onEnded;
|
|
716
781
|
|
|
717
782
|
if (loop) {
|
|
718
783
|
this.seek(0);
|
|
@@ -732,9 +797,9 @@ var Video = function (_Component) {
|
|
|
732
797
|
}, {
|
|
733
798
|
key: 'handleWaiting',
|
|
734
799
|
value: function handleWaiting() {
|
|
735
|
-
var
|
|
736
|
-
actions =
|
|
737
|
-
onWaiting =
|
|
800
|
+
var _props16 = this.props,
|
|
801
|
+
actions = _props16.actions,
|
|
802
|
+
onWaiting = _props16.onWaiting;
|
|
738
803
|
|
|
739
804
|
actions.handleWaiting(this.getProperties());
|
|
740
805
|
|
|
@@ -751,15 +816,16 @@ var Video = function (_Component) {
|
|
|
751
816
|
}, {
|
|
752
817
|
key: 'handleSeeking',
|
|
753
818
|
value: function handleSeeking() {
|
|
754
|
-
var
|
|
755
|
-
actions =
|
|
756
|
-
onSeeking =
|
|
819
|
+
var _props17 = this.props,
|
|
820
|
+
actions = _props17.actions,
|
|
821
|
+
onSeeking = _props17.onSeeking;
|
|
757
822
|
|
|
758
823
|
actions.handleSeeking(this.getProperties());
|
|
759
824
|
|
|
760
825
|
if (onSeeking) {
|
|
761
826
|
onSeeking.apply(undefined, arguments);
|
|
762
827
|
}
|
|
828
|
+
this.displaySubtitle();
|
|
763
829
|
}
|
|
764
830
|
|
|
765
831
|
/*
|
|
@@ -770,9 +836,9 @@ var Video = function (_Component) {
|
|
|
770
836
|
}, {
|
|
771
837
|
key: 'handleSeeked',
|
|
772
838
|
value: function handleSeeked() {
|
|
773
|
-
var
|
|
774
|
-
actions =
|
|
775
|
-
onSeeked =
|
|
839
|
+
var _props18 = this.props,
|
|
840
|
+
actions = _props18.actions,
|
|
841
|
+
onSeeked = _props18.onSeeked;
|
|
776
842
|
|
|
777
843
|
actions.handleSeeked(this.getProperties());
|
|
778
844
|
|
|
@@ -795,9 +861,9 @@ var Video = function (_Component) {
|
|
|
795
861
|
}, {
|
|
796
862
|
key: 'handleSuspend',
|
|
797
863
|
value: function handleSuspend() {
|
|
798
|
-
var
|
|
799
|
-
actions =
|
|
800
|
-
onSuspend =
|
|
864
|
+
var _props19 = this.props,
|
|
865
|
+
actions = _props19.actions,
|
|
866
|
+
onSuspend = _props19.onSuspend;
|
|
801
867
|
|
|
802
868
|
actions.handleSuspend(this.getProperties());
|
|
803
869
|
if (onSuspend) {
|
|
@@ -810,9 +876,9 @@ var Video = function (_Component) {
|
|
|
810
876
|
}, {
|
|
811
877
|
key: 'handleAbort',
|
|
812
878
|
value: function handleAbort() {
|
|
813
|
-
var
|
|
814
|
-
actions =
|
|
815
|
-
onAbort =
|
|
879
|
+
var _props20 = this.props,
|
|
880
|
+
actions = _props20.actions,
|
|
881
|
+
onAbort = _props20.onAbort;
|
|
816
882
|
|
|
817
883
|
actions.handleAbort(this.getProperties());
|
|
818
884
|
if (onAbort) {
|
|
@@ -825,9 +891,9 @@ var Video = function (_Component) {
|
|
|
825
891
|
}, {
|
|
826
892
|
key: 'handleEmptied',
|
|
827
893
|
value: function handleEmptied() {
|
|
828
|
-
var
|
|
829
|
-
actions =
|
|
830
|
-
onEmptied =
|
|
894
|
+
var _props21 = this.props,
|
|
895
|
+
actions = _props21.actions,
|
|
896
|
+
onEmptied = _props21.onEmptied;
|
|
831
897
|
|
|
832
898
|
actions.handleEmptied(this.getProperties());
|
|
833
899
|
if (onEmptied) {
|
|
@@ -843,9 +909,9 @@ var Video = function (_Component) {
|
|
|
843
909
|
}, {
|
|
844
910
|
key: 'handleStalled',
|
|
845
911
|
value: function handleStalled() {
|
|
846
|
-
var
|
|
847
|
-
actions =
|
|
848
|
-
onStalled =
|
|
912
|
+
var _props22 = this.props,
|
|
913
|
+
actions = _props22.actions,
|
|
914
|
+
onStalled = _props22.onStalled;
|
|
849
915
|
|
|
850
916
|
actions.handleStalled(this.getProperties());
|
|
851
917
|
|
|
@@ -862,10 +928,10 @@ var Video = function (_Component) {
|
|
|
862
928
|
}, {
|
|
863
929
|
key: 'handleLoadedMetaData',
|
|
864
930
|
value: function handleLoadedMetaData() {
|
|
865
|
-
var
|
|
866
|
-
actions =
|
|
867
|
-
onLoadedMetadata =
|
|
868
|
-
startTime =
|
|
931
|
+
var _props23 = this.props,
|
|
932
|
+
actions = _props23.actions,
|
|
933
|
+
onLoadedMetadata = _props23.onLoadedMetadata,
|
|
934
|
+
startTime = _props23.startTime;
|
|
869
935
|
|
|
870
936
|
|
|
871
937
|
if (startTime && startTime > 0) {
|
|
@@ -887,9 +953,9 @@ var Video = function (_Component) {
|
|
|
887
953
|
}, {
|
|
888
954
|
key: 'handleLoadedData',
|
|
889
955
|
value: function handleLoadedData() {
|
|
890
|
-
var
|
|
891
|
-
actions =
|
|
892
|
-
onLoadedData =
|
|
956
|
+
var _props24 = this.props,
|
|
957
|
+
actions = _props24.actions,
|
|
958
|
+
onLoadedData = _props24.onLoadedData;
|
|
893
959
|
|
|
894
960
|
actions.handleLoadedData(this.getProperties());
|
|
895
961
|
|
|
@@ -906,12 +972,12 @@ var Video = function (_Component) {
|
|
|
906
972
|
}, {
|
|
907
973
|
key: 'handleTimeUpdate',
|
|
908
974
|
value: function handleTimeUpdate() {
|
|
909
|
-
var
|
|
910
|
-
|
|
911
|
-
previewActive =
|
|
912
|
-
rightMarker =
|
|
913
|
-
actions =
|
|
914
|
-
onTimeUpdate =
|
|
975
|
+
var _props25 = this.props,
|
|
976
|
+
_props25$player = _props25.player,
|
|
977
|
+
previewActive = _props25$player.previewActive,
|
|
978
|
+
rightMarker = _props25$player.rightMarker,
|
|
979
|
+
actions = _props25.actions,
|
|
980
|
+
onTimeUpdate = _props25.onTimeUpdate;
|
|
915
981
|
|
|
916
982
|
actions.handleTimeUpdate(this.getProperties());
|
|
917
983
|
if (previewActive && this.video.currentTime >= rightMarker) {
|
|
@@ -931,9 +997,9 @@ var Video = function (_Component) {
|
|
|
931
997
|
}, {
|
|
932
998
|
key: 'handleRateChange',
|
|
933
999
|
value: function handleRateChange() {
|
|
934
|
-
var
|
|
935
|
-
actions =
|
|
936
|
-
onRateChange =
|
|
1000
|
+
var _props26 = this.props,
|
|
1001
|
+
actions = _props26.actions,
|
|
1002
|
+
onRateChange = _props26.onRateChange;
|
|
937
1003
|
|
|
938
1004
|
actions.handleRateChange(this.getProperties());
|
|
939
1005
|
|
|
@@ -947,9 +1013,9 @@ var Video = function (_Component) {
|
|
|
947
1013
|
}, {
|
|
948
1014
|
key: 'handleVolumeChange',
|
|
949
1015
|
value: function handleVolumeChange() {
|
|
950
|
-
var
|
|
951
|
-
actions =
|
|
952
|
-
onVolumeChange =
|
|
1016
|
+
var _props27 = this.props,
|
|
1017
|
+
actions = _props27.actions,
|
|
1018
|
+
onVolumeChange = _props27.onVolumeChange;
|
|
953
1019
|
|
|
954
1020
|
actions.handleVolumeChange(this.getProperties());
|
|
955
1021
|
|
|
@@ -966,9 +1032,9 @@ var Video = function (_Component) {
|
|
|
966
1032
|
}, {
|
|
967
1033
|
key: 'handleError',
|
|
968
1034
|
value: function handleError() {
|
|
969
|
-
var
|
|
970
|
-
actions =
|
|
971
|
-
onError =
|
|
1035
|
+
var _props28 = this.props,
|
|
1036
|
+
actions = _props28.actions,
|
|
1037
|
+
onError = _props28.onError;
|
|
972
1038
|
|
|
973
1039
|
actions.handleError(this.getProperties());
|
|
974
1040
|
if (onError) {
|
|
@@ -1080,20 +1146,21 @@ var Video = function (_Component) {
|
|
|
1080
1146
|
value: function render() {
|
|
1081
1147
|
var _this5 = this;
|
|
1082
1148
|
|
|
1083
|
-
var
|
|
1084
|
-
loop =
|
|
1085
|
-
poster =
|
|
1086
|
-
preload =
|
|
1087
|
-
autoPlay =
|
|
1088
|
-
playsInline =
|
|
1089
|
-
muted =
|
|
1090
|
-
crossOrigin =
|
|
1091
|
-
videoId =
|
|
1092
|
-
fileType =
|
|
1093
|
-
userEmail =
|
|
1149
|
+
var _props29 = this.props,
|
|
1150
|
+
loop = _props29.loop,
|
|
1151
|
+
poster = _props29.poster,
|
|
1152
|
+
preload = _props29.preload,
|
|
1153
|
+
autoPlay = _props29.autoPlay,
|
|
1154
|
+
playsInline = _props29.playsInline,
|
|
1155
|
+
muted = _props29.muted,
|
|
1156
|
+
crossOrigin = _props29.crossOrigin,
|
|
1157
|
+
videoId = _props29.videoId,
|
|
1158
|
+
fileType = _props29.fileType,
|
|
1159
|
+
userEmail = _props29.userEmail;
|
|
1094
1160
|
var _state2 = this.state,
|
|
1095
1161
|
isBuffering = _state2.isBuffering,
|
|
1096
|
-
watermark = _state2.watermark
|
|
1162
|
+
watermark = _state2.watermark,
|
|
1163
|
+
currentSubtitleObj = _state2.currentSubtitleObj;
|
|
1097
1164
|
|
|
1098
1165
|
|
|
1099
1166
|
var children = this.getChildren(this.props);
|
|
@@ -1214,6 +1281,37 @@ var Video = function (_Component) {
|
|
|
1214
1281
|
'p',
|
|
1215
1282
|
{ className: 'user-name-wrapper', id: 'watermark-text', style: _extends({}, watermark) },
|
|
1216
1283
|
userEmail
|
|
1284
|
+
),
|
|
1285
|
+
currentSubtitleObj && currentSubtitleObj.line1 && currentSubtitleObj.line1.length && _react2.default.createElement(
|
|
1286
|
+
SubTitleSection,
|
|
1287
|
+
{
|
|
1288
|
+
onClick: function onClick() {
|
|
1289
|
+
if (player.paused) {
|
|
1290
|
+
actions.play();
|
|
1291
|
+
} else {
|
|
1292
|
+
actions.pause();
|
|
1293
|
+
}
|
|
1294
|
+
actions.handleVideoRewind(false);
|
|
1295
|
+
}
|
|
1296
|
+
},
|
|
1297
|
+
_react2.default.createElement(
|
|
1298
|
+
'span',
|
|
1299
|
+
{ className: 'subtitleContainer', style: _extends({}, currentSubtitleObj.style) },
|
|
1300
|
+
_react2.default.createElement(
|
|
1301
|
+
'p',
|
|
1302
|
+
null,
|
|
1303
|
+
' ',
|
|
1304
|
+
currentSubtitleObj.line1,
|
|
1305
|
+
' '
|
|
1306
|
+
),
|
|
1307
|
+
_react2.default.createElement(
|
|
1308
|
+
'p',
|
|
1309
|
+
null,
|
|
1310
|
+
' ',
|
|
1311
|
+
currentSubtitleObj.line2,
|
|
1312
|
+
' '
|
|
1313
|
+
)
|
|
1314
|
+
)
|
|
1217
1315
|
)
|
|
1218
1316
|
);
|
|
1219
1317
|
}
|
|
@@ -68,6 +68,10 @@ var _MarkingControl = require('../marking-controls/MarkingControl');
|
|
|
68
68
|
|
|
69
69
|
var _MarkingControl2 = _interopRequireDefault(_MarkingControl);
|
|
70
70
|
|
|
71
|
+
var _SubtitleLanguagesMenuButton = require('./SubtitleLanguagesMenuButton');
|
|
72
|
+
|
|
73
|
+
var _SubtitleLanguagesMenuButton2 = _interopRequireDefault(_SubtitleLanguagesMenuButton);
|
|
74
|
+
|
|
71
75
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
72
76
|
|
|
73
77
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
@@ -145,6 +149,9 @@ var ControlBar = function (_Component) {
|
|
|
145
149
|
}, this.props, {
|
|
146
150
|
key: 'volume-menu-button',
|
|
147
151
|
order: 7
|
|
152
|
+
})), _react2.default.createElement(_SubtitleLanguagesMenuButton2.default, _extends({}, this.props, {
|
|
153
|
+
key: 'subtitle-menu-button',
|
|
154
|
+
order: 7
|
|
148
155
|
})), _react2.default.createElement(_AudioTracksMenuButton2.default, _extends({}, this.props, {
|
|
149
156
|
key: 'audio-tracks-menu-button',
|
|
150
157
|
order: 7
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
8
|
+
|
|
9
|
+
var _propTypes = require('prop-types');
|
|
10
|
+
|
|
11
|
+
var _react = require('react');
|
|
12
|
+
|
|
13
|
+
var _react2 = _interopRequireDefault(_react);
|
|
14
|
+
|
|
15
|
+
var _styledComponents = require('styled-components');
|
|
16
|
+
|
|
17
|
+
var _styledComponents2 = _interopRequireDefault(_styledComponents);
|
|
18
|
+
|
|
19
|
+
var _Menu = require('../Menu');
|
|
20
|
+
|
|
21
|
+
var _Menu2 = _interopRequireDefault(_Menu);
|
|
22
|
+
|
|
23
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
|
+
|
|
25
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
26
|
+
|
|
27
|
+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
|
28
|
+
|
|
29
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
|
30
|
+
|
|
31
|
+
var propTypes = {
|
|
32
|
+
actions: _propTypes.PropTypes.instanceOf(Object),
|
|
33
|
+
player: _propTypes.PropTypes.instanceOf(Object)
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var SubtitleMenuBlock = (0, _styledComponents2.default)('div').withConfig({
|
|
37
|
+
displayName: 'SubtitleLanguagesMenuButton__SubtitleMenuBlock',
|
|
38
|
+
componentId: 'sc-1g8hfwo-0'
|
|
39
|
+
})(['text-align:left;background:transparent;cursor:pointer;border-bottom:1px solid #eeeeee;&:last-child{border:none;}&:hover,&:focus{background:rgba(0,206,198,0.1);}p{padding 15px;font-family:SFUIText-Medium;font-size:12px;white-space:nowrap;}']);
|
|
40
|
+
|
|
41
|
+
var SubtitleLanguagesMenuButton = function (_Component) {
|
|
42
|
+
_inherits(SubtitleLanguagesMenuButton, _Component);
|
|
43
|
+
|
|
44
|
+
function SubtitleLanguagesMenuButton(props, context) {
|
|
45
|
+
_classCallCheck(this, SubtitleLanguagesMenuButton);
|
|
46
|
+
|
|
47
|
+
var _this = _possibleConstructorReturn(this, (SubtitleLanguagesMenuButton.__proto__ || Object.getPrototypeOf(SubtitleLanguagesMenuButton)).call(this, props, context));
|
|
48
|
+
|
|
49
|
+
_this.state = {
|
|
50
|
+
activeLanguage: ''
|
|
51
|
+
};
|
|
52
|
+
return _this;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
_createClass(SubtitleLanguagesMenuButton, [{
|
|
56
|
+
key: 'changeSubtitle',
|
|
57
|
+
value: function changeSubtitle(subtitle) {
|
|
58
|
+
var filterSelectedSubtitle = this.props.filterSelectedSubtitle;
|
|
59
|
+
|
|
60
|
+
filterSelectedSubtitle(subtitle.subtitle_info_id);
|
|
61
|
+
this.setState({
|
|
62
|
+
activeLanguage: subtitle.subtitle_info_id
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}, {
|
|
66
|
+
key: 'componentDidMount',
|
|
67
|
+
value: function componentDidMount() {
|
|
68
|
+
var subtitleData = this.props.subtitleData;
|
|
69
|
+
|
|
70
|
+
if (subtitleData && subtitleData.length) {
|
|
71
|
+
this.setState({
|
|
72
|
+
activeLanguage: subtitleData[0].subtitle_info_id
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}, {
|
|
77
|
+
key: 'render',
|
|
78
|
+
value: function render() {
|
|
79
|
+
var _this2 = this;
|
|
80
|
+
|
|
81
|
+
var _props = this.props,
|
|
82
|
+
player = _props.player,
|
|
83
|
+
actions = _props.actions,
|
|
84
|
+
subtitleData = _props.subtitleData;
|
|
85
|
+
var activeLanguage = this.state.activeLanguage;
|
|
86
|
+
|
|
87
|
+
return _react2.default.createElement(
|
|
88
|
+
_react2.default.Fragment,
|
|
89
|
+
null,
|
|
90
|
+
subtitleData && subtitleData.length ? _react2.default.createElement(
|
|
91
|
+
_Menu2.default,
|
|
92
|
+
{
|
|
93
|
+
icon: 'subtitle',
|
|
94
|
+
player: player,
|
|
95
|
+
actions: actions,
|
|
96
|
+
style: { marginRight: '10px' },
|
|
97
|
+
position: 'left'
|
|
98
|
+
},
|
|
99
|
+
_react2.default.createElement(
|
|
100
|
+
'div',
|
|
101
|
+
{ className: 'menu-container' },
|
|
102
|
+
subtitleData.map(function (subtitle) {
|
|
103
|
+
return _react2.default.createElement(
|
|
104
|
+
SubtitleMenuBlock,
|
|
105
|
+
{
|
|
106
|
+
onClick: function onClick() {
|
|
107
|
+
return _this2.changeSubtitle(subtitle);
|
|
108
|
+
},
|
|
109
|
+
role: 'presentation',
|
|
110
|
+
key: subtitle.subtitle_info_id,
|
|
111
|
+
style: activeLanguage === subtitle.subtitle_info_id ? { pointerEvents: 'none' } : null
|
|
112
|
+
},
|
|
113
|
+
_react2.default.createElement(
|
|
114
|
+
'p',
|
|
115
|
+
{
|
|
116
|
+
style: activeLanguage === subtitle.subtitle_info_id ? { color: '#00cec6', pointerEvents: 'none' } : { color: '#333333' }
|
|
117
|
+
},
|
|
118
|
+
subtitle.title
|
|
119
|
+
)
|
|
120
|
+
);
|
|
121
|
+
})
|
|
122
|
+
)
|
|
123
|
+
) : null
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
}]);
|
|
127
|
+
|
|
128
|
+
return SubtitleLanguagesMenuButton;
|
|
129
|
+
}(_react.Component);
|
|
130
|
+
|
|
131
|
+
SubtitleLanguagesMenuButton.propTypes = propTypes;
|
|
132
|
+
SubtitleLanguagesMenuButton.displayName = 'SubtitleLanguagesMenuButton';
|
|
133
|
+
exports.default = SubtitleLanguagesMenuButton;
|
|
@@ -100,13 +100,17 @@ var MarkOutControl = function (_Component) {
|
|
|
100
100
|
actions = _props2.actions,
|
|
101
101
|
leftMarker = _props2.leftMarker,
|
|
102
102
|
controlType = _props2.controlType,
|
|
103
|
-
onMarkerSelect = _props2.onMarkerSelect
|
|
103
|
+
onMarkerSelect = _props2.onMarkerSelect,
|
|
104
|
+
onAddMarker = _props2.onAddMarker;
|
|
104
105
|
|
|
105
106
|
if (leftMarker > -1 && player.currentTime > leftMarker) {
|
|
106
107
|
actions.handleMarkerPointChange('add', 'right', player.currentTime);
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
//Commented for CN-632.
|
|
109
|
+
// if (controlType === 'default') {
|
|
110
|
+
// onMarkerSelect(leftMarker, player.currentTime);
|
|
111
|
+
// }
|
|
112
|
+
actions.handleMarkerPointChange('create');
|
|
113
|
+
onAddMarker(leftMarker, player.currentTime);
|
|
110
114
|
}
|
|
111
115
|
}
|
|
112
116
|
}, {
|
|
@@ -84,10 +84,10 @@ function MarkingControl(_ref) {
|
|
|
84
84
|
return _react2.default.createElement(
|
|
85
85
|
_react2.default.Fragment,
|
|
86
86
|
null,
|
|
87
|
-
playerType !== 'panel' && playerType !== 'default' && playerType !== 'clipping_default'
|
|
87
|
+
playerType !== 'panel' && playerType !== 'default' && playerType !== 'clipping_default' ? _react2.default.createElement(
|
|
88
88
|
MarkingBlock,
|
|
89
89
|
null,
|
|
90
|
-
(!(player.leftMarker > -1) || !(player.rightMarker > -1)) && playerType !== 'panel' && playerType !== 'default' && playerType !== 'clipping_default' ? _react2.default.createElement(
|
|
90
|
+
(!(player.leftMarker > -1) || !(player.rightMarker > -1)) && playerType !== 'panel' && playerType !== 'default' && playerType !== 'clipping_default' && !playerReadOnlyMode && !disablePlayerActions.includes("marking_controls") ? _react2.default.createElement(
|
|
91
91
|
_react2.default.Fragment,
|
|
92
92
|
null,
|
|
93
93
|
_react2.default.createElement(_MarkInControl2.default, {
|
|
@@ -105,7 +105,8 @@ function MarkingControl(_ref) {
|
|
|
105
105
|
markers: markers,
|
|
106
106
|
controlType: controlType,
|
|
107
107
|
onMarkerSelect: onMarkerSelect,
|
|
108
|
-
allowMarkerOverlap: allowMarkerOverlap
|
|
108
|
+
allowMarkerOverlap: allowMarkerOverlap,
|
|
109
|
+
onAddMarker: onAddMarker
|
|
109
110
|
})
|
|
110
111
|
) : null,
|
|
111
112
|
player.leftMarker > -1 || player.rightMarker > -1 ? _react2.default.createElement(_MarkingDuration2.default, {
|
|
@@ -114,21 +115,11 @@ function MarkingControl(_ref) {
|
|
|
114
115
|
frameRate: frameRate,
|
|
115
116
|
initialTime: initialTime
|
|
116
117
|
}) : null,
|
|
117
|
-
player.leftMarker > -1 && player.rightMarker > -1 ? _react2.default.createElement(
|
|
118
|
-
_react2.default.Fragment,
|
|
119
|
-
null,
|
|
120
|
-
player.markerType === 'create' && controlType === 'advanced' && player.markerCreate ? _react2.default.createElement(_MarkingAddButton2.default, {
|
|
121
|
-
leftMarker: player.leftMarker,
|
|
122
|
-
rightMarker: player.rightMarker,
|
|
123
|
-
onAddMarker: onAddMarker,
|
|
124
|
-
actions: actions
|
|
125
|
-
}) : null
|
|
126
|
-
) : null,
|
|
127
118
|
player.leftMarker > -1 && player.rightMarker > -1 ? _react2.default.createElement(_MarkingPreview2.default, {
|
|
128
119
|
actions: actions,
|
|
129
120
|
leftMarker: player.leftMarker
|
|
130
121
|
}) : null,
|
|
131
|
-
(player.leftMarker > -1 || player.rightMarker > -1) && player.markerType === 'create' && player.markerCreate ? _react2.default.createElement(_MarkingDeleteButton2.default, {
|
|
122
|
+
(player.leftMarker > -1 || player.rightMarker > -1) && player.markerType === 'create' && player.markerCreate && !playerReadOnlyMode && !disablePlayerActions.includes("marking_controls") ? _react2.default.createElement(_MarkingDeleteButton2.default, {
|
|
132
123
|
actions: actions,
|
|
133
124
|
onDeleteMarker: onDeleteMarker
|
|
134
125
|
}) : null
|
|
@@ -102,35 +102,35 @@ var PlaybackRateControl = function (_Component) {
|
|
|
102
102
|
_react2.default.createElement(
|
|
103
103
|
'div',
|
|
104
104
|
{
|
|
105
|
-
className: player.playbackRate ===
|
|
105
|
+
className: player.playbackRate === 1.5 ? 'playback-rate active' : 'playback-rate',
|
|
106
106
|
onClick: function onClick() {
|
|
107
|
-
return _this2.changePlaybackRate(
|
|
107
|
+
return _this2.changePlaybackRate(1.5);
|
|
108
108
|
},
|
|
109
109
|
role: 'presentation'
|
|
110
110
|
},
|
|
111
|
-
'
|
|
111
|
+
'1.5x'
|
|
112
112
|
),
|
|
113
113
|
_react2.default.createElement(
|
|
114
114
|
'div',
|
|
115
115
|
{
|
|
116
|
-
className: player.playbackRate ===
|
|
116
|
+
className: player.playbackRate === 2 ? 'playback-rate active' : 'playback-rate',
|
|
117
117
|
onClick: function onClick() {
|
|
118
|
-
return _this2.changePlaybackRate(
|
|
118
|
+
return _this2.changePlaybackRate(2);
|
|
119
119
|
},
|
|
120
120
|
role: 'presentation'
|
|
121
121
|
},
|
|
122
|
-
'
|
|
122
|
+
'2x'
|
|
123
123
|
),
|
|
124
124
|
_react2.default.createElement(
|
|
125
125
|
'div',
|
|
126
126
|
{
|
|
127
|
-
className: player.playbackRate ===
|
|
127
|
+
className: player.playbackRate === 4 ? 'playback-rate active' : 'playback-rate',
|
|
128
128
|
onClick: function onClick() {
|
|
129
|
-
return _this2.changePlaybackRate(
|
|
129
|
+
return _this2.changePlaybackRate(4);
|
|
130
130
|
},
|
|
131
131
|
role: 'presentation'
|
|
132
132
|
},
|
|
133
|
-
'
|
|
133
|
+
'4x'
|
|
134
134
|
)
|
|
135
135
|
)
|
|
136
136
|
);
|