mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-27 01:21:20 -08:00
artplayer@4.3.17
This commit is contained in:
1 parent
3e97b05a73
commit
7ce17f90c4
11 files changed
+749
-72
No files matched your search
@@ -1,73 +1,65 @@
|
||||
import screenfull from 'screenfull';
|
||||
import getScreenfull from '../libs/screenfull';
|
||||
import { addClass, removeClass, def, get } from '../utils';
|
||||
|
||||
const nativeScreenfull = (art) => {
|
||||
const {
|
||||
notice,
|
||||
template: { $player },
|
||||
} = art;
|
||||
|
||||
screenfull.on('change', () => art.emit('fullscreen', screenfull.isFullscreen));
|
||||
|
||||
def(art, 'fullscreen', {
|
||||
get() {
|
||||
return screenfull.isFullscreen;
|
||||
},
|
||||
async set(value) {
|
||||
if (value) {
|
||||
art.normalSize = 'fullscreen';
|
||||
art.aspectRatioReset = true;
|
||||
art.autoSize = false;
|
||||
await screenfull.request($player);
|
||||
addClass($player, 'art-fullscreen');
|
||||
art.emit('resize');
|
||||
art.emit('fullscreen', true);
|
||||
notice.show = '';
|
||||
} else {
|
||||
art.aspectRatioReset = true;
|
||||
art.autoSize = art.option.autoSize;
|
||||
await screenfull.exit();
|
||||
removeClass($player, 'art-fullscreen');
|
||||
art.emit('resize');
|
||||
art.emit('fullscreen');
|
||||
notice.show = '';
|
||||
}
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
const webkitScreenfull = (art) => {
|
||||
const {
|
||||
notice,
|
||||
template: { $video },
|
||||
} = art;
|
||||
|
||||
def(art, 'fullscreen', {
|
||||
get() {
|
||||
return $video.webkitDisplayingFullscreen;
|
||||
},
|
||||
set(value) {
|
||||
if (value) {
|
||||
art.normalSize = 'fullscreen';
|
||||
$video.webkitEnterFullscreen();
|
||||
art.emit('fullscreen', true);
|
||||
notice.show = '';
|
||||
} else {
|
||||
$video.webkitExitFullscreen();
|
||||
art.emit('fullscreen');
|
||||
notice.show = '';
|
||||
}
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
export default function fullscreenMix(art) {
|
||||
const {
|
||||
i18n,
|
||||
notice,
|
||||
template: { $video },
|
||||
template: { $video, $player },
|
||||
} = art;
|
||||
|
||||
const screenfull = getScreenfull();
|
||||
|
||||
const nativeScreenfull = (art) => {
|
||||
screenfull.on('change', () => art.emit('fullscreen', screenfull.isFullscreen));
|
||||
|
||||
def(art, 'fullscreen', {
|
||||
get() {
|
||||
return screenfull.isFullscreen;
|
||||
},
|
||||
async set(value) {
|
||||
if (value) {
|
||||
art.normalSize = 'fullscreen';
|
||||
art.aspectRatioReset = true;
|
||||
art.autoSize = false;
|
||||
await screenfull.request($player);
|
||||
addClass($player, 'art-fullscreen');
|
||||
art.emit('resize');
|
||||
art.emit('fullscreen', true);
|
||||
notice.show = '';
|
||||
} else {
|
||||
art.aspectRatioReset = true;
|
||||
art.autoSize = art.option.autoSize;
|
||||
await screenfull.exit();
|
||||
removeClass($player, 'art-fullscreen');
|
||||
art.emit('resize');
|
||||
art.emit('fullscreen');
|
||||
notice.show = '';
|
||||
}
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
const webkitScreenfull = (art) => {
|
||||
def(art, 'fullscreen', {
|
||||
get() {
|
||||
return $video.webkitDisplayingFullscreen;
|
||||
},
|
||||
set(value) {
|
||||
if (value) {
|
||||
art.normalSize = 'fullscreen';
|
||||
$video.webkitEnterFullscreen();
|
||||
art.emit('fullscreen', true);
|
||||
notice.show = '';
|
||||
} else {
|
||||
$video.webkitExitFullscreen();
|
||||
art.emit('fullscreen');
|
||||
notice.show = '';
|
||||
}
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
art.once('video:loadedmetadata', () => {
|
||||
if (screenfull.isEnabled) {
|
||||
nativeScreenfull(art);
|
||||
|
||||
Reference in new issue
Block a user