diff --git a/src/plugins/player/playList.ts b/src/plugins/player/playList.ts index 3d88559..7aec8e4 100644 --- a/src/plugins/player/playList.ts +++ b/src/plugins/player/playList.ts @@ -106,8 +106,8 @@ export const getCurrentTrack = async() => { return list[currentTrackIndex] } -export const updateMetaData = async(musicInfo: LX.Player.MusicInfo, isPlay: boolean) => { - if (isPlay == isPlaying) { +export const updateMetaData = async(musicInfo: LX.Player.MusicInfo, isPlay: boolean, force = false) => { + if (!force && isPlay == isPlaying) { const duration = await TrackPlayer.getDuration() // console.log('currentIsPlaying', prevDuration, duration) if (prevDuration != duration) { diff --git a/src/screens/PlayDetail/components/SettingPopup/settings/SettingPlaybackRate.tsx b/src/screens/PlayDetail/components/SettingPopup/settings/SettingPlaybackRate.tsx index d095ed1..e0c66a2 100644 --- a/src/screens/PlayDetail/components/SettingPopup/settings/SettingPlaybackRate.tsx +++ b/src/screens/PlayDetail/components/SettingPopup/settings/SettingPlaybackRate.tsx @@ -8,9 +8,10 @@ import Slider, { type SliderProps } from '@/components/common/Slider' import { updateSetting } from '@/core/common' import { useI18n } from '@/lang' import styles from './style' -import { setPlaybackRate } from '@/plugins/player' +import { setPlaybackRate, updateMetaData } from '@/plugins/player' import { setPlaybackRate as setLyricPlaybackRate } from '@/core/lyric' import ButtonPrimary from '@/components/common/ButtonPrimary' +import playerState from '@/store/player/state' const Volume = () => { @@ -35,10 +36,13 @@ const Volume = () => { const rate = value / 100 void setLyricPlaybackRate(rate) updateSetting({ 'player.playbackRate': rate }) + void updateMetaData(playerState.musicInfo, playerState.isPlay, true) } const handleReset = () => { setSliderSize(100) - void setPlaybackRate(1) + void setPlaybackRate(1).then(() => { + void updateMetaData(playerState.musicInfo, playerState.isPlay, true) + }) void setLyricPlaybackRate(1) updateSetting({ 'player.playbackRate': 1 }) }