feat: 添加播放速度控制功能

现有播放器不支持改变播放速度,用户无法实现 0.5×、1.5×、2.0× 等快进/慢放需求。为了提升可用性和灵活性,决定在播放栏增加速度选择菜单,并支持 Media Session API 同步速率
This commit is contained in:
Java-wyx
2025-05-19 17:59:20 +08:00
parent 4d371df510
commit 655473699a
5 changed files with 115 additions and 4 deletions
+24 -1
View File
@@ -399,6 +399,9 @@ export const usePlayerStore = defineStore('player', () => {
value: 0
}));
// 添加播放速度状态
const playbackRate = ref(1.0);
// 清空播放列表
const clearPlayAll = async () => {
audioService.pause()
@@ -1042,6 +1045,23 @@ export const usePlayerStore = defineStore('player', () => {
setPlayList(newPlayList);
};
// 设置播放速度
const setPlaybackRate = (rate: number) => {
playbackRate.value = rate;
audioService.setPlaybackRate(rate);
// 保存到本地存储
localStorage.setItem('playbackRate', rate.toString());
};
// 初始化播放速度
const initializePlaybackRate = () => {
const savedRate = localStorage.getItem('playbackRate');
if (savedRate) {
playbackRate.value = parseFloat(savedRate);
audioService.setPlaybackRate(playbackRate.value);
}
};
// 初始化播放状态
const initializePlayState = async () => {
const settingStore = useSettingsStore();
@@ -1093,6 +1113,7 @@ export const usePlayerStore = defineStore('player', () => {
localStorage.removeItem('playProgress');
}
}
initializePlaybackRate();
};
const initializeFavoriteList = async () => {
@@ -1343,6 +1364,8 @@ export const usePlayerStore = defineStore('player', () => {
playAudio,
reparseCurrentSong,
setPlayListDrawerVisible,
handlePause
handlePause,
playbackRate,
setPlaybackRate
};
});