优化临时播放逻辑
parent
bf310adc12
commit
9cc36e2a6a
|
@ -23,6 +23,7 @@ export const LIST_IDS = {
|
|||
LOVE: 'love',
|
||||
TEMP: 'temp',
|
||||
DOWNLOAD: 'download',
|
||||
PLAY_LATER: null,
|
||||
} as const
|
||||
|
||||
export const DATA_KEYS = {
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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] }])
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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([{
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
/**
|
||||
* 歌曲信息
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue