zhongyang219 / MusicPlayer2

这是一款可以播放常见音频格式的音频播放器。支持歌词显示、歌词卡拉OK样式显示、歌词在线下载、歌词编辑、歌曲标签识别、Win10小娜搜索显示歌词、频谱分析、音效设置、任务栏缩略图按钮、主题颜色等功能。 播放内核为BASS音频库(V2.4)。
GNU General Public License v3.0
4.74k stars 380 forks source link

歌曲 标签信息显示 (建议) #681

Open giceli opened 7 months ago

giceli commented 7 months ago

37264 既然已经可以显示‘高级标签信息’了,为什么有些歌曲无法显示作者,曲名时,不直接使用这些信息,而是需要自己按歌曲文件名的方式来操作?

lrisora commented 7 months ago

这里的问题是歌曲新增元数据后媒体库没有同步更新 出于效能考虑播放器缓存第一次打开歌曲时读取到的元数据(打开播放列表/文件夹时会读取所有列表曲目) 但是如果之后有修改应该能够在下次打开此播放列表时自动更新才对(可能有什么问题,重新打开软件试试)

在播放列表使用右键,选择“重新载入播放列表”能够解决 高级标签信息每次都是重新读取故不受影响

giceli commented 7 months ago

我试了一下,在其他平台没有什么问题,大概率可能是因为我听音乐 的这个文件是通过 webdav映射到本地磁盘的。而且在这种情况下,听歌听久了之后,还会出现音乐无法播放的情况。 感觉像是网络或者缓存有问题。 通过 重新载入播放列表 确实是可以解决,不过歌曲有点多。载入时间有些长。能不能加个功能,只是重新载入,添加或更新部分音乐,毕竟像这种信息不全的歌曲也只是个例,并不全都是这样。

lrisora commented 7 months ago

“启动时自动更新媒体库” 这个功能可以, 将歌曲目录添加到“媒体库目录”列表,程序会在打开后会确认媒体库目录下所有文件修改时间并更新变化的项目

另外因为网络文件io太慢,现在播放列表/文件夹打开时不会确认媒体库已有文件的修改时间是否变化 以免程序启动时好像卡死一样

流程是程序启动,加载当前的播放列表(不确认媒体库已有文件修改时间), 程序可以正常操作的同时启动“媒体库自动更新”,更新媒体库目录下文件的元数据(跳过修改时间没有变化的项目)

想要“媒体库自动更新”的结果应用到“当前的播放列表”需要在更新完成后重新打开当前的播放列表

webdav映射可能不是太稳定,MusicPlayer2没有针对网络文件的太多特殊设计,高延迟的网络io确实有点影响使用体验 “重新载入播放列表”不会跳过修改时间没有变化的项目,事实上仅仅只是一个一个确认修改时间在网络文件中也会花费大量时间 对此特殊设计的程序可以一次要求多个文件以利用webdav的特性弥补这一点,但使用webdav映射的磁盘的程序做不到这一点

我用的samba是正常的(虽然但是smb也只能用在低延迟的本地)

~我一直手动做这个,用一个临时的播放列表处理新歌曲,确保没问题再放进来~

EnvyNie commented 7 months ago

20240401183749 20240401184431 之前都是用Mp3tag批量改的,发现有部分歌曲标签显示不正常 在播放器修改标签前是有ID3v1 ID3v2.3,修改后只剩下ID3v2.3了,应该是之前ID3v1是空值的原因? “启动时自动更新媒体库”开启后还是无效

lrisora commented 7 months ago

“启动时自动更新媒体库”是个很被动的功能,程序每次启动后时执行且仅执行一次,之后要重开播放列表才算应用 并且需要搭配正确设置的“媒体库目录”设置才能正常工作 如果你已知修改范围的话对对应列表使用“重新载入播放列表”要更直接一些 也就是MusicPlayer2不会监视文件状态自动更新

我没有注意到截图中存在“标签显示不正常”,看起来第二张是正常reload之后的

修改后只剩下ID3v2.3了

这是Mp3tag的设置,在Tags(标签)->Mpeg下面 可以设置 “读取” “写入” “清除” 的标签种类

EnvyNie commented 7 months ago

奇怪,“启动时自动更新媒体库”我是一直开着的,软件开开关关过很多次也没更新,刚手动点刷新媒体库再重启软件就更新了 谢谢帮忙解决问题