add fullscreenchange

This commit is contained in:
Harvey Zack committed 2024-06-01 10:11:48 +08:00
1 parent 0ffd7980d2
commit 77fb5c6d12
4 files changed
+77 -22

No files matched your search

+23 -11
View File
@@ -1873,27 +1873,39 @@ 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.emit("resize");
};
art.proxy(document, "fullscreenchange", handleFullscreenChange);
art.proxy(document, "webkitfullscreenchange", handleFullscreenChange);
art.proxy(document, "mozfullscreenchange", handleFullscreenChange);
art.proxy(document, "MSFullscreenChange", handleFullscreenChange);
(0, _utils.def)(art, "fullscreen", {
get () {
return $video.webkitDisplayingFullscreen;
return isFullscreen();
},
set (value) {
if (value) {
art.state = "fullscreen";
$video.webkitEnterFullscreen();
art.emit("fullscreen", true);
} else {
$video.webkitExitFullscreen();
art.emit("fullscreen", false);
}
art.emit("resize");
if (value) requestFullscreen.call($video);
else exitFullscreen.call(document);
}
});
};
art.once("video:loadedmetadata", ()=>{
if ((0, _screenfullDefault.default).isEnabled) nativeScreenfull(art);
else if (document.fullscreenEnabled || $video.webkitSupportsFullscreen) webkitScreenfull(art);
else if (isFullscreenEnabled()) webkitScreenfull(art);
else (0, _utils.def)(art, "fullscreen", {
get () {
return false;