Commit 47a4d1c5 authored by baixian's avatar baixian

优化

parent 0974bbd1
......@@ -18,5 +18,5 @@
</head>
<body>
<div id="root"></div>
<script type="text/javascript" src="/dist/main.80d239.js"></script></body>
<script type="text/javascript" src="/dist/main.1af2e7.js"></script></body>
</html>
\ No newline at end of file
import React from 'react';
import { Icon, Button } from 'antd';
import videojs from 'video.js';
import playlist from 'videojs-playlist';
import playlistUi from 'videojs-playlist-ui';
import componentStyle from './VideoListPlay.less';
import { imagify, ossVideofy } from '../../../utils/index';
let myVideo;
let curr = 0;
class VideoListPlay extends React.Component {
constructor(props) {
super(props);
this.state = {
};
videojs.addLanguage('zh-CN', {
Play: '播放',
Pause: '暂停',
'Current Time': '当前时间',
Duration: '时长',
'Remaining Time': '剩余时间',
'Stream Type': '媒体流类型',
LIVE: '直播',
Loaded: '加载完毕',
Progress: '进度',
Fullscreen: '全屏',
'Non-Fullscreen': '退出全屏',
Mute: '静音',
Unmute: '取消静音',
'Playback Rate': '播放速度',
Subtitles: '字幕',
'subtitles off': '关闭字幕',
Captions: '内嵌字幕',
'captions off': '关闭内嵌字幕',
Chapters: '节目段落',
'Close Modal Dialog': '关闭弹窗',
Descriptions: '描述',
'descriptions off': '关闭描述',
'Audio Track': '音轨',
'You aborted the media playback': '视频播放被终止',
'A network error caused the media download to fail part-way.': '网络错误导致视频下载中途失败。',
'The media could not be loaded, either because the server or network failed or because the format is not supported.': '视频因格式不支持或者服务器或网络的问题无法加载。',
'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.': '由于视频文件损坏或是该视频使用了你的浏览器不支持的功能,播放终止。',
'No compatible source was found for this media.': '无法找到此视频兼容的源。',
'The media is encrypted and we do not have the keys to decrypt it.': '视频已加密,无法解密。',
'Play Video': '播放视频',
Close: '关闭',
'Modal Window': '弹窗',
'This is a modal window': '这是一个弹窗',
'This modal can be closed by pressing the Escape key or activating the close button.': '可以按ESC按键或启用关闭按钮来关闭此弹窗。',
', opens captions settings dialog': ', 开启标题设置弹窗',
', opens subtitles settings dialog': ', 开启字幕设置弹窗',
', opens descriptions settings dialog': ', 开启描述设置弹窗',
', selected': ', 选择',
'captions settings': '字幕设定',
'Audio Player': '音频播放器',
'Video Player': '视频播放器',
Replay: '重播',
'Progress Bar': '进度条',
'Volume Level': '音量',
'subtitles settings': '字幕设定',
'descriptions settings': '描述设定',
Text: '文字',
White: '白',
Black: '黑',
Red: '红',
Green: '绿',
Blue: '蓝',
Yellow: '黄',
Magenta: '紫红',
Cyan: '青',
Background: '背景',
Window: '视窗',
Transparent: '透明',
'Semi-Transparent': '半透明',
Opaque: '不透明',
'Font Size': '字体尺寸',
'Text Edge Style': '字体边缘样式',
None: '无',
Raised: '浮雕',
Depressed: '压低',
Uniform: '均匀',
Dropshadow: '下阴影',
'Font Family': '字体库',
'Proportional Sans-Serif': '比例无细体',
'Monospace Sans-Serif': '单间隔无细体',
'Proportional Serif': '比例细体',
'Monospace Serif': '单间隔细体',
Casual: '舒适',
Script: '手写体',
'Small Caps': '小型大写字体',
Reset: '重置',
'restore all settings to the default values': '恢复全部设定至预设值',
Done: '完成',
'Caption Settings Dialog': '字幕设定视窗',
'Beginning of dialog window. Escape will cancel and close the window.': '开始对话视窗。离开会取消及关闭视窗',
'End of dialog window.': '结束对话视窗',
'Now Playing': '正在播放',
'Up Next': '下一个播放',
'Untitled Video': '无标题视频',
});
}
componentDidMount() {
const { videoList, poster } = this.props;
const options = {
playbackRates: [0.5, 1, 1.5, 2, 4, 8, 16],
poster: imagify(poster),
language: 'zh-CN',
}; //
const source = document.getElementById('source');
// 视频列表播放 列表格式 [{name:'111',sources:[{src:'', type: 'video/mp4',}]}]
if (videoList.length > 0) {
source.setAttribute('src', videoList[0].sources[0].src);
myVideo = videojs('myVideo', options, (onPlayerReady) => {
myVideo.play();
myVideo.on('ended', () => {
if (curr >= videoList.length) {
curr = 0;
}
myVideo.src(videoList[curr].sources[0].src);
myVideo.load();
myVideo.play();
curr++;
});
});
curr++;
myVideo.playlist(videoList);
myVideo.playlistUi();
}
}
componentWillUnmount() {
curr = 0;
myVideo.dispose(); // 销毁videojs 不然下次打开是原生的Video
}
render() {
const { lookVideoPoster, closeVideoPlay } = this.props;
return (
<div className={`${componentStyle.VideoPlayBox} VideoPlayBox`}>
<Icon type="close-circle" className={componentStyle.closeIcon} onClick={closeVideoPlay} />
<div className={componentStyle.videoitem}>
<video
id="myVideo"
controls
preload="metadata"
className="video-js"
style={{
width: '100%',
height: '90%',
}}
>
<source id="source" />
</video>
<div id="playList" className="vjs-playlist"></div>
</div>
</div>
);
}
}
export default VideoListPlay;
.VideoPlayBox {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
z-index: 1200;
background-color: rgba(0,0,0,0.5);
display: flex;
align-items: center;
justify-content: center;
.videoitem {
width: 60%!important;
max-height: 100%!important;
position: relative;
max-width: 100%;
height: 100%;
padding-top: 5%;
:global {
.video-js{
float:left;
width: 70% !important;
height: 100%;
}
.vjs-playlist{
float:left;
width: 30%;
height: 90%;
}
.vjs-playlist-item{
border: 1px solid #FFFFFF;
}
.vjs-playlist .vjs-selected{
border: 1px solid #00FF00;
}
.vjs-playlist .vjs-selected img{
opacity: .5;
}
}
}
.closeIcon {
position: absolute;
right: 50px;
top: 50px;
color: #fff;
z-index: 3;
font-size: 40px;
cursor: pointer;
}
}
:global {
.VideoPlayBox {
.video-js .vjs-big-play-button .vjs-icon-placeholder:before, .video-js .vjs-modal-dialog, .vjs-button > .vjs-icon-placeholder:before, .vjs-modal-dialog .vjs-modal-dialog-content {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%
}
.video-js .vjs-big-play-button .vjs-icon-placeholder:before, .vjs-button > .vjs-icon-placeholder:before {
text-align: center
}
@font-face {
font-family: VideoJS;
src: url(data:application/font-woff;charset=utf-8;base64,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) format("woff");
font-weight: 400;
font-style: normal
}
.video-js .vjs-big-play-button .vjs-icon-placeholder:before, .video-js .vjs-play-control .vjs-icon-placeholder, .vjs-icon-play {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js .vjs-big-play-button .vjs-icon-placeholder:before, .video-js .vjs-play-control .vjs-icon-placeholder:before, .vjs-icon-play:before {
content: "\f101"
}
.vjs-icon-play-circle {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-play-circle:before {
content: "\f102"
}
.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder, .vjs-icon-pause {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before, .vjs-icon-pause:before {
content: "\f103"
}
.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder, .vjs-icon-volume-mute {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before, .vjs-icon-volume-mute:before {
content: "\f104"
}
.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder, .vjs-icon-volume-low {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before, .vjs-icon-volume-low:before {
content: "\f105"
}
.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder, .vjs-icon-volume-mid {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before, .vjs-icon-volume-mid:before {
content: "\f106"
}
.video-js .vjs-mute-control .vjs-icon-placeholder, .vjs-icon-volume-high {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js .vjs-mute-control .vjs-icon-placeholder:before, .vjs-icon-volume-high:before {
content: "\f107"
}
.video-js .vjs-fullscreen-control .vjs-icon-placeholder, .vjs-icon-fullscreen-enter {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js .vjs-fullscreen-control .vjs-icon-placeholder:before, .vjs-icon-fullscreen-enter:before {
content: "\f108"
}
.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder, .vjs-icon-fullscreen-exit {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before, .vjs-icon-fullscreen-exit:before {
content: "\f109"
}
.vjs-icon-square {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-square:before {
content: "\f10a"
}
.vjs-icon-spinner {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-spinner:before {
content: "\f10b"
}
.video-js .vjs-subs-caps-button .vjs-icon-placeholder, .video-js .vjs-subtitles-button .vjs-icon-placeholder, .video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder, .video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder, .video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder, .video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder, .vjs-icon-subtitles {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js .vjs-subs-caps-button .vjs-icon-placeholder:before, .video-js .vjs-subtitles-button .vjs-icon-placeholder:before, .video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before, .video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before, .video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before, .video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before, .vjs-icon-subtitles:before {
content: "\f10c"
}
.video-js .vjs-captions-button .vjs-icon-placeholder, .video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder, .video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder, .vjs-icon-captions {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js .vjs-captions-button .vjs-icon-placeholder:before, .video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before, .video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before, .vjs-icon-captions:before {
content: "\f10d"
}
.video-js .vjs-chapters-button .vjs-icon-placeholder, .vjs-icon-chapters {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js .vjs-chapters-button .vjs-icon-placeholder:before, .vjs-icon-chapters:before {
content: "\f10e"
}
.vjs-icon-share {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-share:before {
content: "\f10f"
}
.vjs-icon-cog {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-cog:before {
content: "\f110"
}
.video-js .vjs-play-progress, .video-js .vjs-volume-level, .vjs-icon-circle, .vjs-seek-to-live-control .vjs-icon-placeholder {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js .vjs-play-progress:before, .video-js .vjs-volume-level:before, .vjs-icon-circle:before, .vjs-seek-to-live-control .vjs-icon-placeholder:before {
content: "\f111"
}
.vjs-icon-circle-outline {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-circle-outline:before {
content: "\f112"
}
.vjs-icon-circle-inner-circle {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-circle-inner-circle:before {
content: "\f113"
}
.vjs-icon-hd {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-hd:before {
content: "\f114"
}
.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder, .vjs-icon-cancel {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before, .vjs-icon-cancel:before {
content: "\f115"
}
.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder, .vjs-icon-replay {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before, .vjs-icon-replay:before {
content: "\f116"
}
.vjs-icon-facebook {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-facebook:before {
content: "\f117"
}
.vjs-icon-gplus {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-gplus:before {
content: "\f118"
}
.vjs-icon-linkedin {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-linkedin:before {
content: "\f119"
}
.vjs-icon-twitter {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-twitter:before {
content: "\f11a"
}
.vjs-icon-tumblr {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-tumblr:before {
content: "\f11b"
}
.vjs-icon-pinterest {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-pinterest:before {
content: "\f11c"
}
.video-js .vjs-descriptions-button .vjs-icon-placeholder, .vjs-icon-audio-description {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js .vjs-descriptions-button .vjs-icon-placeholder:before, .vjs-icon-audio-description:before {
content: "\f11d"
}
.video-js .vjs-audio-button .vjs-icon-placeholder, .vjs-icon-audio {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.video-js .vjs-audio-button .vjs-icon-placeholder:before, .vjs-icon-audio:before {
content: "\f11e"
}
.vjs-icon-next-item {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-next-item:before {
content: "\f11f"
}
.vjs-icon-previous-item {
font-family: VideoJS;
font-weight: 400;
font-style: normal
}
.vjs-icon-previous-item:before {
content: "\f120"
}
.video-js {
display: block;
vertical-align: top;
box-sizing: border-box;
color: #fff;
background-color: #000;
position: relative;
padding: 0;
font-size: 10px;
line-height: 1;
font-weight: 400;
font-style: normal;
font-family: Arial, Helvetica, sans-serif;
word-break: initial
}
.video-js:-moz-full-screen {
position: absolute
}
.video-js:-webkit-full-screen {
width: 100% !important;
height: 100% !important
}
.video-js[tabindex="-1"] {
outline: 0
}
.video-js *, .video-js :after, .video-js :before {
box-sizing: inherit
}
.video-js ul {
font-family: inherit;
font-size: inherit;
line-height: inherit;
list-style-position: outside;
margin-left: 0;
margin-right: 0;
margin-top: 0;
margin-bottom: 0
}
.video-js.vjs-16-9, .video-js.vjs-4-3, .video-js.vjs-fluid {
width: 100%;
max-width: 100%;
height: 0
}
.video-js.vjs-16-9 {
padding-top: 56.25%
}
.video-js.vjs-4-3 {
padding-top: 75%
}
.video-js.vjs-fill {
width: 100%;
height: 100%
}
.video-js .vjs-tech {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%
}
body.vjs-full-window {
padding: 0;
margin: 0;
height: 100%
}
.vjs-full-window .video-js.vjs-fullscreen {
position: fixed;
overflow: hidden;
z-index: 1000;
left: 0;
top: 0;
bottom: 0;
right: 0
}
.video-js.vjs-fullscreen {
width: 100% !important;
height: 100% !important;
padding-top: 0 !important
}
.video-js.vjs-fullscreen.vjs-user-inactive {
cursor: none
}
.vjs-hidden {
display: none !important
}
.vjs-disabled {
opacity: .5;
cursor: default
}
.video-js .vjs-offscreen {
height: 1px;
left: -9999px;
position: absolute;
top: 0;
width: 1px
}
.vjs-lock-showing {
display: block !important;
opacity: 1;
visibility: visible
}
.vjs-no-js {
padding: 20px;
color: #fff;
background-color: #000;
font-size: 18px;
font-family: Arial, Helvetica, sans-serif;
text-align: center;
width: 300px;
height: 150px;
margin: 0 auto
}
.vjs-no-js a, .vjs-no-js a:visited {
color: #66a8cc
}
.video-js .vjs-big-play-button {
font-size: 3em;
line-height: 1.5em;
height: 1.5em;
width: 3em;
display: block;
position: absolute;
top: 10px;
left: 10px;
padding: 0;
cursor: pointer;
opacity: 1;
border: .06666em solid #fff;
background-color: #2b333f;
background-color: rgba(43, 51, 63, .7);
border-radius: .3em;
transition: all .4s
}
.vjs-big-play-centered .vjs-big-play-button {
top: 50%;
left: 50%;
margin-top: -.75em;
margin-left: -1.5em
}
.video-js .vjs-big-play-button:focus, .video-js:hover .vjs-big-play-button {
border-color: #fff;
background-color: #73859f;
background-color: rgba(115, 133, 159, .5);
transition: all 0s
}
.vjs-controls-disabled .vjs-big-play-button, .vjs-error .vjs-big-play-button, .vjs-has-started .vjs-big-play-button, .vjs-using-native-controls .vjs-big-play-button {
display: none
}
.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause .vjs-big-play-button {
display: block
}
.video-js button {
background: 0 0;
border: none;
color: inherit;
display: inline-block;
font-size: inherit;
line-height: inherit;
text-transform: none;
text-decoration: none;
transition: none;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none
}
.vjs-control .vjs-button {
width: 100%;
height: 100%
}
.video-js .vjs-control.vjs-close-button {
cursor: pointer;
height: 3em;
position: absolute;
right: 0;
top: .5em;
z-index: 2
}
.video-js .vjs-modal-dialog {
background: rgba(0, 0, 0, .8);
background: linear-gradient(180deg, rgba(0, 0, 0, .8), rgba(255, 255, 255, 0));
overflow: auto
}
.video-js .vjs-modal-dialog > * {
box-sizing: border-box
}
.vjs-modal-dialog .vjs-modal-dialog-content {
font-size: 1.2em;
line-height: 1.5;
padding: 20px 24px;
z-index: 1
}
.vjs-menu-button {
cursor: pointer
}
.vjs-menu-button.vjs-disabled {
cursor: default
}
.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu {
display: none
}
.vjs-menu .vjs-menu-content {
display: block;
padding: 0;
margin: 0;
font-family: Arial, Helvetica, sans-serif;
overflow: auto
}
.vjs-menu .vjs-menu-content > * {
box-sizing: border-box
}
.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu {
display: none
}
.vjs-menu li {
list-style: none;
margin: 0;
padding: .2em 0;
line-height: 1.4em;
font-size: 1.2em;
text-align: center;
text-transform: lowercase
}
.js-focus-visible .vjs-menu li.vjs-menu-item:hover, .vjs-menu li.vjs-menu-item:focus, .vjs-menu li.vjs-menu-item:hover {
background-color: #73859f;
background-color: rgba(115, 133, 159, .5)
}
.js-focus-visible .vjs-menu li.vjs-selected:hover, .vjs-menu li.vjs-selected, .vjs-menu li.vjs-selected:focus, .vjs-menu li.vjs-selected:hover {
background-color: #fff;
color: #2b333f
}
.vjs-menu li.vjs-menu-title {
text-align: center;
text-transform: uppercase;
font-size: 1em;
line-height: 2em;
padding: 0;
margin: 0 0 .3em 0;
font-weight: 700;
cursor: default
}
.vjs-menu-button-popup .vjs-menu {
display: none;
position: absolute;
bottom: 0;
width: 10em;
left: -3em;
height: 0;
margin-bottom: 1.5em;
border-top-color: rgba(43, 51, 63, .7)
}
.vjs-menu-button-popup .vjs-menu .vjs-menu-content {
background-color: #2b333f;
background-color: rgba(43, 51, 63, .7);
position: absolute;
width: 100%;
bottom: 1.5em;
max-height: 15em
}
.vjs-menu-button-popup .vjs-menu.vjs-lock-showing, .vjs-workinghover .vjs-menu-button-popup:hover .vjs-menu {
display: block
}
.video-js .vjs-menu-button-inline {
transition: all .4s;
overflow: hidden
}
.video-js .vjs-menu-button-inline:before {
width: 2.222222222em
}
.video-js .vjs-menu-button-inline.vjs-slider-active, .video-js .vjs-menu-button-inline:focus, .video-js .vjs-menu-button-inline:hover, .video-js.vjs-no-flex .vjs-menu-button-inline {
width: 12em
}
.vjs-menu-button-inline .vjs-menu {
opacity: 0;
height: 100%;
width: auto;
position: absolute;
left: 4em;
top: 0;
padding: 0;
margin: 0;
transition: all .4s
}
.vjs-menu-button-inline.vjs-slider-active .vjs-menu, .vjs-menu-button-inline:focus .vjs-menu, .vjs-menu-button-inline:hover .vjs-menu {
display: block;
opacity: 1
}
.vjs-no-flex .vjs-menu-button-inline .vjs-menu {
display: block;
opacity: 1;
position: relative;
width: auto
}
.vjs-no-flex .vjs-menu-button-inline.vjs-slider-active .vjs-menu, .vjs-no-flex .vjs-menu-button-inline:focus .vjs-menu, .vjs-no-flex .vjs-menu-button-inline:hover .vjs-menu {
width: auto
}
.vjs-menu-button-inline .vjs-menu-content {
width: auto;
height: 100%;
margin: 0;
overflow: hidden
}
.video-js .vjs-control-bar {
display: none;
width: 100%;
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 3em;
background-color: #2b333f;
background-color: rgba(43, 51, 63, .7)
}
.vjs-has-started .vjs-control-bar {
display: flex;
visibility: visible;
opacity: 1;
transition: visibility .1s, opacity .1s
}
.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
visibility: visible;
opacity: 0;
transition: visibility 1s, opacity 1s
}
.vjs-controls-disabled .vjs-control-bar, .vjs-error .vjs-control-bar, .vjs-using-native-controls .vjs-control-bar {
display: none !important
}
.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
opacity: 1;
visibility: visible
}
.vjs-has-started.vjs-no-flex .vjs-control-bar {
display: table
}
.video-js .vjs-control {
position: relative;
text-align: center;
margin: 0;
padding: 0;
height: 100%;
width: 4em;
flex: none
}
.vjs-button > .vjs-icon-placeholder:before {
font-size: 1.8em;
line-height: 1.67
}
.video-js .vjs-control:focus, .video-js .vjs-control:focus:before, .video-js .vjs-control:hover:before {
text-shadow: 0 0 1em #fff
}
.video-js .vjs-control-text {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px
}
.vjs-no-flex .vjs-control {
display: table-cell;
vertical-align: middle
}
.video-js .vjs-custom-control-spacer {
display: none
}
.video-js .vjs-progress-control {
cursor: pointer;
flex: auto;
display: flex;
align-items: center;
min-width: 4em;
touch-action: none
}
.video-js .vjs-progress-control.disabled {
cursor: default
}
.vjs-live .vjs-progress-control {
display: none
}
.vjs-liveui .vjs-progress-control {
display: flex;
align-items: center
}
.vjs-no-flex .vjs-progress-control {
width: auto
}
.video-js .vjs-progress-holder {
flex: auto;
transition: all .2s;
height: .3em
}
.video-js .vjs-progress-control .vjs-progress-holder {
margin: 0 10px
}
.video-js .vjs-progress-control:hover .vjs-progress-holder {
font-size: 1.666666666666666666em
}
.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled {
font-size: 1em
}
.video-js .vjs-progress-holder .vjs-load-progress, .video-js .vjs-progress-holder .vjs-load-progress div, .video-js .vjs-progress-holder .vjs-play-progress {
position: absolute;
display: block;
height: 100%;
margin: 0;
padding: 0;
width: 0
}
.video-js .vjs-play-progress {
background-color: #fff
}
.video-js .vjs-play-progress:before {
font-size: .9em;
position: absolute;
right: -.5em;
top: -.333333333333333em;
z-index: 1
}
.video-js .vjs-load-progress {
background: rgba(115, 133, 159, .5)
}
.video-js .vjs-load-progress div {
background: rgba(115, 133, 159, .75)
}
.video-js .vjs-time-tooltip {
background-color: #fff;
background-color: rgba(255, 255, 255, .8);
border-radius: .3em;
color: #000;
float: right;
font-family: Arial, Helvetica, sans-serif;
font-size: 1em;
padding: 6px 8px 8px 8px;
pointer-events: none;
position: absolute;
top: -3.4em;
visibility: hidden;
z-index: 1
}
.video-js .vjs-progress-holder:focus .vjs-time-tooltip {
display: none
}
.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip, .video-js .vjs-progress-control:hover .vjs-time-tooltip {
display: block;
font-size: .6em;
visibility: visible
}
.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip {
font-size: 1em
}
.video-js .vjs-progress-control .vjs-mouse-display {
display: none;
position: absolute;
width: 1px;
height: 100%;
background-color: #000;
z-index: 1
}
.vjs-no-flex .vjs-progress-control .vjs-mouse-display {
z-index: 0
}
.video-js .vjs-progress-control:hover .vjs-mouse-display {
display: block
}
.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display {
visibility: hidden;
opacity: 0;
transition: visibility 1s, opacity 1s
}
.video-js.vjs-user-inactive.vjs-no-flex .vjs-progress-control .vjs-mouse-display {
display: none
}
.vjs-mouse-display .vjs-time-tooltip {
color: #fff;
background-color: #000;
background-color: rgba(0, 0, 0, .8)
}
.video-js .vjs-slider {
position: relative;
cursor: pointer;
padding: 0;
margin: 0 .45em 0 .45em;
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-color: #73859f;
background-color: rgba(115, 133, 159, .5)
}
.video-js .vjs-slider.disabled {
cursor: default
}
.video-js .vjs-slider:focus {
text-shadow: 0 0 1em #fff;
box-shadow: 0 0 1em #fff
}
.video-js .vjs-mute-control {
cursor: pointer;
flex: none
}
.video-js .vjs-volume-control {
cursor: pointer;
margin-right: 1em;
display: flex
}
.video-js .vjs-volume-control.vjs-volume-horizontal {
width: 5em
}
.video-js .vjs-volume-panel .vjs-volume-control {
visibility: visible;
opacity: 0;
width: 1px;
height: 1px;
margin-left: -1px
}
.video-js .vjs-volume-panel {
transition: width 1s
}
.video-js .vjs-volume-panel .vjs-mute-control:hover ~ .vjs-volume-control, .video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active, .video-js .vjs-volume-panel .vjs-volume-control:active, .video-js .vjs-volume-panel .vjs-volume-control:hover, .video-js .vjs-volume-panel:active .vjs-volume-control, .video-js .vjs-volume-panel:focus .vjs-volume-control, .video-js .vjs-volume-panel:hover .vjs-volume-control {
visibility: visible;
opacity: 1;
position: relative;
transition: visibility .1s, opacity .1s, height .1s, width .1s, left 0s, top 0s
}
.video-js .vjs-volume-panel .vjs-mute-control:hover ~ .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal, .video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal, .video-js .vjs-volume-panel .vjs-volume-control:hover.vjs-volume-horizontal, .video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel:hover .vjs-volume-control.vjs-volume-horizontal {
width: 5em;
height: 3em
}
.video-js .vjs-volume-panel .vjs-mute-control:hover ~ .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-vertical, .video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-vertical, .video-js .vjs-volume-panel .vjs-volume-control:hover.vjs-volume-vertical, .video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel:hover .vjs-volume-control.vjs-volume-vertical {
left: -3.5em
}
.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active, .video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active, .video-js .vjs-volume-panel.vjs-volume-panel-horizontal:hover {
width: 9em;
transition: width .1s
}
.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-mute-toggle-only {
width: 4em
}
.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical {
height: 8em;
width: 3em;
left: -3000em;
transition: visibility 1s, opacity 1s, height 1s 1s, width 1s 1s, left 1s 1s, top 1s 1s
}
.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal {
transition: visibility 1s, opacity 1s, height 1s 1s, width 1s, left 1s 1s, top 1s 1s
}
.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal {
width: 5em;
height: 3em;
visibility: visible;
opacity: 1;
position: relative;
transition: none
}
.video-js.vjs-no-flex .vjs-volume-control.vjs-volume-vertical, .video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical {
position: absolute;
bottom: 3em;
left: .5em
}
.video-js .vjs-volume-panel {
display: flex
}
.video-js .vjs-volume-bar {
margin: 1.35em .45em
}
.vjs-volume-bar.vjs-slider-horizontal {
width: 5em;
height: .3em
}
.vjs-volume-bar.vjs-slider-vertical {
width: .3em;
height: 5em;
margin: 1.35em auto
}
.video-js .vjs-volume-level {
position: absolute;
bottom: 0;
left: 0;
background-color: #fff
}
.video-js .vjs-volume-level:before {
position: absolute;
font-size: .9em
}
.vjs-slider-vertical .vjs-volume-level {
width: .3em
}
.vjs-slider-vertical .vjs-volume-level:before {
top: -.5em;
left: -.3em
}
.vjs-slider-horizontal .vjs-volume-level {
height: .3em
}
.vjs-slider-horizontal .vjs-volume-level:before {
top: -.3em;
right: -.5em
}
.video-js .vjs-volume-panel.vjs-volume-panel-vertical {
width: 4em
}
.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level {
height: 100%
}
.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level {
width: 100%
}
.video-js .vjs-volume-vertical {
width: 3em;
height: 8em;
bottom: 8em;
background-color: #2b333f;
background-color: rgba(43, 51, 63, .7)
}
.video-js .vjs-volume-horizontal .vjs-menu {
left: -2em
}
.vjs-poster {
display: inline-block;
vertical-align: middle;
background-repeat: no-repeat;
background-position: 50% 50%;
background-size: contain;
background-color: #000;
cursor: pointer;
margin: 0;
padding: 0;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
height: 100%
}
.vjs-has-started .vjs-poster {
display: none
}
.vjs-audio.vjs-has-started .vjs-poster {
display: block
}
.vjs-using-native-controls .vjs-poster {
display: none
}
.video-js .vjs-live-control {
display: flex;
align-items: flex-start;
flex: auto;
font-size: 1em;
line-height: 3em
}
.vjs-no-flex .vjs-live-control {
display: table-cell;
width: auto;
text-align: left
}
.video-js.vjs-liveui .vjs-live-control, .video-js:not(.vjs-live) .vjs-live-control {
display: none
}
.video-js .vjs-seek-to-live-control {
cursor: pointer;
flex: none;
display: inline-flex;
height: 100%;
padding-left: .5em;
padding-right: .5em;
font-size: 1em;
line-height: 3em;
width: auto;
min-width: 4em
}
.vjs-no-flex .vjs-seek-to-live-control {
display: table-cell;
width: auto;
text-align: left
}
.video-js.vjs-live:not(.vjs-liveui) .vjs-seek-to-live-control, .video-js:not(.vjs-live) .vjs-seek-to-live-control {
display: none
}
.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge {
cursor: auto
}
.vjs-seek-to-live-control .vjs-icon-placeholder {
margin-right: .5em;
color: #888
}
.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-icon-placeholder {
color: red
}
.video-js .vjs-time-control {
flex: none;
font-size: 1em;
line-height: 3em;
min-width: 2em;
width: auto;
padding-left: 1em;
padding-right: 1em
}
.vjs-live .vjs-time-control {
display: none
}
.video-js .vjs-current-time, .vjs-no-flex .vjs-current-time {
display: none
}
.video-js .vjs-duration, .vjs-no-flex .vjs-duration {
display: none
}
.vjs-time-divider {
display: none;
line-height: 3em
}
.vjs-live .vjs-time-divider {
display: none
}
.video-js .vjs-play-control {
cursor: pointer
}
.video-js .vjs-play-control .vjs-icon-placeholder {
flex: none
}
.vjs-text-track-display {
position: absolute;
bottom: 3em;
left: 0;
right: 0;
top: 0;
pointer-events: none
}
.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display {
bottom: 1em
}
.video-js .vjs-text-track {
font-size: 1.4em;
text-align: center;
margin-bottom: .1em
}
.vjs-subtitles {
color: #fff
}
.vjs-captions {
color: #fc6
}
.vjs-tt-cue {
display: block
}
video::-webkit-media-text-track-display {
-webkit-transform: translateY(-3em);
transform: translateY(-3em)
}
.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display {
-webkit-transform: translateY(-1.5em);
transform: translateY(-1.5em)
}
.video-js .vjs-fullscreen-control {
cursor: pointer;
flex: none
}
.vjs-playback-rate .vjs-playback-rate-value, .vjs-playback-rate > .vjs-menu-button {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%
}
.vjs-playback-rate .vjs-playback-rate-value {
pointer-events: none;
font-size: 1.5em;
line-height: 2;
text-align: center
}
.vjs-playback-rate .vjs-menu {
width: 4em;
left: 0
}
.vjs-error .vjs-error-display .vjs-modal-dialog-content {
font-size: 1.4em;
text-align: center
}
.vjs-error .vjs-error-display:before {
color: #fff;
content: 'X';
font-family: Arial, Helvetica, sans-serif;
font-size: 4em;
left: 0;
line-height: 1;
margin-top: -.5em;
position: absolute;
text-shadow: .05em .05em .1em #000;
text-align: center;
top: 50%;
vertical-align: middle;
width: 100%
}
.vjs-loading-spinner {
display: none;
position: absolute;
top: 50%;
left: 50%;
margin: -25px 0 0 -25px;
opacity: .85;
text-align: left;
border: 6px solid rgba(43, 51, 63, .7);
box-sizing: border-box;
background-clip: padding-box;
width: 50px;
height: 50px;
border-radius: 25px;
visibility: hidden
}
.vjs-seeking .vjs-loading-spinner, .vjs-waiting .vjs-loading-spinner {
display: block;
-webkit-animation: 0s linear .3s forwards vjs-spinner-show;
animation: 0s linear .3s forwards vjs-spinner-show
}
.vjs-loading-spinner:after, .vjs-loading-spinner:before {
content: "";
position: absolute;
margin: -6px;
box-sizing: inherit;
width: inherit;
height: inherit;
border-radius: inherit;
opacity: 1;
border: inherit;
border-color: transparent;
border-top-color: #fff
}
.vjs-seeking .vjs-loading-spinner:after, .vjs-seeking .vjs-loading-spinner:before, .vjs-waiting .vjs-loading-spinner:after, .vjs-waiting .vjs-loading-spinner:before {
-webkit-animation: vjs-spinner-spin 1.1s cubic-bezier(.6, .2, 0, .8) infinite, vjs-spinner-fade 1.1s linear infinite;
animation: vjs-spinner-spin 1.1s cubic-bezier(.6, .2, 0, .8) infinite, vjs-spinner-fade 1.1s linear infinite
}
.vjs-seeking .vjs-loading-spinner:before, .vjs-waiting .vjs-loading-spinner:before {
border-top-color: #fff
}
.vjs-seeking .vjs-loading-spinner:after, .vjs-waiting .vjs-loading-spinner:after {
border-top-color: #fff;
-webkit-animation-delay: .44s;
animation-delay: .44s
}
@keyframes vjs-spinner-show {
to {
visibility: visible
}
}
@-webkit-keyframes vjs-spinner-show {
to {
visibility: visible
}
}
@keyframes vjs-spinner-spin {
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg)
}
}
@-webkit-keyframes vjs-spinner-spin {
100% {
-webkit-transform: rotate(360deg)
}
}
@keyframes vjs-spinner-fade {
0% {
border-top-color: #73859f
}
20% {
border-top-color: #73859f
}
35% {
border-top-color: #fff
}
60% {
border-top-color: #73859f
}
100% {
border-top-color: #73859f
}
}
@-webkit-keyframes vjs-spinner-fade {
0% {
border-top-color: #73859f
}
20% {
border-top-color: #73859f
}
35% {
border-top-color: #fff
}
60% {
border-top-color: #73859f
}
100% {
border-top-color: #73859f
}
}
.vjs-chapters-button .vjs-menu ul {
width: 24em
}
.video-js .vjs-subs-caps-button + .vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder {
vertical-align: middle;
display: inline-block;
margin-bottom: -.1em
}
.video-js .vjs-subs-caps-button + .vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before {
font-family: VideoJS;
content: "\f10d";
font-size: 1.5em;
line-height: inherit
}
.video-js .vjs-audio-button + .vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder {
vertical-align: middle;
display: inline-block;
margin-bottom: -.1em
}
.video-js .vjs-audio-button + .vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before {
font-family: VideoJS;
content: " \f11d";
font-size: 1.5em;
line-height: inherit
}
.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-custom-control-spacer {
flex: auto;
display: block
}
.video-js.vjs-layout-tiny:not(.vjs-fullscreen).vjs-no-flex .vjs-custom-control-spacer {
width: auto
}
.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-audio-button, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-captions-button, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-chapters-button, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-current-time, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-descriptions-button, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-duration, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-mute-control, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-playback-rate, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-progress-control, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-remaining-time, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-subs-caps-button, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-subtitles-button, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-time-divider, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-volume-control, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-volume-panel {
display: none
}
.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-audio-button, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-captions-button, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-chapters-button, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-current-time, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-descriptions-button, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-duration, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-mute-control, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-playback-rate, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-remaining-time, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-subs-caps-button, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-subtitles-button, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-time-divider, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-volume-control, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-volume-panel {
display: none
}
.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-audio-button, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-captions-button, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-chapters-button, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-current-time, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-descriptions-button, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-duration, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-mute-control, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-playback-rate, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-remaining-time, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-subtitles-button, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-time-divider, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-volume-control, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-volume-panel {
display: none
}
.vjs-modal-dialog.vjs-text-track-settings {
background-color: #2b333f;
background-color: rgba(43, 51, 63, .75);
color: #fff;
height: 70%
}
.vjs-text-track-settings .vjs-modal-dialog-content {
display: table
}
.vjs-text-track-settings .vjs-track-settings-colors, .vjs-text-track-settings .vjs-track-settings-controls, .vjs-text-track-settings .vjs-track-settings-font {
display: table-cell
}
.vjs-text-track-settings .vjs-track-settings-controls {
text-align: right;
vertical-align: bottom
}
@supports (display:grid) {
.vjs-text-track-settings .vjs-modal-dialog-content {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr;
padding: 20px 24px 0 24px
}
.vjs-track-settings-controls .vjs-default-button {
margin-bottom: 20px
}
.vjs-text-track-settings .vjs-track-settings-controls {
grid-column: 1/-1
}
.vjs-layout-small .vjs-text-track-settings .vjs-modal-dialog-content, .vjs-layout-tiny .vjs-text-track-settings .vjs-modal-dialog-content, .vjs-layout-x-small .vjs-text-track-settings .vjs-modal-dialog-content {
grid-template-columns: 1fr
}
}
.vjs-track-setting > select {
margin-right: 1em;
margin-bottom: .5em
}
.vjs-text-track-settings fieldset {
margin: 5px;
padding: 3px;
border: none
}
.vjs-text-track-settings fieldset span {
display: inline-block
}
.vjs-text-track-settings fieldset span > select {
max-width: 7.3em
}
.vjs-text-track-settings legend {
color: #fff;
margin: 0 0 5px 0
}
.vjs-text-track-settings .vjs-label {
position: absolute;
clip: rect(1px 1px 1px 1px);
clip: rect(1px, 1px, 1px, 1px);
display: block;
margin: 0 0 5px 0;
padding: 0;
border: 0;
height: 1px;
width: 1px;
overflow: hidden
}
.vjs-track-settings-controls button:active, .vjs-track-settings-controls button:focus {
outline-style: solid;
outline-width: medium;
background-image: linear-gradient(0deg, #fff 88%, #73859f 100%)
}
.vjs-track-settings-controls button:hover {
color: rgba(43, 51, 63, .75)
}
.vjs-track-settings-controls button {
background-color: #fff;
background-image: linear-gradient(-180deg, #fff 88%, #73859f 100%);
color: #2b333f;
cursor: pointer;
border-radius: 2px
}
.vjs-track-settings-controls .vjs-default-button {
margin-right: 1em
}
@media print {
.video-js > :not(.vjs-tech):not(.vjs-poster) {
visibility: hidden
}
}
.vjs-resize-manager {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: none;
z-index: -1000
}
.js-focus-visible .video-js :focus:not(.focus-visible) {
outline: 0;
background: 0 0
}
.video-js .vjs-menu :focus:not(:focus-visible), .video-js :focus:not(:focus-visible) {
outline: 0;
background: 0 0
}
}
.vjs-playlist {
padding: 0;
background-color: #1a1a1a;
color: #fff;
list-style-type: none
}
.vjs-playlist img {
display: block;
height: auto;
width: auto
}
.vjs-playlist .vjs-playlist-item-list {
position: relative;
margin: 0;
padding: 0;
list-style: none
}
.vjs-playlist .vjs-playlist-item {
position: relative;
cursor: pointer;
overflow: hidden
}
.vjs-playlist .vjs-playlist-thumbnail-placeholder {
background: #303030
}
.vjs-playlist .vjs-playlist-now-playing-text {
display: none;
position: absolute;
top: 0;
left: 0;
padding-left: 2px;
margin: .8rem
}
.vjs-playlist .vjs-playlist-duration {
position: absolute;
top: .5rem;
left: .5rem;
padding: 2px 5px 3px;
margin-left: 2px;
background-color: rgba(26, 26, 26, 0.8)
}
.vjs-playlist .vjs-playlist-title-container {
position: absolute;
bottom: 0;
box-sizing: border-box;
width: 100%;
padding: .5rem .8rem;
text-shadow: 1px 1px 2px black, -1px 1px 2px black, 1px -1px 2px black, -1px -1px 2px black
}
.vjs-playlist .vjs-playlist-name {
display: block;
max-height: 2.5em;
padding: 0 0 4px 2px;
font-style: normal;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
line-height: 20px
}
.vjs-playlist .vjs-playlist-description {
margin: 0;
text-overflow: ellipsis;
overflow: hidden
}
.vjs-playlist .vjs-up-next-text {
display: none;
padding: .1rem 2px;
font-size: .8em;
text-transform: uppercase
}
.vjs-playlist .vjs-up-next .vjs-up-next-text {
display: block
}
.vjs-playlist .vjs-selected {
background-color: #141a21
}
.vjs-playlist .vjs-selected img {
opacity: .2
}
.vjs-playlist .vjs-selected .vjs-playlist-duration {
display: none
}
.vjs-playlist .vjs-selected .vjs-playlist-now-playing-text {
display: block
}
.vjs-playlist .vjs-selected .vjs-playlist-title-container {
text-shadow: none
}
.vjs-playlist-vertical {
overflow-x: hidden;
overflow-y: auto
}
.vjs-playlist-vertical img {
width: 100%;
min-height: 54px
}
.vjs-playlist-vertical .vjs-playlist-item {
margin-bottom: 5px
}
.vjs-playlist-vertical .vjs-playlist-thumbnail {
display: block;
width: 100%
}
.vjs-playlist-vertical .vjs-playlist-thumbnail-placeholder {
height: 100px
}
.vjs-playlist-horizontal {
overflow-x: auto;
overflow-y: hidden
}
.vjs-playlist-horizontal img {
min-width: 100px;
height: 100%
}
.vjs-playlist-horizontal .vjs-playlist-item-list {
height: 100%;
white-space: nowrap
}
.vjs-playlist-horizontal .vjs-playlist-item {
display: inline-block;
height: 100%;
margin-right: 5px
}
.vjs-playlist-horizontal .vjs-playlist-thumbnail {
display: block;
height: 100%
}
.vjs-playlist-horizontal .vjs-playlist-thumbnail-placeholder {
height: 100%;
width: 180px
}
.vjs-playlist.vjs-ad-playing {
overflow: hidden
}
.vjs-playlist.vjs-ad-playing.vjs-csspointerevents {
pointer-events: none;
overflow: auto
}
.vjs-playlist.vjs-ad-playing.vjs-csspointerevents .vjs-playlist-ad-overlay {
pointer-events: auto
}
.vjs-playlist.vjs-ad-playing .vjs-playlist-ad-overlay {
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #1a1a1a;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
background-color: rgba(0, 0, 0, 0.5)
}
.vjs-playlist {
font-size: 14px
}
.vjs-playlist .vjs-playlist-description {
height: 42px;
line-height: 21px
}
.vjs-mouse.vjs-playlist {
font-size: 15px
}
.vjs-mouse.vjs-playlist .vjs-playlist-description {
height: 45px;
line-height: 23px
}
@media (min-width: 600px) {
.vjs-mouse.vjs-playlist {
font-size: 17px
}
.vjs-mouse.vjs-playlist .vjs-playlist-description {
height: 51px;
line-height: 26px
}
.vjs-playlist .vjs-playlist-name {
line-height: 22px
}
}
@media (max-width: 520px) {
.vjs-playlist .vjs-selected .vjs-playlist-now-playing-text, .vjs-playlist .vjs-up-next .vjs-up-next-text {
display: none
}
.vjs-mouse.vjs-playlist .vjs-selected .vjs-playlist-now-playing-text, .vjs-mouse.vjs-playlist .vjs-up-next .vjs-up-next-text {
display: none
}
}
@media (min-width: 521px) {
.vjs-playlist img {
min-height: 85px
}
}
@media (max-width: 750px) {
.vjs-playlist .vjs-playlist-duration {
display: none
}
}
}
import React from 'react';
import { Icon, Button } from 'antd';
import videojs from 'video.js';
import playlist from 'videojs-playlist';
import playlistUi from 'videojs-playlist-ui';
import { Icon } from 'antd';
import { Player } from 'video-react';
import componentStyle from './VideoPlay.less';
import { imagify, ossVideofy } from '../../../utils/index';
let myVideo;
let curr = 0;
class VideoPlay extends React.Component {
constructor(props) {
super(props);
this.state = {
};
videojs.addLanguage('zh-CN', {
Play: '播放',
Pause: '暂停',
'Current Time': '当前时间',
Duration: '时长',
'Remaining Time': '剩余时间',
'Stream Type': '媒体流类型',
LIVE: '直播',
Loaded: '加载完毕',
Progress: '进度',
Fullscreen: '全屏',
'Non-Fullscreen': '退出全屏',
Mute: '静音',
Unmute: '取消静音',
'Playback Rate': '播放速度',
Subtitles: '字幕',
'subtitles off': '关闭字幕',
Captions: '内嵌字幕',
'captions off': '关闭内嵌字幕',
Chapters: '节目段落',
'Close Modal Dialog': '关闭弹窗',
Descriptions: '描述',
'descriptions off': '关闭描述',
'Audio Track': '音轨',
'You aborted the media playback': '视频播放被终止',
'A network error caused the media download to fail part-way.': '网络错误导致视频下载中途失败。',
'The media could not be loaded, either because the server or network failed or because the format is not supported.': '视频因格式不支持或者服务器或网络的问题无法加载。',
'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.': '由于视频文件损坏或是该视频使用了你的浏览器不支持的功能,播放终止。',
'No compatible source was found for this media.': '无法找到此视频兼容的源。',
'The media is encrypted and we do not have the keys to decrypt it.': '视频已加密,无法解密。',
'Play Video': '播放视频',
Close: '关闭',
'Modal Window': '弹窗',
'This is a modal window': '这是一个弹窗',
'This modal can be closed by pressing the Escape key or activating the close button.': '可以按ESC按键或启用关闭按钮来关闭此弹窗。',
', opens captions settings dialog': ', 开启标题设置弹窗',
', opens subtitles settings dialog': ', 开启字幕设置弹窗',
', opens descriptions settings dialog': ', 开启描述设置弹窗',
', selected': ', 选择',
'captions settings': '字幕设定',
'Audio Player': '音频播放器',
'Video Player': '视频播放器',
Replay: '重播',
'Progress Bar': '进度条',
'Volume Level': '音量',
'subtitles settings': '字幕设定',
'descriptions settings': '描述设定',
Text: '文字',
White: '白',
Black: '黑',
Red: '红',
Green: '绿',
Blue: '蓝',
Yellow: '黄',
Magenta: '紫红',
Cyan: '青',
Background: '背景',
Window: '视窗',
Transparent: '透明',
'Semi-Transparent': '半透明',
Opaque: '不透明',
'Font Size': '字体尺寸',
'Text Edge Style': '字体边缘样式',
None: '无',
Raised: '浮雕',
Depressed: '压低',
Uniform: '均匀',
Dropshadow: '下阴影',
'Font Family': '字体库',
'Proportional Sans-Serif': '比例无细体',
'Monospace Sans-Serif': '单间隔无细体',
'Proportional Serif': '比例细体',
'Monospace Serif': '单间隔细体',
Casual: '舒适',
Script: '手写体',
'Small Caps': '小型大写字体',
Reset: '重置',
'restore all settings to the default values': '恢复全部设定至预设值',
Done: '完成',
'Caption Settings Dialog': '字幕设定视窗',
'Beginning of dialog window. Escape will cancel and close the window.': '开始对话视窗。离开会取消及关闭视窗',
'End of dialog window.': '结束对话视窗',
'Now Playing': '正在播放',
'Up Next': '下一个播放',
'Untitled Video': '无标题视频',
});
}
componentDidMount() {
const { videoList, poster } = this.props;
const options = {
playbackRates: [0.5, 1, 1.5, 2, 4, 8, 16],
poster: imagify(poster),
language: 'zh-CN',
}; //
const source = document.getElementById('source');
// 视频列表播放 列表格式 [{name:'111',sources:[{src:'', type: 'video/mp4',}]}]
if (videoList.length > 0) {
source.setAttribute('src', videoList[0].sources[0].src);
myVideo = videojs('myVideo', options, (onPlayerReady) => {
myVideo.play();
myVideo.on('ended', () => {
if (curr >= videoList.length) {
curr = 0;
}
myVideo.src(videoList[curr].sources[0].src);
myVideo.load();
myVideo.play();
curr++;
});
});
curr++;
myVideo.playlist(videoList);
myVideo.playlistUi();
}
}
componentWillUnmount() {
curr = 0;
myVideo.dispose(); // 销毁videojs 不然下次打开是原生的Video
componentWillUpdate() {
}
cancelCropper = () => {
}
sureCropper = () => {
}
rotateLeft = () => {
}
rotateRight = () => {
}
closeImgPreview = () => {
}
render() {
const { lookVideoPoster, closeVideoPlay } = this.props;
const { src, closeVideoPlay } = this.props;
return (
<div className={`${componentStyle.VideoPlayBox} VideoPlayBox`}>
<Icon type="close-circle" className={componentStyle.closeIcon} onClick={closeVideoPlay} />
<div className={componentStyle.videoitem}>
<video
id="myVideo"
controls
preload="metadata"
className="video-js"
style={{
width: '100%',
height: '90%',
}}
>
<source id="source" />
</video>
<div id="playList" className="vjs-playlist"></div>
</div>
<Player className={componentStyle.videoitem}>
<source src={src} />
</Player>
</div>
);
}
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -243,58 +243,15 @@ class LiveClass extends React.Component {
goLook = (record) => {
const { dispatch } = this.props;
console.log(record, 'record');
if (record.replay_url.url == '') {
message.warning('转码中,请稍后', 0.5);
return;
}
dispatch({
type: 'liveclass/updateState',
payload: {
lookVideoShow: true,
// lookVideoUrl: record.replay_url ? record.replay_url : [],
lookVideoPoster: record.cover,
lookVideoUrl: [
{
name: '1111111',
sources: [
{
src: 'https://www.shangjiadao.com/video/video1.mp4',
type: 'video/mp4',
},
],
}, {
name: '22222222',
sources: [
{
src: 'https://www.shangjiadao.com/video/video2.mp4',
type: 'video/mp4',
},
],
},
{
name: '333',
sources: [
{
src: 'https://www.shangjiadao.com/video/video3.mp4',
type: 'video/mp4',
},
],
},
{
name: '444',
sources: [
{
src: 'https://www.shangjiadao.com/video/video4.mp4',
type: 'video/mp4',
},
],
},
{
name: '5555',
sources: [
{
src: 'https://www.shangjiadao.com/video/video5.mp4',
type: 'video/mp4',
},
],
},
],
lookVideoUrl: record.replay_url.url,
},
});
}
......@@ -491,9 +448,8 @@ class LiveClass extends React.Component {
{
lookVideoShow &&
<VideoPlay
videoList={lookVideoUrl}
src={lookVideoUrl}
closeVideoPlay={this.closeVideoPlay}
poster={lookVideoPoster}
/>
}
</div>
......@@ -516,7 +472,6 @@ function mapStateToProps(state) {
previewQrcode,
lookVideoShow,
lookVideoUrl,
lookVideoPoster,
} = state.liveclass;
const {
guideStep,
......@@ -540,7 +495,6 @@ function mapStateToProps(state) {
previewQrcode,
lookVideoShow,
lookVideoUrl,
lookVideoPoster,
};
}
export default connect(mapStateToProps)(LiveClassForm);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment