Skip to content

Commit afbf291

Browse files
committed
Prevent plaback rate reset when video ends
1 parent 861aede commit afbf291

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

src/renderer/components/ft-shaka-video-player/ft-shaka-video-player.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2502,6 +2502,14 @@ export default defineComponent({
25022502
// #region setup
25032503

25042504
onMounted(async () => {
2505+
watch(() => props.currentPlaybackRate,
2506+
(newRate) => {
2507+
if (video.value) {
2508+
video.value.playbackRate = newRate
2509+
video.value.defaultPlaybackRate = newRate
2510+
}
2511+
}
2512+
)
25052513
const videoElement = video.value
25062514

25072515
const volume = sessionStorage.getItem('volume')
@@ -2619,6 +2627,14 @@ export default defineComponent({
26192627
container.value.classList.add('no-cursor')
26202628

26212629
await performFirstLoad()
2630+
const userRate = props.currentPlaybackRate
2631+
if (video.value) {
2632+
video.value.playbackRate = userRate
2633+
video.value.defaultPlaybackRate = userRate
2634+
}
2635+
if (video.value) {
2636+
video.value.playbackRate = props.currentPlaybackRate
2637+
}
26222638

26232639
player.addEventListener('ratechange', () => {
26242640
emit('playback-rate-updated', player.getPlaybackRate())
@@ -2660,6 +2676,10 @@ export default defineComponent({
26602676
* if this was triggered by a format change and the user had the captions enabled.
26612677
*/
26622678
async function handleLoaded() {
2679+
const storedRate = sessionStorage.getItem('playbackRate')
2680+
const rate = storedRate !== null ? parseFloat(storedRate) : props.currentPlaybackRate
2681+
video.value.playbackRate = rate
2682+
video.value.defaultPlaybackRate = rate
26632683
hasLoaded.value = true
26642684
emit('loaded')
26652685

src/renderer/views/Watch/Watch.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,8 @@ export default defineComponent({
338338
this.autoplayNextPlaylistVideo = this.autoplayNextPlaylistVideoByDefault
339339

340340
this.checkIfTimestamp()
341-
this.currentPlaybackRate = this.$store.getters.getDefaultPlayback
341+
const stored = sessionStorage.getItem('playbackRate')
342+
this.currentPlaybackRate = stored !== null ? parseFloat(stored) : this.$store.getters.getDefaultPlayback
342343
},
343344
mounted: function () {
344345
this.onMountedDependOnLocalStateLoading()
@@ -1770,6 +1771,7 @@ export default defineComponent({
17701771

17711772
updatePlaybackRate(newRate) {
17721773
this.currentPlaybackRate = newRate
1774+
sessionStorage.setItem('playbackRate', newRate.toString())
17731775
},
17741776

17751777
destroyPlayer: async function() {

0 commit comments

Comments
 (0)