gpt4 book ai didi

java - 有没有办法使用 mp3agic 获取通用 mp3 标签?

转载 作者:行者123 更新时间:2023-12-01 21:57:22 24 4
gpt4 key购买 nike

我正在用java开发一个MP3播放器,使用mp3agic编辑 .mp3 文件元数据。问题是:我不知道文件的具体标签来编辑所需的数据。

以下是我获取 mp3 轨道的代码:

public static int get_rep(Music msc)
{
try
{
Mp3File file = new Mp3File(msc.get_path());

if (file.hasId3v1Tag())
{
ID3v1 tag = file.getId3v1Tag();
return Integer.parseInt(tag.getTrack());
}
else if (file.hasId3v2Tag())
{
ID3v2 tag = file.getId3v2Tag();
return Integer.parseInt(tag.getTrack());
}
}
catch (UnsupportedTagException e)
{
e.printStackTrace();
}
catch (InvalidDataException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return -1;
}

有没有办法跳过 file.hasId3v1Tag()file.hasId3v2Tag() 验证来获取标签值?

我尝试过:

private static Object get_tag(Music msc)
{
try
{
Mp3File file = new Mp3File(msc.get_path());

if (file.hasId3v1Tag())
{
return file.getId3v1Tag();
}
else if (file.hasId3v2Tag())
{
return file.getId3v2Tag();
}
/*
else if(file.hasCustomTag())
{
file.removeCustomTag();
return file.getCustomTag();
}
*/
}
catch (UnsupportedTagException e)
{
e.printStackTrace();
}
catch (InvalidDataException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return Boolean.FALSE;
}

但我仍然需要检查标签,然后将 Object 值转换为标签值,这意味着无论如何我都必须知道它。我接受任何建议,甚至交换 mp3agic。

最佳答案

ID3v2 扩展了 ID3v1,因此您应该能够使用 ID3v1 tag = file.getId3v2Tag(); 并能够提取 ID3v1从中获取数据。

你可以试试这个:

private static ID3v1 get_tag(Music msc) {
try {
Mp3File file = new Mp3File(msc.get_path());

if (file.hasId3v1Tag()) {
return file.getId3v1Tag();
} else if (file.hasId3v2Tag()) {
return file.getId3v2Tag();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

关于java - 有没有办法使用 mp3agic 获取通用 mp3 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58733089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com