MusicPlayer2
MusicPlayer2 copied to clipboard
[Feature Request] 对 UNC 路径的媒体库文件夹,跳过读取音频文件信息
在音频文件数量多时,耗时非常长,且更新媒体库期间不能播放
按我的理解这样的描述
“不是UNC路径的歌曲的处理方式是没问题的,只是\\
开头的路径每次打开时都像第一次添加一样”
是同样的,有不同请指出(可能是存在我没想到的问题)
目前MusicPlayer2仅对windows路径(盘符开头)有完善支持 这个问题以后大概会修,因为是底层问题修复可能要非常久
暂且建议将网络存储映射盘符(映射网络驱动器)使用(下图右边是正常可用的)
按我的理解这样的描述 “不是UNC路径的歌曲的处理方式是没问题的,只是
\\
开头的路径每次打开时都像第一次添加一样” 是同样的,有不同请指出(可能是存在我没想到的问题)目前MusicPlayer2仅对windows路径(盘符开头)有完善支持 这个问题以后大概会修,因为是底层问题修复可能要非常久
暂且建议将网络存储映射盘符(映射网络驱动器)使用(下图右边是正常可用的)
说到这个,不得不吐槽下,如果刷新数据库的时候,文件不存在了,就会从库里移除。 我这里很多歌都是放在移动硬盘上的,偶尔开MusicPlayer2忘记插上就会歌曲信息从库里移除导致统计不准(
媒体库更新代码有硬伤正在改,会把这点加上, 播放列表载入时好像也有移除不存在文件的行为 ~不过我一直没用过更新媒体库这个功能,没什么感觉~
媒体库更新代码有硬伤正在改,会把这点加上, 播放列表载入时好像也有移除不存在文件的行为 ~不过我一直没用过更新媒体库这个功能,没什么感觉~
对啊,就是打开播放列表的时候会刷新
按我的理解这样的描述 “不是UNC路径的歌曲的处理方式是没问题的,只是
\\
开头的路径每次打开时都像第一次添加一样” 是同样的,有不同请指出(可能是存在我没想到的问题)目前MusicPlayer2仅对windows路径(盘符开头)有完善支持 这个问题以后大概会修,因为是底层问题修复可能要非常久
暂且建议将网络存储映射盘符(映射网络驱动器)使用(下图右边是正常可用的)
映射为盘符也是一样的,主要是网速不足以更新所有音频的 metadata,只需要更新一下文件列表就够了
标题里提「UNC 路径」是想可以根据路径区分网络路径和本地路径,用 PathIsNetworkPath
好像也行
靠UNC路径无法区分是否为本地文件,windows路径可以是远程文件,UNC路径也可以是本地文件 按照原定设计,歌曲的metadata应该是缓存在媒体库song_data.dat文件内的,之后只会更新新增文件 即使从网络存储加载缓慢,这个低速加载也只会进行最初的一次。 软件要求进入播放列表内的歌曲一定读取过元数据,不能是播放时读取的懒加载, 否则会影响到属性、格式转换等等功能的使用体验。 不过代码改过很多了 有些问题,想问一下, 现在用的软件版本, 这里说的“更新媒体库期间不能播放”出现条件, 是打开软件时还是点击更新媒体库按钮后,是文件夹模式还是播放列表模式 有没有选中“启动时自动更新媒体库” 这里的远程路径下有没有大量cue形式的歌曲
从扫描时间看,好像是只要文件夹内有任何文件变化都会完整扫一次 版本是 v2.75 更新媒体库期间不能播放,除单文件模式以外都不能播放 远程路径有些 flac aac,cue 好像没有
请按以下操作做一下,我有些不清楚的地方
- 打开你远程路径
- 全选->添加到新建播放列表
- 在媒体库->播放列表标签页播放这个播放列表(这个应该是瞬间完成)
- 在“测试播放列表”的“添加”菜单添加刚刚的远程路径,之后会弹出“文件已存在于播放列表中”提示
我的问题是“文件已存在于播放列表中”提示要多久才能弹出, 这是打开你远程路径耗时的理论下限, 第二次打开要更久的话说明程序还有待改进
在媒体库->播放列表标签页播放这个播放列表(这个应该是瞬间完成)
播放这个列表后,就再次开始读取音频文件信息,期间播放列表面板被禁用
~~等读取完再试下第四步~~ 第四步弹出已存在是正常速度
再次测试就正常了,好像问题是「需要更新 2+ 次才能正常」
说到这个,不得不吐槽下,如果刷新数据库的时候,文件不存在了,就会从库里移除。 我这里很多歌都是放在移动硬盘上的,偶尔开MusicPlayer2忘记插上就会歌曲信息从库里移除导致统计不准(
我已经在媒体库设置中增加了“更新媒体库时移除不存在的音频文件”选项,去掉这个勾选应该就能解决你的问题了。
稍等,先别改其他媒体库的问题,合并会爆炸(这次这个没问题)
稍等,先别改其他媒体库的问题,合并会爆炸(这次这个没问题)
好的
diff 了一下 song_data.dat
发现(可能)问题所在了
媒体库目录设置的是 \\local-nas\Music
,第一遍扫描存的 key 是 \\local-nas\Music\*.*
再次打开触发第二遍扫描的目录是 \\Local-nas\Music
(L 是大写),这可能是 Windows 的问题
另外为什么不试试用 sqlite 存呢,自带有锁