mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-25 08:01:20 -08:00
fix: Fix fullscreen functionality in mobile.html and fullscreenMix.js
This commit is contained in:
1 parent
77fb5c6d12
commit
32078b9669
3 files changed
+18
-72
No files matched your search
@@ -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', {
|
||||
|
||||
Reference in new issue
Block a user