Skip to content

Commit 7f40c6f

Browse files
committed
Prevent plaback rate reset when video ends
1 parent 75c09ff commit 7f40c6f

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
@@ -2429,6 +2429,14 @@ export default defineComponent({
24292429
// #region setup
24302430

24312431
onMounted(async () => {
2432+
watch(() => props.currentPlaybackRate,
2433+
(newRate) => {
2434+
if (video.value) {
2435+
video.value.playbackRate = newRate
2436+
video.value.defaultPlaybackRate = newRate
2437+
}
2438+
}
2439+
)
24322440
const videoElement = video.value
24332441

24342442
const volume = sessionStorage.getItem('volume')
@@ -2548,6 +2556,14 @@ export default defineComponent({
25482556
container.value.classList.add('no-cursor')
25492557

25502558
await performFirstLoad()
2559+
const userRate = props.currentPlaybackRate
2560+
if (video.value) {
2561+
video.value.playbackRate = userRate
2562+
video.value.defaultPlaybackRate = userRate
2563+
}
2564+
if (video.value) {
2565+
video.value.playbackRate = props.currentPlaybackRate
2566+
}
25512567

25522568
player.addEventListener('ratechange', () => {
25532569
emit('playback-rate-updated', player.getPlaybackRate())
@@ -2589,6 +2605,10 @@ export default defineComponent({
25892605
* if this was triggered by a format change and the user had the captions enabled.
25902606
*/
25912607
async function handleLoaded() {
2608+
const storedRate = sessionStorage.getItem('playbackRate')
2609+
const rate = storedRate !== null ? parseFloat(storedRate) : props.currentPlaybackRate
2610+
video.value.playbackRate = rate
2611+
video.value.defaultPlaybackRate = rate
25922612
hasLoaded.value = true
25932613
emit('loaded')
25942614

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()
@@ -1749,6 +1750,7 @@ export default defineComponent({
17491750

17501751
updatePlaybackRate(newRate) {
17511752
this.currentPlaybackRate = newRate
1753+
sessionStorage.setItem('playbackRate', newRate.toString())
17521754
},
17531755

17541756
destroyPlayer: async function() {

0 commit comments

Comments
 (0)