支持启动软件时恢复播放下载列表里的歌曲

pull/733/head
lyswhut 2021-11-06 16:15:29 +08:00
parent 47ee572640
commit 81bd8fbb74
4 changed files with 45 additions and 15 deletions

View File

@ -2,6 +2,7 @@
- 优化我的列表、下载列表等列表的滚动流畅度 - 优化我的列表、下载列表等列表的滚动流畅度
- 优化下载功能的批量添加、删除、暂停任务时的流畅度,现在进行这些操作应该不会再觉得卡顿了 - 优化下载功能的批量添加、删除、暂停任务时的流畅度,现在进行这些操作应该不会再觉得卡顿了
- 支持启动软件时恢复播放下载列表里的歌曲
### 修复 ### 修复

View File

@ -404,10 +404,17 @@ export default {
if (!info) return if (!info) return
if (info.index < 0) return if (info.index < 0) return
if (info.listId) { if (info.listId) {
const list = window.allList[info.listId] if (info.listId == 'download') {
// console.log(list) const list = this.downloadList
if (!list || !list.list[info.index]) return // console.log(list)
info.list = list.list if (!list || !list[info.index]) return
info.list = list
} else {
const list = window.allList[info.listId]
// console.log(list)
if (!list || !list.list[info.index]) return
info.list = list.list
}
} }
if (!info.list || !info.list[info.index]) return if (!info.list || !info.list[info.index]) return
window.restorePlayInfo = info window.restorePlayInfo = info

View File

@ -64,7 +64,7 @@ div(:class="$style.player")
//- transition(enter-active-class="animated lightSpeedIn" //- transition(enter-active-class="animated lightSpeedIn"
transition(enter-active-class="animated lightSpeedIn" transition(enter-active-class="animated lightSpeedIn"
leave-active-class="animated slideOutDown") leave-active-class="animated slideOutDown")
core-player-detail(v-show="isShowPlayerDetail" :visible.sync="isShowPlayerDetail" :musicInfo="currentMusicInfo" core-player-detail(v-if="isShowPlayerDetail" :visible.sync="isShowPlayerDetail" :musicInfo="currentMusicInfo"
:lyric="lyric" :list="list" :listId="listId" :lyric="lyric" :list="list" :listId="listId"
:playInfo="{ nowPlayTimeStr, maxPlayTimeStr, progress, nowPlayTime, status }" :playInfo="{ nowPlayTimeStr, maxPlayTimeStr, progress, nowPlayTime, status }"
:isPlay="isPlay" @action="handlePlayDetailAction" :isPlay="isPlay" @action="handlePlayDetailAction"
@ -505,8 +505,6 @@ export default {
this.musicInfo.album = targetSong.albumName this.musicInfo.album = targetSong.albumName
audio.src = filePath audio.src = filePath
// console.log(filePath) // console.log(filePath)
this.setImg(targetSong)
this.setLrc(targetSong)
} else { } else {
// if (!this.assertApiSupport(targetSong.source)) return this.playNext() // if (!this.assertApiSupport(targetSong.source)) return this.playNext()
this.currentMusicInfo = targetSong this.currentMusicInfo = targetSong
@ -515,9 +513,9 @@ export default {
this.musicInfo.name = targetSong.name this.musicInfo.name = targetSong.name
this.musicInfo.album = targetSong.albumName this.musicInfo.album = targetSong.albumName
this.setUrl(targetSong) this.setUrl(targetSong)
this.setImg(targetSong)
this.setLrc(targetSong)
} }
this.setImg(targetSong)
this.setLrc(targetSong)
this.handleUpdateWinLyricInfo('music_info', { this.handleUpdateWinLyricInfo('music_info', {
songmid: this.musicInfo.songmid, songmid: this.musicInfo.songmid,
singer: this.musicInfo.singer, singer: this.musicInfo.singer,
@ -595,11 +593,25 @@ export default {
window.getComputedStyle(this.$refs.dom_progress, null).width, window.getComputedStyle(this.$refs.dom_progress, null).width,
) )
}, },
togglePlay() { async togglePlay() {
if (!audio.src) { if (!audio.src) {
if (this.restorePlayTime != null) { if (this.restorePlayTime != null) {
// if (!this.assertApiSupport(this.targetSong.source)) return this.playNext() if (this.listId == 'download') {
this.setUrl(this.targetSong) const filePath = path.join(this.setting.download.savePath, this.targetSong.fileName)
// console.log(filePath)
if (!await checkPath(filePath) || !this.targetSong.isComplate || /\.ape$/.test(filePath)) {
if (this.list.length == 1) {
this.handleRemoveMusic()
} else {
this.playNext()
}
return
}
audio.src = filePath
} else {
// if (!this.assertApiSupport(this.targetSong.source)) return this.playNext()
this.setUrl(this.targetSong)
}
} }
return return
} }
@ -919,8 +931,18 @@ export default {
if (!this.musicInfo.songmid) return if (!this.musicInfo.songmid) return
this.isShowAddMusicTo = true this.isShowAddMusicTo = true
}, },
handleRestorePlay(restorePlayInfo) { async handleRestorePlay(restorePlayInfo) {
let musicInfo = this.list[restorePlayInfo.index] let musicInfo
if (this.listId == 'download') {
this.currentMusicInfo = musicInfo = window.downloadListFullMap.get(this.list[restorePlayInfo.index].key).musicInfo
// console.log(filePath)
} else {
// if (!this.assertApiSupport(targetSong.source)) return this.playNext()
musicInfo = this.list[restorePlayInfo.index]
this.currentMusicInfo = musicInfo
}
this.musicInfo.songmid = musicInfo.songmid this.musicInfo.songmid = musicInfo.songmid
this.musicInfo.singer = musicInfo.singer this.musicInfo.singer = musicInfo.singer
this.musicInfo.name = musicInfo.name this.musicInfo.name = musicInfo.name

View File

@ -195,7 +195,7 @@ const getters = {
// // musicInfo: state.playMusicInfo.musicInfo, // // musicInfo: state.playMusicInfo.musicInfo,
// }) // })
console.log(state.playMusicInfo) // console.log(state.playMusicInfo)
return { return {
listId, listId,
playIndex, playIndex,