Skip to content

Commit 74dbe94

Browse files
committed
Prevent plaback rate reset when video ends
1 parent cf3f493 commit 74dbe94

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
@@ -2494,6 +2494,14 @@ export default defineComponent({
24942494
// #region setup
24952495

24962496
onMounted(async () => {
2497+
watch(() => props.currentPlaybackRate,
2498+
(newRate) => {
2499+
if (video.value) {
2500+
video.value.playbackRate = newRate
2501+
video.value.defaultPlaybackRate = newRate
2502+
}
2503+
}
2504+
)
24972505
const videoElement = video.value
24982506

24992507
const volume = sessionStorage.getItem('volume')
@@ -2613,6 +2621,14 @@ export default defineComponent({
26132621
container.value.classList.add('no-cursor')
26142622

26152623
await performFirstLoad()
2624+
const userRate = props.currentPlaybackRate
2625+
if (video.value) {
2626+
video.value.playbackRate = userRate
2627+
video.value.defaultPlaybackRate = userRate
2628+
}
2629+
if (video.value) {
2630+
video.value.playbackRate = props.currentPlaybackRate
2631+
}
26162632

26172633
player.addEventListener('ratechange', () => {
26182634
emit('playback-rate-updated', player.getPlaybackRate())
@@ -2654,6 +2670,10 @@ export default defineComponent({
26542670
* if this was triggered by a format change and the user had the captions enabled.
26552671
*/
26562672
async function handleLoaded() {
2673+
const storedRate = sessionStorage.getItem('playbackRate')
2674+
const rate = storedRate !== null ? parseFloat(storedRate) : props.currentPlaybackRate
2675+
video.value.playbackRate = rate
2676+
video.value.defaultPlaybackRate = rate
26572677
hasLoaded.value = true
26582678
emit('loaded')
26592679

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)