Customize max playback rate and playback rate interval
This commit is contained in:
		
							parent
							
								
									cf1790d52c
								
							
						
					
					
						commit
						40699b9ae3
					
				|  | @ -126,21 +126,7 @@ export default Vue.extend({ | |||
|             'qualitySelector', | ||||
|             'fullscreenToggle' | ||||
|           ] | ||||
|         }, | ||||
|         playbackRates: [ | ||||
|           0.25, | ||||
|           0.5, | ||||
|           0.75, | ||||
|           1, | ||||
|           1.25, | ||||
|           1.5, | ||||
|           1.75, | ||||
|           2, | ||||
|           2.25, | ||||
|           2.5, | ||||
|           2.75, | ||||
|           3 | ||||
|         ] | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|  | @ -200,6 +186,27 @@ export default Vue.extend({ | |||
| 
 | ||||
|     displayVideoPlayButton: function() { | ||||
|       return this.$store.getters.getDisplayVideoPlayButton | ||||
|     }, | ||||
| 
 | ||||
|     maxVideoPlaybackRate: function () { | ||||
|       return parseInt(this.$store.getters.getMaxVideoPlaybackRate) | ||||
|     }, | ||||
| 
 | ||||
|     videoPlaybackRateInterval: function () { | ||||
|       return parseFloat(this.$store.getters.getVideoPlaybackRateInterval) | ||||
|     }, | ||||
| 
 | ||||
|     playbackRates: function () { | ||||
|       const playbackRates = [] | ||||
|       let i = this.videoPlaybackRateInterval | ||||
| 
 | ||||
|       while (i <= this.maxVideoPlaybackRate) { | ||||
|         playbackRates.push(i) | ||||
|         i = i + this.videoPlaybackRateInterval | ||||
|         i = parseFloat(i.toFixed(2)) | ||||
|       } | ||||
| 
 | ||||
|       return playbackRates | ||||
|     } | ||||
|   }, | ||||
|   watch: { | ||||
|  | @ -216,6 +223,8 @@ export default Vue.extend({ | |||
|       this.volume = volume | ||||
|     } | ||||
| 
 | ||||
|     this.dataSetup.playbackRates = this.playbackRates | ||||
| 
 | ||||
|     this.createFullWindowButton() | ||||
|     this.createLoopButton() | ||||
|     this.createToggleTheatreModeButton() | ||||
|  | @ -983,7 +992,7 @@ export default Vue.extend({ | |||
|     changePlayBackRate: function (rate) { | ||||
|       const newPlaybackRate = (this.player.playbackRate() + rate).toFixed(2) | ||||
| 
 | ||||
|       if (newPlaybackRate >= 0.25 && newPlaybackRate <= 8) { | ||||
|       if (newPlaybackRate >= this.videoPlaybackRateInterval && newPlaybackRate <= this.maxVideoPlaybackRate) { | ||||
|         this.player.playbackRate(newPlaybackRate) | ||||
|       } | ||||
|     }, | ||||
|  | @ -1515,13 +1524,13 @@ export default Vue.extend({ | |||
|             // O Key
 | ||||
|             // Decrease playback rate by 0.25x
 | ||||
|             event.preventDefault() | ||||
|             this.changePlayBackRate(-0.25) | ||||
|             this.changePlayBackRate(-this.videoPlaybackRateInterval) | ||||
|             break | ||||
|           case 80: | ||||
|             // P Key
 | ||||
|             // Increase playback rate by 0.25x
 | ||||
|             event.preventDefault() | ||||
|             this.changePlayBackRate(0.25) | ||||
|             this.changePlayBackRate(this.videoPlaybackRateInterval) | ||||
|             break | ||||
|           case 70: | ||||
|             // F Key
 | ||||
|  |  | |||
|  | @ -30,6 +30,12 @@ export default Vue.extend({ | |||
|         480, | ||||
|         720, | ||||
|         1080 | ||||
|       ], | ||||
|       playbackRateIntervalValues: [ | ||||
|         0.1, | ||||
|         0.25, | ||||
|         0.5, | ||||
|         1 | ||||
|       ] | ||||
|     } | ||||
|   }, | ||||
|  | @ -106,6 +112,14 @@ export default Vue.extend({ | |||
|       return this.$store.getters.getDisplayVideoPlayButton | ||||
|     }, | ||||
| 
 | ||||
|     maxVideoPlaybackRate: function () { | ||||
|       return parseInt(this.$store.getters.getMaxVideoPlaybackRate) | ||||
|     }, | ||||
| 
 | ||||
|     videoPlaybackRateInterval: function () { | ||||
|       return this.$store.getters.getVideoPlaybackRateInterval | ||||
|     }, | ||||
| 
 | ||||
|     formatNames: function () { | ||||
|       return [ | ||||
|         this.$t('Settings.Player Settings.Default Video Format.Dash Formats'), | ||||
|  | @ -143,7 +157,9 @@ export default Vue.extend({ | |||
|       'updateDefaultQuality', | ||||
|       'updateVideoVolumeMouseScroll', | ||||
|       'updateVideoPlaybackRateMouseScroll', | ||||
|       'updateDisplayVideoPlayButton' | ||||
|       'updateDisplayVideoPlayButton', | ||||
|       'updateMaxVideoPlaybackRate', | ||||
|       'updateVideoPlaybackRateInterval' | ||||
|     ]) | ||||
|   } | ||||
| }) | ||||
|  |  | |||
|  | @ -115,6 +115,22 @@ | |||
|         value-extension="×" | ||||
|         @change="updateDefaultPlayback" | ||||
|       /> | ||||
|       <ft-slider | ||||
|         :label="$t('Settings.Player Settings.Max Video Playback Rate')" | ||||
|         :default-value="maxVideoPlaybackRate" | ||||
|         :min-value="2" | ||||
|         :max-value="10" | ||||
|         :step="1" | ||||
|         value-extension="x" | ||||
|         @change="updateMaxVideoPlaybackRate" | ||||
|       /> | ||||
|       <ft-select | ||||
|         :placeholder="$t('Settings.Player Settings.Video Playback Rate Interval')" | ||||
|         :value="videoPlaybackRateInterval" | ||||
|         :select-names="playbackRateIntervalValues" | ||||
|         :select-values="playbackRateIntervalValues" | ||||
|         @change="updateVideoPlaybackRateInterval" | ||||
|       /> | ||||
|     </ft-flex-box> | ||||
|     <ft-flex-box> | ||||
|       <ft-select | ||||
|  |  | |||
|  | @ -203,6 +203,7 @@ const state = { | |||
|   hideLabelsSideBar: false, | ||||
|   landingPage: 'subscriptions', | ||||
|   listType: 'grid', | ||||
|   maxVideoPlaybackRate: 3, | ||||
|   playNextVideo: false, | ||||
|   proxyHostname: '127.0.0.1', | ||||
|   proxyPort: '9050', | ||||
|  | @ -220,6 +221,7 @@ const state = { | |||
|   useSponsorBlock: false, | ||||
|   videoVolumeMouseScroll: false, | ||||
|   videoPlaybackRateMouseScroll: false, | ||||
|   videoPlaybackRateInterval: 0.25, | ||||
|   downloadFolderPath: '' | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -212,6 +212,8 @@ Settings: | |||
|     Fast-Forward / Rewind Interval: Fast-Forward / Rewind Interval | ||||
|     Default Volume: Default Volume | ||||
|     Default Playback Rate: Default Playback Rate | ||||
|     Max Video Playback Rate: Max Video Playback Rate | ||||
|     Video Playback Rate Interval: Video Playback Rate Interval | ||||
|     Default Video Format: | ||||
|       Default Video Format: Default Video Format | ||||
|       Dash Formats: DASH Formats | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue