mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-12 15:26:16 -08:00
优化 screenfull 接口
This commit is contained in:
1 parent
14c3b52b1d
commit
eeaeb95557
4 files changed
+59
-40
No files matched your search
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user