rebuild queue with new urls on net state change

This commit is contained in:
austinried
2021-08-17 10:58:11 +09:00
parent 88d0c6089e
commit 44617740fd
11 changed files with 124 additions and 21 deletions

View File

@@ -187,11 +187,12 @@ export const useSetQueue = () => {
const setCurrentTrackIdx = useStore(selectTrackPlayer.setCurrentTrackIdx)
const setQueue = useStore(selectTrackPlayer.setQueue)
const setShuffleOrder = useStore(selectTrackPlayer.setShuffleOrder)
const setQueueName = useStore(selectTrackPlayer.setName)
const setQueueName = useStore(selectTrackPlayer.setQueueName)
const getQueueShuffled = useCallback(() => !!useStore.getState().shuffleOrder, [])
const setQueueContextType = useStore(selectTrackPlayer.setQueueContextType)
const setQueueContextId = useStore(selectTrackPlayer.setQueueContextId)
const fetchCoverArtFilePath = useStore(selectCache.fetchCoverArtFilePath)
const buildStreamUri = useStore(selectTrackPlayer.buildStreamUri)
return async (
songs: Song[],
@@ -222,6 +223,14 @@ export const useSetQueue = () => {
let queue = songs.map(s => mapSongToTrack(s, coverArtPaths))
try {
for (const t of queue) {
t.url = buildStreamUri(t.id)
}
} catch {
return
}
if (shuffled) {
const { tracks, shuffleOrder } = shuffleTracks(queue, playTrack)
setShuffleOrder(shuffleOrder)