Merge branch 'dev'

pull/389/head v1.4.1
lyswhut 2020-11-25 08:27:53 +08:00
commit 4c0cbe3253
8 changed files with 55 additions and 41 deletions

View File

@ -6,6 +6,15 @@ Project versioning adheres to [Semantic Versioning](http://semver.org/).
Commit convention is based on [Conventional Commits](http://conventionalcommits.org). Commit convention is based on [Conventional Commits](http://conventionalcommits.org).
Change log format is based on [Keep a Changelog](http://keepachangelog.com/). Change log format is based on [Keep a Changelog](http://keepachangelog.com/).
## [1.4.1](https://github.com/lyswhut/lx-music-desktop/compare/v1.4.0...v1.4.1) - 2020-11-25
### 修复
- 修复有歌词翻译与无歌词的音乐间切换会导致歌词翻译残留显示的问题
- 修复歌曲URL过期时等待刷新URL的自动切换歌曲时间间隔太短的问题
- 修复某些电脑上的某些歌曲没有声音的问题升级Electron9.3.4导致的现降级到9.3.3
## [1.4.0](https://github.com/lyswhut/lx-music-desktop/compare/v1.3.0...v1.4.0) - 2020-11-21 ## [1.4.0](https://github.com/lyswhut/lx-music-desktop/compare/v1.3.0...v1.4.0) - 2020-11-21
### 新增 ### 新增

12
FAQ.md
View File

@ -39,6 +39,12 @@
播放在线列表内的歌曲需要将它们都添加到我的列表才能播放,你可以全选列表内的歌曲然后添加到现有列表或者新创建的列表,然后去播放该列表内的歌曲。 播放在线列表内的歌曲需要将它们都添加到我的列表才能播放,你可以全选列表内的歌曲然后添加到现有列表或者新创建的列表,然后去播放该列表内的歌曲。
## 无法打开外部歌单
不支持垮源打开歌单,请**确认**你需要打开的歌单平台是否与软件标签所写的**歌单源**对应(不一样的话请通过右上角切换歌单源);<br>
对于分享出来的歌单若打开失败可尝试先在浏览器中打开后再从浏览器地址栏复制URL地址到软件打开<br>
或者如果你知道歌单 id 也可以直接输入歌单 id 打开。<br>
## Windows 7 下界面异常(界面显示不完整) ## Windows 7 下界面异常(界面显示不完整)
由于软件默认使用了透明窗口根据Electron官方文档的[说明](https://electronjs.org/docs/api/frameless-window#%E5%B1%80%E9%99%90%E6%80%A7) 由于软件默认使用了透明窗口根据Electron官方文档的[说明](https://electronjs.org/docs/api/frameless-window#%E5%B1%80%E9%99%90%E6%80%A7)
@ -70,12 +76,6 @@
- 清理安装路径下的残留文件 - 清理安装路径下的残留文件
- 清理注册表(建议用清理工具清理) - 清理注册表(建议用清理工具清理)
## 无法打开外部歌单
不支持垮源打开歌单,请**确认**你需要打开的歌单平台是否与软件标签所写的**歌单源**对应(不一样的话请通过右上角切换歌单源);<br>
对于分享出来的歌单若打开失败可尝试先在浏览器中打开后再从浏览器地址栏复制URL地址到软件打开<br>
或者如果你知道歌单 id 也可以直接输入歌单 id 打开。<br>
## 软件无法联网 ## 软件无法联网
软件的排行榜、歌单、搜索列表**都**无法加载: 软件的排行榜、歌单、搜索列表**都**无法加载:

22
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "lx-music-desktop", "name": "lx-music-desktop",
"version": "1.3.0", "version": "1.4.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -7097,9 +7097,9 @@
} }
}, },
"electron": { "electron": {
"version": "9.3.4", "version": "9.3.3",
"resolved": "https://registry.npm.taobao.org/electron/download/electron-9.3.4.tgz?cache=0&sync_timestamp=1604968518869&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron%2Fdownload%2Felectron-9.3.4.tgz", "resolved": "https://registry.npm.taobao.org/electron/download/electron-9.3.3.tgz?cache=0&sync_timestamp=1606195775548&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron%2Fdownload%2Felectron-9.3.3.tgz",
"integrity": "sha1-1i3Z+KvJPACYeHFN6eYNsDA2GgU=", "integrity": "sha1-maZhnV32j5dpel0dgu86imP83zY=",
"dev": true, "dev": true,
"requires": { "requires": {
"@electron/get": "^1.0.1", "@electron/get": "^1.0.1",
@ -7108,9 +7108,9 @@
}, },
"dependencies": { "dependencies": {
"@types/node": { "@types/node": {
"version": "12.19.4", "version": "12.19.6",
"resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-12.19.4.tgz?cache=0&sync_timestamp=1604951079891&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-12.19.4.tgz", "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-12.19.6.tgz?cache=0&sync_timestamp=1605819795096&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-12.19.6.tgz",
"integrity": "sha1-zfu2LibHQ17ZqrnJQTk8w1mOm0Y=", "integrity": "sha1-+/JJ+kZIfdjHOG14UjE2i5KjOlM=",
"dev": true "dev": true
} }
} }
@ -7648,7 +7648,7 @@
}, },
"eslint-config-standard": { "eslint-config-standard": {
"version": "14.1.1", "version": "14.1.1",
"resolved": "https://registry.npm.taobao.org/eslint-config-standard/download/eslint-config-standard-14.1.1.tgz?cache=0&sync_timestamp=1604090914442&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-config-standard%2Fdownload%2Feslint-config-standard-14.1.1.tgz", "resolved": "https://registry.npm.taobao.org/eslint-config-standard/download/eslint-config-standard-14.1.1.tgz?cache=0&sync_timestamp=1605664520005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-config-standard%2Fdownload%2Feslint-config-standard-14.1.1.tgz",
"integrity": "sha1-gwqOROeu995nRkl5rQa0BgJsVuo=", "integrity": "sha1-gwqOROeu995nRkl5rQa0BgJsVuo=",
"dev": true "dev": true
}, },
@ -8077,7 +8077,7 @@
}, },
"eslint-plugin-standard": { "eslint-plugin-standard": {
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npm.taobao.org/eslint-plugin-standard/download/eslint-plugin-standard-4.1.0.tgz?cache=0&sync_timestamp=1604979354814&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-standard%2Fdownload%2Feslint-plugin-standard-4.1.0.tgz", "resolved": "https://registry.npm.taobao.org/eslint-plugin-standard/download/eslint-plugin-standard-4.1.0.tgz?cache=0&sync_timestamp=1606091897901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-standard%2Fdownload%2Feslint-plugin-standard-4.1.0.tgz",
"integrity": "sha1-DDvzpn6FP4u7xYD7SUX78W9Bt8U=", "integrity": "sha1-DDvzpn6FP4u7xYD7SUX78W9Bt8U=",
"dev": true "dev": true
}, },
@ -8541,7 +8541,7 @@
"dependencies": { "dependencies": {
"debug": { "debug": {
"version": "2.6.9", "version": "2.6.9",
"resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1605791516034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
"integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -14631,7 +14631,7 @@
"dependencies": { "dependencies": {
"type-fest": { "type-fest": {
"version": "0.13.1", "version": "0.13.1",
"resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.13.1.tgz?cache=0&sync_timestamp=1602623859603&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.13.1.tgz", "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.13.1.tgz?cache=0&sync_timestamp=1605529535783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.13.1.tgz",
"integrity": "sha1-AXLLW86AsL1ULqNI21DH4hg02TQ=", "integrity": "sha1-AXLLW86AsL1ULqNI21DH4hg02TQ=",
"dev": true, "dev": true,
"optional": true "optional": true

View File

@ -1,6 +1,6 @@
{ {
"name": "lx-music-desktop", "name": "lx-music-desktop",
"version": "1.4.0", "version": "1.4.1",
"description": "一个免费的音乐下载助手", "description": "一个免费的音乐下载助手",
"main": "./dist/electron/main.js", "main": "./dist/electron/main.js",
"productName": "lx-music-desktop", "productName": "lx-music-desktop",
@ -176,7 +176,7 @@
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"css-loader": "^4.3.0", "css-loader": "^4.3.0",
"del": "^6.0.0", "del": "^6.0.0",
"electron": "^9.3.4", "electron": "^9.3.3",
"electron-builder": "^22.9.1", "electron-builder": "^22.9.1",
"electron-debug": "^3.1.0", "electron-debug": "^3.1.0",
"electron-devtools-installer": "^3.1.1", "electron-devtools-installer": "^3.1.1",

View File

@ -1,15 +1,6 @@
### 新增
- 托盘菜单新增显示、隐藏主界面选项为Linux、MAC版添加托盘菜单
- 新增播放进度信息保存
### 优化
- 移除kg源的歌词文件开头的空白字符串
### 修复 ### 修复
- 修复专辑图片无法嵌入的问题 - 修复有歌词翻译与无歌词的音乐间切换会导致歌词翻译残留显示的问题
- 修复播放状态栏切换“上一首”歌曲按钮提示错误的问题 - 修复歌曲URL过期时等待刷新URL的自动切换歌曲时间间隔太短的问题
- 修复移动单首歌曲时,如果目标列表存在该歌曲,会导致将源列表与目标列表里的目标歌曲移除 - 修复某些电脑上的某些歌曲没有声音的问题升级Electron9.3.4导致的现降级到9.3.3
- 修复kg源歌曲信息带有单引号等特殊字符被转义的问题

File diff suppressed because one or more lines are too long

View File

@ -279,7 +279,7 @@ export default {
rendererSend(NAMES.winLyric.close) rendererSend(NAMES.winLyric.close)
}, },
setLyric() { setLyric() {
window.lrc.setLyric((this.isShowLyricTransition && this.lyrics.tlyric ? this.lyrics.tlyric + '\n' : '') + this.lyrics.lyric) window.lrc.setLyric((this.isShowLyricTransition && this.lyrics.tlyric ? (this.lyrics.tlyric + '\n') : '') + (this.lyrics.lyric || ''))
}, },
}, },
} }

View File

@ -373,7 +373,8 @@ export default {
this.addDelayNextTimeout() this.addDelayNextTimeout()
}) })
audio.addEventListener('loadeddata', () => { audio.addEventListener('loadeddata', () => {
// console.log('loadeddata') console.log('loadeddata')
this.clearLoadingTimeout()
this.status = this.statusText = this.$t('core.player.loading') this.status = this.statusText = this.$t('core.player.loading')
this.maxPlayTime = audio.duration this.maxPlayTime = audio.duration
if (window.restorePlayInfo) { if (window.restorePlayInfo) {
@ -388,8 +389,8 @@ export default {
if (!this.targetSong.interval && this.listId != 'download') this.updateMusicInfo({ id: this.listId, index: this.playIndex, data: { interval: formatPlayTime2(this.maxPlayTime) } }) if (!this.targetSong.interval && this.listId != 'download') this.updateMusicInfo({ id: this.listId, index: this.playIndex, data: { interval: formatPlayTime2(this.maxPlayTime) } })
}) })
audio.addEventListener('loadstart', () => { audio.addEventListener('loadstart', () => {
// console.log('loadstart') console.log('loadstart')
this.startBuffering() this.startLoadingTimeout()
this.status = this.statusText = this.$t('core.player.loading') this.status = this.statusText = this.$t('core.player.loading')
}) })
audio.addEventListener('canplay', () => { audio.addEventListener('canplay', () => {
@ -399,9 +400,8 @@ export default {
this.mediaBuffer.playTime = 0 this.mediaBuffer.playTime = 0
audio.currentTime = playTime audio.currentTime = playTime
} }
if (this.mediaBuffer.timeout) { this.clearBufferTimeout()
this.clearBufferTimeout()
}
// if (this.musicInfo.lrc) window.lrc.play(audio.currentTime * 1000) // if (this.musicInfo.lrc) window.lrc.play(audio.currentTime * 1000)
this.status = this.statusText = '' this.status = this.statusText = ''
}) })
@ -412,6 +412,7 @@ export default {
// }) // })
audio.addEventListener('emptied', () => { audio.addEventListener('emptied', () => {
this.mediaBuffer.playTime = 0 this.mediaBuffer.playTime = 0
this.clearLoadingTimeout()
this.clearBufferTimeout() this.clearBufferTimeout()
// console.log(' or ') // console.log(' or ')
@ -713,6 +714,7 @@ export default {
this.status = this.musicInfo.name = this.musicInfo.singer = '' this.status = this.musicInfo.name = this.musicInfo.singer = ''
this.musicInfo.songmid = null this.musicInfo.songmid = null
this.musicInfo.lrc = null this.musicInfo.lrc = null
this.musicInfo.tlrc = null
this.musicInfo.url = null this.musicInfo.url = null
this.nowPlayTime = 0 this.nowPlayTime = 0
this.maxPlayTime = 0 this.maxPlayTime = 0
@ -795,8 +797,20 @@ export default {
// console.log(e) // console.log(e)
this.isActiveTransition = false this.isActiveTransition = false
}, },
startLoadingTimeout() {
// console.log('start load timeout')
this.loadingTimeout = setTimeout(() => {
this.handleNext()
}, 10000)
},
clearLoadingTimeout() {
if (!this.loadingTimeout) return
// console.log('clear load timeout')
clearTimeout(this.loadingTimeout)
this.loadingTimeout = null
},
startBuffering() { startBuffering() {
console.log('start t') console.error('start t')
if (this.mediaBuffer.timeout) return if (this.mediaBuffer.timeout) return
this.mediaBuffer.timeout = setTimeout(() => { this.mediaBuffer.timeout = setTimeout(() => {
this.mediaBuffer.timeout = null this.mediaBuffer.timeout = null
@ -891,7 +905,7 @@ export default {
}) })
}, },
setLyric() { setLyric() {
window.lrc.setLyric((this.setting.player.isShowLyricTransition && this.musicInfo.tlrc ? this.musicInfo.tlrc + '\n' : '') + this.musicInfo.lrc) window.lrc.setLyric((this.setting.player.isShowLyricTransition && this.musicInfo.tlrc ? (this.musicInfo.tlrc + '\n') : '') + (this.musicInfo.lrc || ''))
if (this.isPlay && (this.musicInfo.url || this.listId == 'download')) { if (this.isPlay && (this.musicInfo.url || this.listId == 'download')) {
window.lrc.play(audio.currentTime * 1000) window.lrc.play(audio.currentTime * 1000)
this.handleUpdateWinLyricInfo('play', audio.currentTime * 1000) this.handleUpdateWinLyricInfo('play', audio.currentTime * 1000)