SPlayer icon indicating copy to clipboard operation
SPlayer copied to clipboard

SPlayer 3.0.0-beta2 扫描本地音乐时遇到问题(命令行报错)

Open KIDult2226 opened this issue 3 months ago • 0 comments

是网页端还是客户端

Appimage客户端

当前系统环境

ArchLinux

当前 Node.js 及 npm 版本

v24.7.0 / 11.6.0

当前版本

3.0.0-beta2

具体信息

扫描本地音乐遇到问题如图

Image

命令行输出如下

14:40:59.396 › 📂 Fetching music files from: /home/kidult226/音乐 14:40:59.400 › 📂 Fetching music files from: /home/kidult226/音乐 14:41:03.948 › ❌ Error fetching music metadata: InvalidCharacterError: Invalid character at atob (node:buffer:1302:13) at VorbisPictureToken.fromBase64 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js:11:62) at VorbisParser.addTag (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.js:73:40) at file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:61 at Array.map () at FlacParser.parseComment (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:32) at async FlacParser.postId3v2Parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:43:13) at async FlacParser.parseID3v2 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:38:9) at async FlacParser.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:21:13) at async ParserFactory.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ParserFactory.js:84:9) 14:41:03.949 › Error occurred in handler for 'get-music-files': InvalidCharacterError: Invalid character at atob (node:buffer:1302:13) at VorbisPictureToken.fromBase64 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js:11:62) at VorbisParser.addTag (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.js:73:40) at file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:61 at Array.map () at FlacParser.parseComment (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:32) at async FlacParser.postId3v2Parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:43:13) at async FlacParser.parseID3v2 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:38:9) at async FlacParser.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:21:13) at async ParserFactory.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ParserFactory.js:84:9) 14:41:04.521 › ❌ Error fetching music metadata: InvalidCharacterError: Invalid character at atob (node:buffer:1302:13) at VorbisPictureToken.fromBase64 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js:11:62) at VorbisParser.addTag (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.js:73:40) at file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:61 at Array.map () at FlacParser.parseComment (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:32) at async FlacParser.postId3v2Parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:43:13) at async FlacParser.parseID3v2 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:38:9) at async FlacParser.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:21:13) at async ParserFactory.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ParserFactory.js:84:9) 14:41:04.522 › Error occurred in handler for 'get-music-files': InvalidCharacterError: Invalid character at atob (node:buffer:1302:13) at VorbisPictureToken.fromBase64 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js:11:62) at VorbisParser.addTag (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.js:73:40) at file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:61 at Array.map () at FlacParser.parseComment (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:32) at async FlacParser.postId3v2Parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:43:13) at async FlacParser.parseID3v2 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:38:9) at async FlacParser.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:21:13) at async ParserFactory.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ParserFactory.js:84:9)

GPT5的回复,供参考,我准备解包appimage之后尝试一下:

我帮你查过了,这个 InvalidCharacterError 其实是 music-metadata 在解析 FLAC/OGG 文件时遇到的一个已知问题——
原因是有些 FLAC 文件的封面图(METADATA_BLOCK_PICTURE)被错误地放在了 Vorbis Comment 里,并且是非标准的 Base64 数据。
atob() 在解码时遇到非法字符,就直接抛错了。


解决方法

1. 升级 music-metadata

这个问题在 v4.7.0 之后已经修复过一次,如果你用的是旧版本,先升级:

npm install music-metadata@latest

或者如果是 Electron 打包的,把依赖里的 music-metadata 更新到最新版本再重新打包。


KIDult2226 avatar Sep 15 '25 06:09 KIDult2226