mirror of
https://github.com/algerkong/AlgerMusicPlayer.git
synced 2026-05-17 10:27:30 +08:00
61 lines
1.4 KiB
TypeScript
61 lines
1.4 KiB
TypeScript
|
|
import { computed } from 'vue';
|
||
|
|
import { useI18n } from 'vue-i18n';
|
||
|
|
|
||
|
|
import { usePlayerStore } from '@/store/modules/player';
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 播放模式相关的 Hook
|
||
|
|
* 提供播放模式的图标、文本和切换功能
|
||
|
|
*/
|
||
|
|
export function usePlayMode() {
|
||
|
|
const { t } = useI18n();
|
||
|
|
const playerStore = usePlayerStore();
|
||
|
|
|
||
|
|
// 当前播放模式
|
||
|
|
const playMode = computed(() => playerStore.playMode);
|
||
|
|
|
||
|
|
// 播放模式图标
|
||
|
|
const playModeIcon = computed(() => {
|
||
|
|
switch (playMode.value) {
|
||
|
|
case 0:
|
||
|
|
return 'ri-repeat-2-line';
|
||
|
|
case 1:
|
||
|
|
return 'ri-repeat-one-line';
|
||
|
|
case 2:
|
||
|
|
return 'ri-shuffle-line';
|
||
|
|
case 3:
|
||
|
|
return 'ri-heart-pulse-line';
|
||
|
|
default:
|
||
|
|
return 'ri-repeat-2-line';
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
// 播放模式文本
|
||
|
|
const playModeText = computed(() => {
|
||
|
|
switch (playMode.value) {
|
||
|
|
case 0:
|
||
|
|
return t('player.playBar.playMode.sequence');
|
||
|
|
case 1:
|
||
|
|
return t('player.playBar.playMode.loop');
|
||
|
|
case 2:
|
||
|
|
return t('player.playBar.playMode.random');
|
||
|
|
case 3:
|
||
|
|
return t('player.playBar.intelligenceMode.title');
|
||
|
|
default:
|
||
|
|
return t('player.playBar.playMode.sequence');
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
// 切换播放模式
|
||
|
|
const togglePlayMode = () => {
|
||
|
|
playerStore.togglePlayMode();
|
||
|
|
};
|
||
|
|
|
||
|
|
return {
|
||
|
|
playMode,
|
||
|
|
playModeIcon,
|
||
|
|
playModeText,
|
||
|
|
togglePlayMode
|
||
|
|
};
|
||
|
|
}
|