@@ -2006,55 +2006,47 @@ export default defineComponent({
2006
2006
2007
2007
const video_ = video . value
2008
2008
2009
- switch ( event . key ) {
2009
+ switch ( event . key . toLowerCase ( ) ) {
2010
2010
case ' ' :
2011
- case 'Spacebar' : // older browsers might return spacebar instead of a space character
2012
- case 'K' :
2013
- case 'k' :
2011
+ case 'spacebar' : // older browsers might return spacebar instead of a space character
2012
+ case KeyboardShortcuts . VIDEO_PLAYER . PLAY :
2014
2013
// Toggle Play/Pause
2015
2014
event . preventDefault ( )
2016
2015
video_ . paused ? video_ . play ( ) : video_ . pause ( )
2017
2016
break
2018
- case 'J' :
2019
- case 'j' :
2017
+ case KeyboardShortcuts . VIDEO_PLAYER . LARGE_REWIND :
2020
2018
// Rewind by 2x the time-skip interval (in seconds)
2021
2019
event . preventDefault ( )
2022
2020
seekBySeconds ( - defaultSkipInterval . value * video_ . playbackRate * 2 )
2023
2021
break
2024
- case 'L' :
2025
- case 'l' :
2022
+ case KeyboardShortcuts . VIDEO_PLAYER . LARGE_FAST_FORWARD :
2026
2023
// Fast-Forward by 2x the time-skip interval (in seconds)
2027
2024
event . preventDefault ( )
2028
2025
seekBySeconds ( defaultSkipInterval . value * video_ . playbackRate * 2 )
2029
2026
break
2030
- case 'O' :
2031
- case 'o' :
2027
+ case KeyboardShortcuts . VIDEO_PLAYER . DECREASE_VIDEO_SPEED :
2032
2028
// Decrease playback rate by user configured interval
2033
2029
event . preventDefault ( )
2034
2030
changePlayBackRate ( - videoPlaybackRateInterval . value )
2035
2031
break
2036
- case 'P' :
2037
- case 'p' :
2032
+ case KeyboardShortcuts . VIDEO_PLAYER . INCREASE_VIDEO_SPEED :
2038
2033
// Increase playback rate by user configured interval
2039
2034
event . preventDefault ( )
2040
2035
changePlayBackRate ( videoPlaybackRateInterval . value )
2041
2036
break
2042
- case 'F' :
2043
- case 'f' :
2037
+ case KeyboardShortcuts . VIDEO_PLAYER . FULLSCREEN :
2044
2038
// Toggle full screen
2045
2039
event . preventDefault ( )
2046
2040
ui . getControls ( ) . toggleFullScreen ( )
2047
2041
break
2048
- case 'M' :
2049
- case 'm' :
2042
+ case KeyboardShortcuts . VIDEO_PLAYER . MUTE :
2050
2043
// Toggle mute only if metakey is not pressed
2051
2044
if ( ! event . metaKey ) {
2052
2045
event . preventDefault ( )
2053
2046
video_ . muted = ! video_ . muted
2054
2047
}
2055
2048
break
2056
- case 'C' :
2057
- case 'c' :
2049
+ case KeyboardShortcuts . VIDEO_PLAYER . SUBTITLES :
2058
2050
// Toggle caption/subtitles
2059
2051
if ( player . getTextTracks ( ) . length > 0 ) {
2060
2052
event . preventDefault ( )
@@ -2063,17 +2055,17 @@ export default defineComponent({
2063
2055
player . setTextTrackVisibility ( ! currentlyVisible )
2064
2056
}
2065
2057
break
2066
- case 'ArrowUp ' :
2058
+ case 'arrowup ' :
2067
2059
// Increase volume
2068
2060
event . preventDefault ( )
2069
2061
changeVolume ( 0.05 )
2070
2062
break
2071
- case 'ArrowDown ' :
2063
+ case 'arrowdown ' :
2072
2064
// Decrease Volume
2073
2065
event . preventDefault ( )
2074
2066
changeVolume ( - 0.05 )
2075
2067
break
2076
- case 'ArrowLeft ' :
2068
+ case 'arrowleft ' :
2077
2069
event . preventDefault ( )
2078
2070
if ( canChapterJump ( event , 'previous' ) ) {
2079
2071
// Jump to the previous chapter
@@ -2083,7 +2075,7 @@ export default defineComponent({
2083
2075
seekBySeconds ( - defaultSkipInterval . value * video_ . playbackRate )
2084
2076
}
2085
2077
break
2086
- case 'ArrowRight ' :
2078
+ case 'arrowright ' :
2087
2079
event . preventDefault ( )
2088
2080
if ( canChapterJump ( event , 'next' ) ) {
2089
2081
// Jump to the next chapter
@@ -2093,8 +2085,7 @@ export default defineComponent({
2093
2085
seekBySeconds ( defaultSkipInterval . value * video_ . playbackRate )
2094
2086
}
2095
2087
break
2096
- case 'I' :
2097
- case 'i' :
2088
+ case KeyboardShortcuts . VIDEO_PLAYER . PICTURE_IN_PICTURE :
2098
2089
// Toggle picture in picture
2099
2090
if ( props . format !== 'audio' ) {
2100
2091
const controls = ui . getControls ( )
@@ -2127,26 +2118,25 @@ export default defineComponent({
2127
2118
}
2128
2119
break
2129
2120
}
2130
- case ',' :
2121
+ case KeyboardShortcuts . VIDEO_PLAYER . LAST_FRAME :
2131
2122
event . preventDefault ( )
2132
2123
// Return to previous frame
2133
2124
frameByFrame ( - 1 )
2134
2125
break
2135
- case '.' :
2126
+ case KeyboardShortcuts . VIDEO_PLAYER . NEXT_FRAME :
2136
2127
event . preventDefault ( )
2137
2128
// Advance to next frame
2138
2129
frameByFrame ( 1 )
2139
2130
break
2140
- case 'D' :
2141
- case 'd' :
2131
+ case KeyboardShortcuts . VIDEO_PLAYER . STATS :
2142
2132
// Toggle stats display
2143
2133
event . preventDefault ( )
2144
2134
2145
2135
events . dispatchEvent ( new CustomEvent ( 'setStatsVisibility' , {
2146
2136
detail : ! showStats . value
2147
2137
} ) )
2148
2138
break
2149
- case 'Escape ' :
2139
+ case 'escape ' :
2150
2140
// Exit full window
2151
2141
if ( fullWindowEnabled . value ) {
2152
2142
event . preventDefault ( )
@@ -2156,16 +2146,14 @@ export default defineComponent({
2156
2146
} ) )
2157
2147
}
2158
2148
break
2159
- case 'S' :
2160
- case 's' :
2149
+ case KeyboardShortcuts . VIDEO_PLAYER . FULLWINDOW :
2161
2150
// Toggle full window mode
2162
2151
event . preventDefault ( )
2163
2152
events . dispatchEvent ( new CustomEvent ( 'setFullWindow' , {
2164
2153
detail : ! fullWindowEnabled . value
2165
2154
} ) )
2166
2155
break
2167
- case 'T' :
2168
- case 't' :
2156
+ case KeyboardShortcuts . VIDEO_PLAYER . THEATRE_MODE :
2169
2157
// Toggle theatre mode
2170
2158
if ( props . theatrePossible ) {
2171
2159
event . preventDefault ( )
@@ -2175,8 +2163,7 @@ export default defineComponent({
2175
2163
} ) )
2176
2164
}
2177
2165
break
2178
- case 'U' :
2179
- case 'u' :
2166
+ case KeyboardShortcuts . VIDEO_PLAYER . TAKE_SCREENSHOT :
2180
2167
if ( process . env . IS_ELECTRON && enableScreenshot . value && props . format !== 'audio' ) {
2181
2168
event . preventDefault ( )
2182
2169
// Take screenshot
0 commit comments