优化整体结构

This commit is contained in:
Harvey Zack committed 2019-04-30 13:06:24 +08:00
1 parent 9f9cb0e036
commit 487e865017
34 files changed
+505 -427

No files matched your search

+42 -28
View File
@@ -1,6 +1,34 @@
export default class Hotkey {
constructor(art) {
this.art = art;
this.keys = {};
this.add(27, () => {
if (art.isFocus && art.player.fullscreenWebState) {
art.player.fullscreenWebExit();
}
});
this.add(32, () => {
art.player.toggle();
});
this.add(37, () => {
art.player.seek(art.player.currentTime - 10);
});
this.add(38, () => {
art.player.volume += 0.05;
});
this.add(39, () => {
art.player.seek(art.player.currentTime + 10);
});
this.add(40, () => {
art.player.volume -= 0.05;
});
if (this.art.option.hotkey) {
this.art.on('firstCanplay', () => {
this.init();
@@ -8,40 +36,26 @@ export default class Hotkey {
}
}
add(key, event) {
if (this.keys[key]) {
this.keys[key].push(event);
} else {
this.keys[key] = [event];
}
}
init() {
const {
player,
events: { proxy },
} = this.art;
const { proxy } = this.art.events;
proxy(window, 'keydown', event => {
if (this.art.isFocus) {
const tag = document.activeElement.tagName.toUpperCase();
const editable = document.activeElement.getAttribute('contenteditable');
if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {
this.art.emit('hotkey', event);
switch (event.keyCode) {
case 39:
event.preventDefault();
player.seek(player.currentTime + 10);
break;
case 37:
event.preventDefault();
player.seek(player.currentTime - 10);
break;
case 38:
event.preventDefault();
player.volume += 0.05;
break;
case 40:
event.preventDefault();
player.volume -= 0.05;
break;
case 32:
event.preventDefault();
player.toggle();
break;
default:
break;
const events = this.keys[event.keyCode];
if (events) {
event.preventDefault();
events.forEach(fn => fn());
this.art.emit('hotkey', event);
}
}
}