feat: Playback speed and volume setting doesn't stick (fix #185)
All checks were successful
repod / xml (push) Successful in 38s
repod / php (push) Successful in 1m16s
repod / nodejs (push) Successful in 1m38s
repod / release (push) Has been skipped

This commit is contained in:
Michel Roux 2024-11-08 23:49:43 +01:00
parent f0a2d199f9
commit e439730a4d

View File

@ -1,4 +1,5 @@
import type { EpisodeActionInterface, EpisodeInterface } from '../utils/types.ts' import type { EpisodeActionInterface, EpisodeInterface } from '../utils/types.ts'
import { getCookie, setCookie } from '../utils/cookies.ts'
import axios from '@nextcloud/axios' import axios from '@nextcloud/axios'
import { defineStore } from 'pinia' import { defineStore } from 'pinia'
import { formatEpisodeTimestamp } from '../utils/time.ts' import { formatEpisodeTimestamp } from '../utils/time.ts'
@ -23,6 +24,9 @@ export const usePlayer = defineStore('player', {
}), }),
actions: { actions: {
init() { init() {
audio.playbackRate = parseFloat(getCookie('repod.rate') || '1')
audio.volume = parseFloat(getCookie('repod.volume') || '1')
audio.ondurationchange = () => (this.duration = audio.duration) audio.ondurationchange = () => (this.duration = audio.duration)
audio.onended = () => this.stop() audio.onended = () => this.stop()
audio.onloadeddata = () => (this.loaded = true) audio.onloadeddata = () => (this.loaded = true)
@ -123,9 +127,11 @@ export const usePlayer = defineStore('player', {
}, },
setVolume(volume: number) { setVolume(volume: number) {
audio.volume = volume audio.volume = volume
setCookie('repod.volume', volume.toString(), 365)
}, },
setRate(rate: number) { setRate(rate: number) {
audio.playbackRate = rate audio.playbackRate = rate
setCookie('repod.rate', rate.toString(), 365)
}, },
}, },
}) })