1
- import { computed , defineComponent , onBeforeUnmount , onMounted , reactive , ref , shallowRef , watch } from 'vue'
1
+ import { computed , defineComponent , nextTick , onBeforeUnmount , onMounted , reactive , ref , shallowRef , watch } from 'vue'
2
2
import shaka from 'shaka-player'
3
3
import { useI18n } from '../../composables/use-i18n-polyfill'
4
4
@@ -1977,6 +1977,8 @@ export default defineComponent({
1977
1977
const formattedSeconds = Math . abs ( seconds )
1978
1978
showValueChange ( `${ formattedSeconds } s` , popUpLayout . icon , popUpLayout . invertContentOrder )
1979
1979
}
1980
+
1981
+ showOverlayControls ( )
1980
1982
}
1981
1983
1982
1984
// #endregion mouse and keyboard helpers
@@ -2224,6 +2226,7 @@ export default defineComponent({
2224
2226
2225
2227
const currentlyVisible = player . isTextTrackVisible ( )
2226
2228
player . setTextTrackVisibility ( ! currentlyVisible )
2229
+ showOverlayControls ( )
2227
2230
}
2228
2231
break
2229
2232
case KeyboardShortcuts . VIDEO_PLAYER . GENERAL . VOLUME_UP :
@@ -2241,6 +2244,7 @@ export default defineComponent({
2241
2244
if ( canChapterJump ( event , 'previous' ) ) {
2242
2245
// Jump to the previous chapter
2243
2246
video_ . currentTime = props . chapters [ props . currentChapterIndex - 1 ] . startSeconds
2247
+ showOverlayControls ( )
2244
2248
} else {
2245
2249
// Rewind by the time-skip interval (in seconds)
2246
2250
seekBySeconds ( - defaultSkipInterval . value * player . getPlaybackRate ( ) , false , true )
@@ -2251,6 +2255,7 @@ export default defineComponent({
2251
2255
if ( canChapterJump ( event , 'next' ) ) {
2252
2256
// Jump to the next chapter
2253
2257
video_ . currentTime = ( props . chapters [ props . currentChapterIndex + 1 ] . startSeconds )
2258
+ showOverlayControls ( )
2254
2259
} else {
2255
2260
// Fast-Forward by the time-skip interval (in seconds)
2256
2261
seekBySeconds ( defaultSkipInterval . value * player . getPlaybackRate ( ) , false , true )
@@ -2286,6 +2291,7 @@ export default defineComponent({
2286
2291
const percentage = parseInt ( event . key ) / 10
2287
2292
2288
2293
video_ . currentTime = seekRange . start + ( length * percentage )
2294
+ showOverlayControls ( )
2289
2295
}
2290
2296
break
2291
2297
}
@@ -2317,6 +2323,7 @@ export default defineComponent({
2317
2323
// use seek range instead of duration so that it works for live streams too
2318
2324
const seekRange = player . seekRange ( )
2319
2325
video_ . currentTime = seekRange . start
2326
+ showOverlayControls ( )
2320
2327
}
2321
2328
break
2322
2329
case KeyboardShortcuts . VIDEO_PLAYER . PLAYBACK . END :
@@ -2326,6 +2333,7 @@ export default defineComponent({
2326
2333
// use seek range instead of duration so that it works for live streams too
2327
2334
const seekRange = player . seekRange ( )
2328
2335
video_ . currentTime = seekRange . end
2336
+ showOverlayControls ( )
2329
2337
}
2330
2338
break
2331
2339
case 'escape' :
@@ -2487,6 +2495,10 @@ export default defineComponent({
2487
2495
isOffline . value = true
2488
2496
}
2489
2497
2498
+ function fullscreenChangeHandler ( ) {
2499
+ nextTick ( showOverlayControls )
2500
+ }
2501
+
2490
2502
window . addEventListener ( 'online' , onlineHandler )
2491
2503
window . addEventListener ( 'offline' , offlineHandler )
2492
2504
@@ -2585,6 +2597,7 @@ export default defineComponent({
2585
2597
2586
2598
document . removeEventListener ( 'keydown' , keyboardShortcutHandler )
2587
2599
document . addEventListener ( 'keydown' , keyboardShortcutHandler )
2600
+ document . addEventListener ( 'fullscreenchange' , fullscreenChangeHandler )
2588
2601
2589
2602
player . addEventListener ( 'loading' , ( ) => {
2590
2603
hasLoaded . value = false
@@ -2925,6 +2938,7 @@ export default defineComponent({
2925
2938
document . body . classList . remove ( 'playerFullWindow' )
2926
2939
2927
2940
document . removeEventListener ( 'keydown' , keyboardShortcutHandler )
2941
+ document . removeEventListener ( 'fullscreenchange' , fullscreenChangeHandler )
2928
2942
2929
2943
if ( resizeObserver ) {
2930
2944
resizeObserver . disconnect ( )
@@ -3032,6 +3046,10 @@ export default defineComponent({
3032
3046
const invertValueChangeContentOrder = ref ( false )
3033
3047
let valueChangeTimeout = null
3034
3048
3049
+ function showOverlayControls ( ) {
3050
+ ui . getControls ( ) . showUI ( )
3051
+ }
3052
+
3035
3053
/**
3036
3054
* Shows a popup with a message and an icon on top of the video player.
3037
3055
* @param {string } message - The message to display.
@@ -3051,6 +3069,8 @@ export default defineComponent({
3051
3069
valueChangeTimeout = setTimeout ( ( ) => {
3052
3070
showValueChangePopup . value = false
3053
3071
} , 2000 )
3072
+
3073
+ showOverlayControls ( )
3054
3074
}
3055
3075
3056
3076
return {
0 commit comments