优化 screenfull 接口

This commit is contained in:
Harvey Zack committed 2019-04-23 08:42:54 +08:00
1 parent 14c3b52b1d
commit eeaeb95557
4 files changed
+59 -40

No files matched your search

+3 -3
View File
@@ -26,8 +26,8 @@
"balloon-css": "^0.5.0",
"draggabilly": "^2.2.0",
"option-validator": "^1.1.1",
"resize-observer": "^1.0.0-alpha.1",
"screenfull": "^4.0.0",
"tiny-emitter": "^2.0.2"
"resize-observer": "^1.0.0",
"screenfull": "^4.2.0",
"tiny-emitter": "^2.1.0"
}
}
+26 -16
View File
@@ -8,22 +8,22 @@ export default function fullscreenMix(art, player) {
} = art;
const screenfullChange = () => {
art.emit('fullscreen', screenfull.isFullscreen);
art.emit('fullscreen:change', screenfull.isFullscreen);
};
const screenfullError = () => {
notice.show('Your browser does not seem to support full screen functionality.');
};
try {
if (screenfull.enabled) {
screenfull.on('change', screenfullChange);
screenfull.on('error', screenfullError);
destroyEvents.push(() => {
screenfull.off('change', screenfullChange);
screenfull.off('error', screenfullError);
});
} catch (error) {
console.error(error);
} else {
screenfullError();
}
Object.defineProperty(player, 'fullscreenState', {
@@ -32,24 +32,34 @@ export default function fullscreenMix(art, player) {
Object.defineProperty(player, 'fullscreenEnabled', {
value: () => {
if (player.fullscreenWebState) {
player.fullscreenWebExit();
if (screenfull.enabled) {
if (!player.fullscreenState) {
player.fullscreenWebExit();
screenfull.request($player).then(() => {
$player.classList.add('artplayer-fullscreen');
player.aspectRatioReset();
art.emit('fullscreen:enabled');
});
}
} else {
screenfullError();
}
screenfull.request($player);
$player.classList.add('artplayer-fullscreen');
player.aspectRatioReset();
art.emit('fullscreen:enabled');
},
});
Object.defineProperty(player, 'fullscreenExit', {
value: () => {
if (player.fullscreenState) {
player.fullscreenWebExit();
$player.classList.remove('artplayer-fullscreen');
screenfull.exit();
player.aspectRatioReset();
art.emit('fullscreen:exit');
if (screenfull.enabled) {
if (player.fullscreenState) {
player.fullscreenWebExit();
screenfull.exit().then(() => {
$player.classList.remove('artplayer-fullscreen');
player.aspectRatioReset();
art.emit('fullscreen:exit');
});
}
} else {
screenfullError();
}
},
});