This commit is contained in:
Harvey Zack committed 2018-11-09 20:06:56 +08:00
1 parent 1b91760be2
commit 3dc1e30bb3
15 files changed
+68 -197

No files matched your search

+1 -1
View File
@@ -17,7 +17,7 @@ export default class Controls {
constructor(art) {
id = 0;
this.art = art;
this.art.on('video:loadedmetadata', () => {
this.art.on('firstCanplay', () => {
this.init();
});
}
+2 -4
View File
@@ -9,8 +9,7 @@ let i18nMap = {
'Pause': '暂停',
'Rate': '速度',
'Mute': '静音',
'Rotate': '旋转',
'Flip': '翻转',
'Flip': '视频翻转',
'Horizontal': '水平',
'Vertical': '垂直',
'Reconnect': '重新连接',
@@ -41,8 +40,7 @@ let i18nMap = {
'Pause': '暫停',
'Rate': '速度',
'Mute': '靜音',
'Rotate': '旋轉',
'Flip': '翻轉',
'Flip': '影片翻轉',
'Horizontal': '水平',
'Vertical': '垂直',
'Reconnect': '重新連接',
+1 -1
View File
@@ -7,7 +7,7 @@ export default function flipMix(art, player) {
Object.defineProperty(player, 'flip', {
value: dir => {
const dirList = ['horizontal', 'vertical'];
const dirList = ['normal', 'horizontal', 'vertical'];
errorHandle(dirList.includes(dir), `The 'angle' need to be one of '[horizontal, vertical]', but got ${dir}`);
art.refs.$player.dataset.flip = dir;
}
-2
View File
@@ -18,7 +18,6 @@ import pipMix from './pipMix';
import loadedMix from './loadedMix';
import playedMix from './playedMix';
import autoSizeMix from './autoSizeMix';
import rotateMix from './rotateMix';
import flipMix from './flipMix';
export default class Player {
@@ -43,7 +42,6 @@ export default class Player {
loadedMix(art, this);
playedMix(art, this);
autoSizeMix(art, this);
rotateMix(art, this);
flipMix(art, this);
}
}
@@ -1,21 +0,0 @@
import { errorHandle } from '../utils';
export default function rotateMix(art, player) {
Object.defineProperty(player, 'rotateState', {
get: () => art.refs.$player.dataset.rotate
});
Object.defineProperty(player, 'rotate', {
value: angle => {
const angleList = [0, 90, 180, 270];
errorHandle(angleList.includes(angle), `The 'angle' need to be one of '[0, 90, 180, 270]', but got ${angle}`);
art.refs.$player.dataset.rotate = angle;
}
});
Object.defineProperty(player, 'rotateRemove', {
value: () => {
delete art.refs.$player.dataset.rotate;
}
});
}
+13 -5
View File
@@ -8,14 +8,22 @@ export default class Flip {
apply(art, $setting) {
const { i18n, events: { proxy }, player } = art;
this.$header = $setting.querySelector('.art-setting-header');
this.$body = append($setting, `
<div class="art-setting-body">
<span class="art-setting-btn" data-flip="horizontal">${i18n.get('Horizontal')}</span>
<span class="art-setting-btn" data-flip="vertical">${i18n.get('Vertical')}</span>
this.$body = $setting.querySelector('.art-setting-body');
this.$btns = append(this.$body, `
<div class="art-setting-btns">
<div class="art-setting-btn current">
<span data-flip="normal">${i18n.get('Normal')}</span>
</div>
<div class="art-setting-btn">
<span data-flip="horizontal">${i18n.get('Horizontal')}</span>
</div>
<div class="art-setting-btn">
<span data-flip="vertical">${i18n.get('Vertical')}</span>
</div>
</div>
`);
proxy(this.$body, 'click', event => {
proxy(this.$btns, 'click', event => {
const { target } = event;
const { flip } = target.dataset;
if (flip) {
+1 -9
View File
@@ -1,5 +1,4 @@
import { setStyle, append, insertByIndex } from '../utils';
import Rotate from './rotate';
import Flip from './flip';
let id = 0;
@@ -20,18 +19,11 @@ export default class Setting {
this.hide();
});
this.add(new Rotate({
name: 'rotate',
title: 'Rotate',
disable: false,
index: 10
}));
this.add(new Flip({
name: 'flip',
title: 'Flip',
disable: false,
index: 20
index: 10
}));
}
-29
View File
@@ -1,29 +0,0 @@
import { append, inverseClass } from '../utils';
export default class Rotate {
constructor(option) {
this.option = option;
}
apply(art, $setting) {
const { events: { proxy }, player } = art;
this.$header = $setting.querySelector('.art-setting-header');
this.$body = append($setting, `
<div class="art-setting-body">
<span class="art-setting-btn" data-rotate="0">0°</span>
<span class="art-setting-btn" data-rotate="90">90°</span>
<span class="art-setting-btn" data-rotate="180">180°</span>
<span class="art-setting-btn" data-rotate="270">270°</span>
</div>
`);
proxy(this.$body, 'click', event => {
const { target } = event;
const { rotate } = target.dataset;
if (rotate) {
player.rotate(Number(rotate));
inverseClass(target, 'current');
}
});
}
}
+4 -8
View File
@@ -1,13 +1,9 @@
.artplayer-video-player {
&[data-flip] {
//
&[data-flip="horizontal"] .artplayer-video{
transform: scaleX(-1);
}
&[data-flip="horizontal"] {
//
}
&[data-flip="vertical"] {
//
&[data-flip="vertical"] .artplayer-video{
transform: scaleY(-1);
}
}
-1
View File
@@ -15,4 +15,3 @@ import './fullscreenWeb.scss';
import './pip.scss';
import './autoSize.scss';
import './flip.scss';
import './rotate.scss';
-21
View File
@@ -1,21 +0,0 @@
.artplayer-video-player {
&[data-rotate] {
//
}
&[data-rotate="0"] {
//
}
&[data-rotate="90"] {
//
}
&[data-rotate="180"] {
//
}
&[data-rotate="270"] {
//
}
}
+24 -15
View File
@@ -12,7 +12,7 @@
pointer-events: none;
.artplayer-setting-inner {
position: relative;
width: 350px;
width: 300px;
height: 250px;
font-size: 12px;
background: rgba(0, 0, 0, 0.8);
@@ -22,7 +22,7 @@
.artplayer-setting-body {
overflow-x: hidden;
overflow-y: auto;
width: 365px;
width: 315px;
height: 100%;
.art-setting {
border-bottom: 1px solid rgba(255,255,255,.1);
@@ -51,19 +51,28 @@
}
}
.art-setting-btn {
display: inline-block;
padding: 2px 5px;
min-width: 50px;
text-align: center;
color: #fff;
border: 1px solid #fff;
margin-right: 10px;
border-radius: 3px;
cursor: pointer;
&:hover, &.current {
background: #fff;
.art-setting-btns {
display: flex;
.art-setting-btn {
flex: 1;
padding: 0 4px;
margin-left: -4px;
span {
display: block;
height: 20px;
line-height: 20px;
text-align: center;
color: #fff;
background: rgba(255, 255, 255, 0.3);
border-radius: 2px;
cursor: pointer;
}
&:hover, &.current {
span {
color: #fff;
background: #00a1d6;
}
}
}
}
}