fix: Fix fullscreen functionality in mobile.html and fullscreenMix.js

This commit is contained in:
Harvey Zack committed 2024-06-01 11:47:27 +08:00
1 parent 77fb5c6d12
commit 32078b9669
3 files changed
+18 -72

No files matched your search

+8 -49
View File
@@ -35,63 +35,22 @@ export default function fullscreenMix(art) {
});
};
const isFullscreenEnabled = () => {
return (
document.fullscreenEnabled ||
document.webkitFullscreenEnabled ||
document.mozFullScreenEnabled ||
document.msFullscreenEnabled ||
$video.webkitSupportsFullscreen
);
};
const webkitScreenfull = (art) => {
const requestFullscreen =
$video.requestFullscreen ||
$video.mozRequestFullScreen ||
$video.webkitRequestFullscreen ||
$video.msRequestFullscreen;
const exitFullscreen =
document.exitFullscreen ||
document.mozCancelFullScreen ||
document.webkitExitFullscreen ||
document.msExitFullscreen;
const isFullscreen = () => {
return (
document.fullscreenElement === $video ||
document.webkitFullscreenElement === $video ||
document.mozFullScreenElement === $video ||
document.msFullscreenElement === $video ||
$video.webkitDisplayingFullscreen
);
};
const handleFullscreenChange = () => {
if (isFullscreen()) {
art.state = 'fullscreen';
art.emit('fullscreen', true);
} else {
art.emit('fullscreen', false);
}
art.proxy(document, 'webkitfullscreenchange', () => {
art.emit('fullscreen', art.fullscreen);
art.emit('resize');
};
art.proxy(document, 'fullscreenchange', handleFullscreenChange);
art.proxy(document, 'webkitfullscreenchange', handleFullscreenChange);
art.proxy(document, 'mozfullscreenchange', handleFullscreenChange);
art.proxy(document, 'MSFullscreenChange', handleFullscreenChange);
});
def(art, 'fullscreen', {
get() {
return isFullscreen();
return document.fullscreenElement === $video;
},
set(value) {
if (value) {
requestFullscreen.call($video);
art.state = 'fullscreen';
$video.webkitEnterFullscreen();
} else {
exitFullscreen.call(document);
$video.webkitExitFullscreen();
}
},
});
@@ -100,7 +59,7 @@ export default function fullscreenMix(art) {
art.once('video:loadedmetadata', () => {
if (screenfull.isEnabled) {
nativeScreenfull(art);
} else if (isFullscreenEnabled()) {
} else if ($video.webkitSupportsFullscreen) {
webkitScreenfull(art);
} else {
def(art, 'fullscreen', {