优化临时播放逻辑

pull/1155/head
lyswhut 2023-01-11 09:28:31 +08:00
parent bf310adc12
commit 9cc36e2a6a
11 changed files with 20 additions and 14 deletions

View File

@ -23,6 +23,7 @@ export const LIST_IDS = {
LOVE: 'love',
TEMP: 'temp',
DOWNLOAD: 'download',
PLAY_LATER: null,
} as const
export const DATA_KEYS = {

View File

@ -65,6 +65,7 @@ import {
} from '@renderer/store/player/action'
import { appSetting } from '@renderer/store/setting'
import { togglePlay, playNext, playPrev } from '@renderer/core/player'
import { LIST_IDS } from '@common/constants'
export default {
name: 'CorePlayBar',
@ -98,7 +99,7 @@ export default {
const handleToMusicLocation = () => {
const listId = playMusicInfo.listId
if (!listId || listId == '__temp__' || listId == 'download' || !playMusicInfo.musicInfo) return
if (!listId || listId == LIST_IDS.DOWNLOAD || !playMusicInfo.musicInfo) return
if (playInfo.playIndex == -1) return
router.push({
path: '/list',

View File

@ -65,6 +65,7 @@ import {
} from '@renderer/store/player/action'
import { appSetting } from '@renderer/store/setting'
import { togglePlay, playNext, playPrev } from '@renderer/core/player'
import { LIST_IDS } from '@common/constants'
export default {
name: 'CorePlayBar',
@ -98,7 +99,7 @@ export default {
const handleToMusicLocation = () => {
const listId = playMusicInfo.listId
if (!listId || listId == '__temp__' || listId == 'download' || !playMusicInfo.musicInfo) return
if (!listId || listId == LIST_IDS.DOWNLOAD || !playMusicInfo.musicInfo) return
if (playInfo.playIndex == -1) return
router.push({
path: '/list',

View File

@ -67,6 +67,7 @@ import {
} from '@renderer/store/player/action'
import { appSetting } from '@renderer/store/setting'
import { togglePlay, playNext, playPrev } from '@renderer/core/player'
import { LIST_IDS } from '@common/constants'
export default {
name: 'CorePlayBar',
@ -100,7 +101,7 @@ export default {
const handleToMusicLocation = () => {
const listId = playMusicInfo.listId
if (!listId || listId == '__temp__' || listId == 'download' || !playMusicInfo.musicInfo) return
if (!listId || listId == LIST_IDS.DOWNLOAD || !playMusicInfo.musicInfo) return
if (playInfo.playIndex == -1) return
router.push({
path: '/list',

View File

@ -5,6 +5,7 @@ import { addTempPlayList } from '@renderer/store/player/action'
import { appSetting } from '@renderer/store/setting'
import { Ref } from '@common/utils/vueTools'
import { playList } from '@renderer/core/player'
import { LIST_IDS } from '@common/constants'
export default ({ selectedList, props, removeAllSelect, emit }: {
selectedList: Ref<LX.Music.MusicInfoOnline[]>
@ -34,10 +35,10 @@ export default ({ selectedList, props, removeAllSelect, emit }: {
const handlePlayMusicLater = (index: number, single: boolean) => {
if (selectedList.value.length && !single) {
addTempPlayList(selectedList.value.map(s => ({ listId: '__temp__', musicInfo: s })))
addTempPlayList(selectedList.value.map(s => ({ listId: LIST_IDS.PLAY_LATER, musicInfo: s })))
removeAllSelect()
} else {
addTempPlayList([{ listId: '__temp__', musicInfo: props.list[index] }])
addTempPlayList([{ listId: LIST_IDS.PLAY_LATER, musicInfo: props.list[index] }])
}
}

View File

@ -111,7 +111,7 @@ const handleRestorePlay = async(restorePlayInfo: LX.Player.SavedPlayInfo) => {
})
void getPicPath({ musicInfo, listId: playMusicInfo.isTempPlay ? null : playMusicInfo.listId }).then((url: string) => {
void getPicPath({ musicInfo, listId: playMusicInfo.listId }).then((url: string) => {
if (musicInfo.id != playMusicInfo.musicInfo?.id) return
setMusicInfo({ pic: url })
window.app_event.picUpdated()
@ -158,11 +158,11 @@ const handlePlay = () => {
if (!musicInfo) return
if (appSetting['player.togglePlayMethod'] == 'random' && !playMusicInfo.isTempPlay) addPlayedList({ ...(playMusicInfo as LX.Player.PlayMusicInfo) })
if (appSetting['player.togglePlayMethod'] == 'random' && playMusicInfo.listId) addPlayedList({ ...(playMusicInfo as LX.Player.PlayMusicInfo) })
setMusicUrl(musicInfo)
void getPicPath({ musicInfo, listId: playMusicInfo.isTempPlay ? null : playMusicInfo.listId }).then((url: string) => {
void getPicPath({ musicInfo, listId: playMusicInfo.listId }).then((url: string) => {
if (musicInfo.id != playMusicInfo.musicInfo?.id) return
setMusicInfo({ pic: url })
window.app_event.picUpdated()

View File

@ -9,6 +9,7 @@ import { dataVerify, qualityFilter, sources } from './utils'
import { focusWindow } from '@renderer/utils/ipc'
import { playNext } from '@renderer/core/player/action'
import { toNewMusicInfo } from '@common/utils/tools'
import { LIST_IDS } from '@common/constants'
const useSearchMusic = () => {
const router = useRouter()
@ -153,7 +154,7 @@ const usePlayMusic = () => {
musicInfo = toNewMusicInfo(musicInfo)
markRaw(musicInfo)
const isPlaying = !!playMusicInfo.musicInfo
addTempPlayList([{ listId: '__temp__', musicInfo, isTop: true }])
addTempPlayList([{ listId: LIST_IDS.PLAY_LATER, musicInfo, isTop: true }])
if (isPlaying) playNext()
}
}

View File

@ -107,7 +107,7 @@ export default () => {
setMaxplayTime(getDuration())
if (playMusicInfo.musicInfo && 'source' in playMusicInfo.musicInfo && !playMusicInfo.musicInfo.interval) {
console.log(formatPlayTime2(playProgress.maxPlayTime))
// console.log(formatPlayTime2(playProgress.maxPlayTime))
if (playMusicInfo.listId) {
void updateListMusics([{

View File

@ -9,7 +9,7 @@ const changedListIds = new Set<string | null>()
export default () => {
const throttleListChange = throttle(() => {
const isSkip = !changedListIds.has(playInfo.playerListId) && !changedListIds.has(playMusicInfo.listId)
const isSkip = playMusicInfo.listId && !changedListIds.has(playInfo.playerListId) && !changedListIds.has(playMusicInfo.listId)
changedListIds.clear()
if (isSkip) return

View File

@ -224,7 +224,7 @@ export const clearPlayedList = () => {
* @param list
*/
export const addTempPlayList = (list: LX.Player.TempPlayListItem[]) => {
const topList: Array<{ listId: string, musicInfo: LX.Music.MusicInfo | LX.Download.ListItem }> = []
const topList: Array<Omit<LX.Player.TempPlayListItem, 'top'>> = []
const bottomList = list.filter(({ isTop, ...musicInfo }) => {
if (isTop) {
topList.push(musicInfo)

View File

@ -9,7 +9,7 @@ declare namespace LX {
/**
* id
*/
listId: string
listId: string | null
/**
*
*/
@ -35,7 +35,7 @@ declare namespace LX {
/**
* id
*/
listId: string
listId: string | null
/**
*
*/