Ferry-200 / coriander_player

Windows端本地音乐播放器,使用Material You配色。Dart (Flutter) + Rust (lofty, windows-rs) + C (bass lib) 多语言项目。绝赞开发中。
https://ferry-200.github.io/coriander_player_website/
GNU General Public License v3.0
512 stars 22 forks source link

无法扫描包含 utf-16 riff info 的 wav 文件 #10

Closed Ferry-200 closed 1 month ago

Ferry-200 commented 5 months ago

考虑支持 WAV? ~鬼知道我为什么有些音乐是 WAV 格式~

_Originally posted by @Wenti-D in https://github.com/Ferry-200/coriander_player/issues/6#issuecomment-2047384793_

Ferry-200 commented 5 months ago

@Wenti-D 具体情况是什么?在我的测试里,wav 的文件是可以播放的。是标签缺失还是封面缺失?

如果不可以播放的话再加个 BASS 的 wav 插件就好。当初我是都偷懒来着(谁让它在我的电脑上不加插件就可以播放)

Wenti-D commented 5 months ago

是找不到文件。多怪啊

Ferry-200 commented 5 months ago

可以分享那个音乐文件出来吗?或者直接QQ就好。之前那个 comment 里面的记录可以找到。

Ferry-200 commented 5 months ago

原因:在解析 wav 文件的标签 riff info 时,无法通过 BOM 来提前知道文字编码。具体修复需要等待 Lofty 那边。

参见 error occurs when decoding wav's riff info

Ferry-200 commented 5 months ago

虽然现在 lofty 正在着手支持,但目前建议转成 utf-8 的编码。

Wenti-D commented 5 months ago

然而这样做的代价就是其他所有软件都无法读取,除非我启用 UTF-8 支持,但如此又会导致别的软件奇怪的编码问题,所以我选择不急。

Ferry-200 commented 5 months ago

所以现在 wav 的读取竟然是只固定使用用户系统默认编码的,,。我还以为会有试错的可能。

Ferry-200 commented 3 months ago

现在解决了!可喜可贺,可喜可贺。 现在的方案是:尝试在 Lofty 无法读取标签时通过 Windows 获取。唯一的问题是不清楚怎么通过 Windows 获取采样率。 image

也许应该把比特率的单位统一成 kbps🧐

Wenti-D commented 3 months ago

好!

比特率一般大家都用的 kbps 吧。