MusicPlayer2 icon indicating copy to clipboard operation
MusicPlayer2 copied to clipboard

[Feature Request] 对 UNC 路径的媒体库文件夹,跳过读取音频文件信息

Open xiaopc opened this issue 1 year ago • 13 comments

在音频文件数量多时,耗时非常长,且更新媒体库期间不能播放

xiaopc avatar Aug 11 '22 03:08 xiaopc

按我的理解这样的描述 “不是UNC路径的歌曲的处理方式是没问题的,只是\\开头的路径每次打开时都像第一次添加一样” 是同样的,有不同请指出(可能是存在我没想到的问题)

目前MusicPlayer2仅对windows路径(盘符开头)有完善支持 这个问题以后大概会修,因为是底层问题修复可能要非常久

暂且建议将网络存储映射盘符(映射网络驱动器)使用(下图右边是正常可用的) 圖片

lrisora avatar Aug 11 '22 12:08 lrisora

按我的理解这样的描述 “不是UNC路径的歌曲的处理方式是没问题的,只是\\开头的路径每次打开时都像第一次添加一样” 是同样的,有不同请指出(可能是存在我没想到的问题)

目前MusicPlayer2仅对windows路径(盘符开头)有完善支持 这个问题以后大概会修,因为是底层问题修复可能要非常久

暂且建议将网络存储映射盘符(映射网络驱动器)使用(下图右边是正常可用的) 圖片

说到这个,不得不吐槽下,如果刷新数据库的时候,文件不存在了,就会从库里移除。 我这里很多歌都是放在移动硬盘上的,偶尔开MusicPlayer2忘记插上就会歌曲信息从库里移除导致统计不准(

lifegpc avatar Aug 11 '22 15:08 lifegpc

媒体库更新代码有硬伤正在改,会把这点加上, 播放列表载入时好像也有移除不存在文件的行为 ~不过我一直没用过更新媒体库这个功能,没什么感觉~

lrisora avatar Aug 11 '22 16:08 lrisora

媒体库更新代码有硬伤正在改,会把这点加上, 播放列表载入时好像也有移除不存在文件的行为 ~不过我一直没用过更新媒体库这个功能,没什么感觉~

对啊,就是打开播放列表的时候会刷新

lifegpc avatar Aug 11 '22 23:08 lifegpc

按我的理解这样的描述 “不是UNC路径的歌曲的处理方式是没问题的,只是\\开头的路径每次打开时都像第一次添加一样” 是同样的,有不同请指出(可能是存在我没想到的问题)

目前MusicPlayer2仅对windows路径(盘符开头)有完善支持 这个问题以后大概会修,因为是底层问题修复可能要非常久

暂且建议将网络存储映射盘符(映射网络驱动器)使用(下图右边是正常可用的) 圖片

映射为盘符也是一样的,主要是网速不足以更新所有音频的 metadata,只需要更新一下文件列表就够了

标题里提「UNC 路径」是想可以根据路径区分网络路径和本地路径,用 PathIsNetworkPath 好像也行

xiaopc avatar Aug 12 '22 02:08 xiaopc

靠UNC路径无法区分是否为本地文件,windows路径可以是远程文件,UNC路径也可以是本地文件 按照原定设计,歌曲的metadata应该是缓存在媒体库song_data.dat文件内的,之后只会更新新增文件 即使从网络存储加载缓慢,这个低速加载也只会进行最初的一次。 软件要求进入播放列表内的歌曲一定读取过元数据,不能是播放时读取的懒加载, 否则会影响到属性、格式转换等等功能的使用体验。 不过代码改过很多了 有些问题,想问一下, 现在用的软件版本, 这里说的“更新媒体库期间不能播放”出现条件, 是打开软件时还是点击更新媒体库按钮后,是文件夹模式还是播放列表模式 有没有选中“启动时自动更新媒体库” 这里的远程路径下有没有大量cue形式的歌曲

lrisora avatar Aug 12 '22 05:08 lrisora

从扫描时间看,好像是只要文件夹内有任何文件变化都会完整扫一次 版本是 v2.75 更新媒体库期间不能播放,除单文件模式以外都不能播放 远程路径有些 flac aac,cue 好像没有

xiaopc avatar Aug 12 '22 06:08 xiaopc

请按以下操作做一下,我有些不清楚的地方

  1. 打开你远程路径
  2. 全选->添加到新建播放列表 圖片
  3. 在媒体库->播放列表标签页播放这个播放列表(这个应该是瞬间完成) 圖片
  4. 在“测试播放列表”的“添加”菜单添加刚刚的远程路径,之后会弹出“文件已存在于播放列表中”提示 圖片

我的问题是“文件已存在于播放列表中”提示要多久才能弹出, 这是打开你远程路径耗时的理论下限, 第二次打开要更久的话说明程序还有待改进

lrisora avatar Aug 12 '22 07:08 lrisora

在媒体库->播放列表标签页播放这个播放列表(这个应该是瞬间完成)

播放这个列表后,就再次开始读取音频文件信息,期间播放列表面板被禁用

~~等读取完再试下第四步~~ 第四步弹出已存在是正常速度

再次测试就正常了,好像问题是「需要更新 2+ 次才能正常」

xiaopc avatar Aug 12 '22 08:08 xiaopc

说到这个,不得不吐槽下,如果刷新数据库的时候,文件不存在了,就会从库里移除。 我这里很多歌都是放在移动硬盘上的,偶尔开MusicPlayer2忘记插上就会歌曲信息从库里移除导致统计不准(

我已经在媒体库设置中增加了“更新媒体库时移除不存在的音频文件”选项,去掉这个勾选应该就能解决你的问题了。

zhongyang219 avatar Aug 14 '22 08:08 zhongyang219

稍等,先别改其他媒体库的问题,合并会爆炸(这次这个没问题)

lrisora avatar Aug 14 '22 08:08 lrisora

稍等,先别改其他媒体库的问题,合并会爆炸(这次这个没问题)

好的

zhongyang219 avatar Aug 14 '22 08:08 zhongyang219

diff 了一下 song_data.dat 发现(可能)问题所在了

媒体库目录设置的是 \\local-nas\Music,第一遍扫描存的 key 是 \\local-nas\Music\*.*

再次打开触发第二遍扫描的目录是 \\Local-nas\Music(L 是大写),这可能是 Windows 的问题

另外为什么不试试用 sqlite 存呢,自带有锁

xiaopc avatar Aug 15 '22 06:08 xiaopc