add auto pip mode

This commit is contained in:
zhw2590582 committed 2019-09-08 12:41:27 +08:00
1 parent 8dc8dc3a3e
commit 6c0a198f02
9 files changed
+83 -31

No files matched your search

+14
View File
@@ -0,0 +1,14 @@
import { debounce } from '../utils';
export default function autoPip(art) {
const { events, player, template } = art;
const scrollDebounce = debounce(() => {
const { top, height } = template.$player.getBoundingClientRect();
if (top + height <= 0 && !player.pip && player.playing) {
player.pip = true;
} else if (player.pip) {
player.pip = false;
}
}, 300);
events.proxy(window, 'scroll', scrollDebounce);
}
+13 -3
View File
@@ -2,21 +2,31 @@ import { errorHandle, hasOwnProperty } from '../utils';
import subtitle from './subtitle';
import localPreview from './localPreview';
import miniProgressBar from './miniProgressBar';
import autoPip from './autoPip';
export default class Plugins {
constructor(art) {
this.art = art;
this.id = 0;
if (art.option.subtitle.url) {
const { option } = art;
if (option.subtitle.url) {
this.add(subtitle);
}
if (!art.option.isLive) {
if (!option.isLive && option.miniProgressBar) {
this.add(miniProgressBar);
}
this.add(localPreview);
if (option.localPreview) {
this.add(localPreview);
}
if (option.pip && option.autoPip) {
this.add(autoPip);
}
art.option.plugins.forEach(plugin => {
this.add(plugin);
});