Я разрабатываю MP3-плеер с Java, используя 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.