From 1371bbe6fb58f48ed0d0efbb1bbb666cbce7dc43 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Mon, 3 Jan 2022 16:36:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BA=E5=8F=AF=E8=A7=86=E5=8C=96=E9=9F=B3?= =?UTF-8?q?=E9=A2=91=E7=9A=84=E9=A2=91=E8=B0=B1=E6=95=B4=E4=BD=93=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=A2=91=E8=B0=B1=E5=9D=87=E5=80=BC=E5=8A=A0=E6=88=90?= =?UTF-8?q?=EF=BC=8C=E4=BD=BF=E9=A2=91=E8=B0=B1=E6=98=BE=E7=A4=BA=E6=9B=B4?= =?UTF-8?q?=E6=9C=89=E8=8A=82=E5=A5=8F=E6=84=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 39 +------------------ .../components/common/AudioVisualizer.vue | 22 ++++++++++- 2 files changed, 21 insertions(+), 40 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index 4d9618e0..ec7b8c6f 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,40 +1,3 @@ -这算是一个大版本,对主窗口部分的代码逻辑做了较大改动,但由于界面的改动不大,所以没有更新大版本号。 -虽然经过一个月的测试与问题修复,但可能仍然存在未发现的问题,若你发现某些界面异常、某些行为与旧版本存在差异等问题,欢迎反馈! -另外祝大家元旦快乐~! - -### 新增 - -- 播放详情页新增音量控制条 -- 播放详情页新增桌面歌词切换按钮 -- 新增将我的列表保存为TXT、CSV格式,可以去设置-备份与恢复中使用(注意:此类格式的备份目前不支持恢复到LX Music中) -- 新增根据歌曲名、歌手名等字段对列表自动排序的功能,可以在我的列表右击列表名弹出的菜单中使用 -- 新增将播放与下载的歌词转换为繁体中文选项,默认关闭,可在设置-播放设置中开启 -- 现在已允许进入临时播放列表,即:使用歌单详情页、排行榜名称右键菜单的“播放”按钮播放歌曲时,可右击播放封面进入此临时列表 -- 播放详情页新增音频可视化功能(实验性) -- 我的列表新增拖动调整位置功能,按住Ctrl键(Mac上对应Command键)的时候将进入“拖动模式”,此时可以拖动列表的位置来调整顺序 - ### 优化 -- 优化列表性能,软件整体性能 -- 调整Mac平台下的图标大小 -- 同步功能添加对列表顺序调整的控制,确保手动调整位置后的列表与不同的电脑同步时,列表位置不会被还原 -- 优化歌单详情、排行榜名右键的播放按钮的播放机制,现在不用等待整个列表(多页时)加载完成才能播放了 -- 为播放详情页、桌面歌词添加延迟滚动,播放详情页略微减小已激活歌词的缩放大小及桌面歌词翻译大小 -- 修改右边控制按钮为windows风格 -- 更新了新年皮肤的背景与配色,欢迎体验~ - -### 修复 - -- 修复kw源某些歌曲的歌词提取异常的问题 - -### 变更 - -- 现在使用繁体中文语言时将不再自动转换歌词,转换行为将由上面新增的转换开关控制 - -### 移除 - -- 移除我的列表右键菜单的“上移、下移列表”功能,调整改用新增的拖动功能去调整位置 - -### 其他 - -- 升级vue到 3.x +- 为可视化音频的频谱整体添加频谱均值加成,使频谱显示更有节奏感 diff --git a/src/renderer/components/common/AudioVisualizer.vue b/src/renderer/components/common/AudioVisualizer.vue index afacdfb7..07aaadcb 100644 --- a/src/renderer/components/common/AudioVisualizer.vue +++ b/src/renderer/components/common/AudioVisualizer.vue @@ -42,6 +42,11 @@ export default { let isPlaying = false let animationFrameId + let num + let mult + const maxNum = 255 + let frequencyAvg = 0 + const theme = useRefGetter('theme') // const setting = useRefGetter('setting') let themeColor = themes[theme.value || 'green'] @@ -49,7 +54,7 @@ export default { themeColor = themes[theme || 'green'] }) - // https://codepen.io/nfj525/pen/rVBaab + // https://developer.mozilla.org/zh-CN/docs/Web/API/AnalyserNode/smoothingTimeConstant const renderFrame = () => { animationFrameId = null if (isPlaying) animationFrameId = window.requestAnimationFrame(renderFrame) @@ -60,6 +65,19 @@ export default { ctx.clearRect(0, 0, WIDTH, HEIGHT) // ctx.fillRect(0, 0, WIDTH, HEIGHT) + ctx.fillStyle = themeColor + + for (let i = 0; i < bufferLength; i++) { + mult = Math.floor(i / maxNum) + num = mult % 2 === 0 ? (i - maxNum * mult) : (maxNum - (i - maxNum * mult)) + let spectrum = num > 36 ? 0 : dataArray[num + 20] + frequencyAvg += spectrum * 1.2 + } + frequencyAvg /= bufferLength + frequencyAvg *= 1.7 + + frequencyAvg = frequencyAvg / maxNum + // ctx.scale(1, 1 + frequencyAvg) for (let i = 0; i < bufferLength; i++) { barHeight = dataArray[i] @@ -69,7 +87,7 @@ export default { // let b = 50 // ctx.fillStyle = 'rgb(' + r + ',' + g + ',' + b + ')' - ctx.fillStyle = themeColor + barHeight = barHeight * frequencyAvg + barHeight * 0.6 ctx.fillRect(x, HEIGHT - barHeight, barWidth, barHeight) x += barWidth