使用最新版JS MediaTags无法读取歌曲年份信息的技术咨询
你的问题出在ID3标签的字段差异上:JS MediaTags默认只读取旧版ID3v1的TYE字段,但你的歌曲年份可能存在ID3v2的其他字段里(比如TDRC录制时间、TYER年份,或是自定义TXXX字段),而Mp3tag会自动兼容解析这些不同的年份字段,所以能正常显示。
给你几个具体的解决方法:
先排查自定义字段
TXXX:你的元数据里包含TXXX(用户自定义文本字段),年份可能藏在这里。可以打印TXXX.data的具体内容,看看有没有类似"year"的键值对,比如:console.log(tag.tags.TXXX.data); // 查看所有自定义字段读取ID3v2标准年份字段:如果歌曲用的是ID3v2标签,年份通常存在
TDRC(录制时间,格式一般是YYYY-MM-DD)或TYER字段里,直接在回调里手动读取:jsmediatags.read('目标歌曲路径', { onSuccess: function(tag) { let year = null; // 优先取TDRC的年份部分 if (tag.tags.TDRC) { year = tag.tags.TDRC.data.split('-')[0]; } // 再尝试TYER字段 else if (tag.tags.TYER) { year = tag.tags.TYER.data; } // 最后检查TXXX自定义字段 else if (tag.tags.TXXX) { for (let key in tag.tags.TXXX.data) { if (key.toLowerCase().includes('year')) { year = tag.tags.TXXX.data[key]; break; } } } console.log('获取到的年份:', year); }, onError: function(err) { console.error('读取失败:', err); } });确认Mp3tag里的对应字段:在Mp3tag中开启「显示标签原始ID」的选项,就能直接看到年份对应的具体字段名,再对应到JS MediaTags里读取即可。
内容的提问来源于stack exchange,提问作者Toniq
相关产品推荐
相关产品推荐

