修复某些情况下歌曲加载时间过长时不会自动跳到下一首的问题

pull/1784/head
lyswhut 2024-02-04 18:05:08 +08:00
parent 959e11b77c
commit 627c50910c
5 changed files with 10 additions and 66 deletions

View File

@ -1,54 +1,3 @@
提交祝大家新年快乐!
更新前需要注意:
由于自定义源的调用方式变更可能会导致某些第三方源停止工作如果出现这种情况你需要将LX回退到 v2.5.0
### 新增
- 若自定义源初始化失败,将会出现弹窗提示初始化失败的详情
- 添加win7_x64架构的安装版安装包构建
- 新增播放歌曲时阻止电脑休眠,默认启用,可到设置-播放设置关闭(#1563
### 优化
- 更新zh-tw翻译
- 自定义源列显示源版本号、作者名字
- 优化列表全选机制,修复列表未获得焦点时仍然可以全选的问题
- 优化搜索框交互逻辑,防止鼠标操作时意外搜索候选列表的内容
- 添加对wy源某些歌曲有问题的歌词进行修复
- 改进本地音乐在线信息的匹配机制
- 优化任务下载状态显示,现在下载时若数据传输完成但数据写入未完成时会显示相应的状态
- 添加对下载歌曲时封面图片大小的控制处理(#1609
- 添加创建同名列表时的二次确认(#1621
### 修复
- 修复备份文件无法导入json格式的问题
- Windows、MacOS平台下的字体列表取消使用原生方式获取以修复某些字体应用后无效的问题#1596
- 修复亮暗主题自动切换功能无效的问题(#1697
- 修复 MacOS 平台在 Finder 打开文件或目录时应用卡死的问题(#1684
- 修复下载模块在数据写入速度较慢的情况下出现任务及文件异常的问题
- 修复临时列表变更会意外触发同步的问题
- 修复最小化后再隐藏窗口时,托盘菜单的显示主界面功能异常的问题
### 变更
- 播放歌曲时默认会阻止系统进入休眠状态,若你不行软件阻止系统休眠,可以到设置-播放设置取消勾选“播放歌曲时阻止电脑休眠”设置
### 其他
- 移除所有内置源由于收到腾讯投诉要求停止提供软件内置的连接到他们平台的在线播放及下载服务所以从即日2023年10月18日起LX本身不再提供上述服务
- 更新 electron 到 v25.9.8
- 更新许可协议的排版,使其看起来更加清晰明了,更新数据来源原理说明
### 自定义源的不兼容变更与新增内容(源开发者需要看)
自定义源的调用方式已改变:
- 为了与移动端的调用方式统一,不再推荐使用 `window.lx` 对象(移动端无`window`对象),改用 `globalThis.lx`
- `inited` 事件不再需要传递 `status` 属性,脚本运行过程中,在成功调用 `inited` 事件之前的任何首次未捕获的错误都将视为初始化失败,所以现在若想人为让脚本初始化失败,直接抛出一个错误即可
- 新增 `globalThis.lx.env` 属性,桌面端环境固定为 `desktop`,移动端环境固定为 `mobile`
- 新增 `globalThis.lx.currentScriptInfo` 对象,可以从这里获取解析后的脚本头部注释信息及脚本原始内容,具体可用属性看文档说明
- `globalThis.lx.version` 属性更新到 `2.0.0`
- 自定义源不再使用`script`标签的形式执行,若要获取脚本原始代码字符串需从 `globalThis.lx.currentScriptInfo.rawScript` 属性获取
- 自定义源新增支持`local`源的`musicUrl`、`pic`、`lyric`的获取操作详情看自定义源文档说明
- 修复某些情况下歌曲加载时间过长时不会自动跳到下一首的问题

View File

@ -26,8 +26,8 @@ export default () => {
label: '窗口',
role: 'window',
submenu: [
{ label: '最小化', role: 'minimize', accelerator: 'Command+W' },
{ label: '关闭', role: 'close' },
{ label: '最小化', role: 'minimize' },
{ label: '关闭', role: 'close', accelerator: 'Command+W' },
],
},
{

View File

@ -129,7 +129,7 @@ export default () => {
// }
window.app_event.on('playerLoadeddata', updatePositionState)
window.app_event.on('playerCanplay', updatePositionState)
window.app_event.on('playerPlaying', updatePositionState)
window.app_event.on('play', handlePlay)
window.app_event.on('pause', handlePause)
window.app_event.on('stop', handleStop)
@ -141,7 +141,7 @@ export default () => {
onBeforeUnmount(() => {
window.app_event.off('playerLoadeddata', updatePositionState)
window.app_event.off('playerCanplay', updatePositionState)
window.app_event.off('playerPlaying', updatePositionState)
window.app_event.off('play', handlePlay)
window.app_event.off('pause', handlePause)
window.app_event.off('stop', handleStop)

View File

@ -67,11 +67,8 @@ export default () => {
setAllStatus(t('player__loading'))
}
const handleCanplay = () => {
setAllStatus('')
}
const handlePlaying = () => {
setAllStatus('')
clearLoadingTimeout()
}
@ -123,7 +120,6 @@ export default () => {
window.app_event.on('playerLoadstart', handleLoadstart)
window.app_event.on('playerLoadeddata', handleLoadeddata)
window.app_event.on('playerCanplay', handleCanplay)
window.app_event.on('playerPlaying', handlePlaying)
window.app_event.on('playerWaiting', handleWating)
window.app_event.on('playerEmptied', handleEmpied)
@ -133,7 +129,6 @@ export default () => {
onBeforeUnmount(() => {
window.app_event.off('playerLoadstart', handleLoadstart)
window.app_event.off('playerLoadeddata', handleLoadeddata)
window.app_event.off('playerCanplay', handleCanplay)
window.app_event.off('playerPlaying', handlePlaying)
window.app_event.off('playerWaiting', handleWating)
window.app_event.off('playerEmptied', handleEmpied)

View File

@ -121,8 +121,8 @@ export default () => {
}
}
const handleCanplay = () => {
console.log('handleCanplay', mediaBuffer.playTime, restorePlayTime)
const handlePlaying = () => {
console.log('handlePlaying', mediaBuffer.playTime, restorePlayTime)
clearBufferTimeout()
if (mediaBuffer.playTime) {
let playTime = mediaBuffer.playTime
@ -190,7 +190,7 @@ export default () => {
window.app_event.on('setProgress', setProgress)
// window.app_event.on(eventPlayerNames.restorePlay, handleRestorePlay)
window.app_event.on('playerLoadeddata', handleLoadeddata)
window.app_event.on('playerCanplay', handleCanplay)
window.app_event.on('playerPlaying', handlePlaying)
window.app_event.on('playerWaiting', handleWating)
window.app_event.on('playerEmptied', handleEmpied)
window.app_event.on('musicToggled', handleSetPlayInfo)
@ -220,7 +220,7 @@ export default () => {
window.app_event.off('setProgress', setProgress)
// window.app_event.off(eventPlayerNames.restorePlay, handleRestorePlay)
window.app_event.off('playerLoadeddata', handleLoadeddata)
window.app_event.off('playerCanplay', handleCanplay)
window.app_event.off('playerPlaying', handlePlaying)
window.app_event.off('playerWaiting', handleWating)
window.app_event.off('playerEmptied', handleEmpied)
window.app_event.off('musicToggled', handleSetPlayInfo)