summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkMediaVideo.vue
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2024-11-09 10:57:04 +0900
committerGitHub <noreply@github.com>2024-11-09 10:57:04 +0900
commit3a421837bfc8ea816c3109394a916cb0cac0e8d8 (patch)
treebc652cc03f6d2198b0ceca208af8a801483066f7 /packages/frontend/src/components/MkMediaVideo.vue
parentenhance(backend) : リモートユーザーの照会をオリジナルにリ... (diff)
downloadmisskey-3a421837bfc8ea816c3109394a916cb0cac0e8d8.tar.gz
misskey-3a421837bfc8ea816c3109394a916cb0cac0e8d8.tar.bz2
misskey-3a421837bfc8ea816c3109394a916cb0cac0e8d8.zip
refactor(frontend): 動画UIのフルスクリーン周りの調整 (#14877)
* refactor(frontend): フルスクリーン周りの調整 (cherry picked from commit 783032caec5853d78d5af3391e29cf364f2282e8) * refactor(frontend): deviceKindの循環参照を除去 (cherry picked from commit 1ca471f57e968a1a6e2259bde4a7c6da1fe0c54e) * fix --------- Co-authored-by: taiyme <53635909+taiyme@users.noreply.github.com>
Diffstat (limited to 'packages/frontend/src/components/MkMediaVideo.vue')
-rw-r--r--packages/frontend/src/components/MkMediaVideo.vue43
1 files changed, 20 insertions, 23 deletions
diff --git a/packages/frontend/src/components/MkMediaVideo.vue b/packages/frontend/src/components/MkMediaVideo.vue
index d3a12ca734..65e4a1eb12 100644
--- a/packages/frontend/src/components/MkMediaVideo.vue
+++ b/packages/frontend/src/components/MkMediaVideo.vue
@@ -118,7 +118,7 @@ import { hms } from '@/filters/hms.js';
import { defaultStore } from '@/store.js';
import { i18n } from '@/i18n.js';
import * as os from '@/os.js';
-import { isFullscreenNotSupported } from '@/scripts/device-kind.js';
+import { exitFullscreen, requestFullscreen } from '@/scripts/fullscreen.js';
import hasAudio from '@/scripts/media-has-audio.js';
import MkMediaRange from '@/components/MkMediaRange.vue';
import { $i, iAmModerator } from '@/account.js';
@@ -334,26 +334,21 @@ function togglePlayPause() {
}
function toggleFullscreen() {
- if (isFullscreenNotSupported && videoEl.value) {
- if (isFullscreen.value) {
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
- //@ts-ignore
- videoEl.value.webkitExitFullscreen();
- isFullscreen.value = false;
- } else {
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
- //@ts-ignore
- videoEl.value.webkitEnterFullscreen();
- isFullscreen.value = true;
- }
- } else if (playerEl.value) {
- if (isFullscreen.value) {
- document.exitFullscreen();
- isFullscreen.value = false;
- } else {
- playerEl.value.requestFullscreen({ navigationUI: 'hide' });
- isFullscreen.value = true;
- }
+ if (playerEl.value == null || videoEl.value == null) return;
+ if (isFullscreen.value) {
+ exitFullscreen({
+ videoEl: videoEl.value,
+ });
+ isFullscreen.value = false;
+ } else {
+ requestFullscreen({
+ videoEl: videoEl.value,
+ playerEl: playerEl.value,
+ options: {
+ navigationUI: 'hide',
+ },
+ });
+ isFullscreen.value = true;
}
}
@@ -454,8 +449,10 @@ watch(loop, (to) => {
});
watch(hide, (to) => {
- if (to && isFullscreen.value) {
- document.exitFullscreen();
+ if (videoEl.value && to && isFullscreen.value) {
+ exitFullscreen({
+ videoEl: videoEl.value,
+ });
isFullscreen.value = false;
}
});