@Override public int getBPM() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_BPM_OBSELETE : ID_BPM); if (frameData == null || frameData.getText() == null) { return -1; } String bpmStr = frameData.getText().toString(); try { return Integer.parseInt(bpmStr); } catch (NumberFormatException e) { // try float as some utilities add BPM like 67.8, or 67,8 return (int) Float.parseFloat(bpmStr.trim().replaceAll(",", ".")); } }
@Override public boolean isCompilation() { // unofficial frame used by iTunes ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_COMPILATION_OBSELETE : ID_COMPILATION); if (frameData != null && frameData.getText() != null) return "1".equals(frameData.getText().toString()); return false; }
@Override public String getArtist() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_ARTIST_OBSELETE : ID_ARTIST); if (frameData != null && frameData.getText() != null) return frameData.getText().toString(); return null; }
@Override public String getAlbum() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_ALBUM_OBSELETE : ID_ALBUM); if (frameData != null && frameData.getText() != null) return frameData.getText().toString(); return null; }
@Override public String getYear() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_YEAR_OBSELETE : ID_YEAR); if (frameData != null && frameData.getText() != null) return frameData.getText().toString(); return null; }
@Override public String getTrack() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_TRACK_OBSELETE : ID_TRACK); if (frameData != null && frameData.getText() != null) return frameData.getText().toString(); return null; }
@Override public String getTitle() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_TITLE_OBSELETE : ID_TITLE); if (frameData != null && frameData.getText() != null) return frameData.getText().toString(); return null; }
@Override public String getPublisher() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_PUBLISHER_OBSELETE : ID_PUBLISHER); if (frameData != null && frameData.getText() != null) return frameData.getText().toString(); return null; }
@Override public String getGrouping() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_GROUPING_OBSELETE : ID_GROUPING); if (frameData != null && frameData.getText() != null) return frameData.getText().toString(); return null; }
@Override public String getCopyright() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_COPYRIGHT_OBSELETE : ID_COPYRIGHT); if (frameData != null && frameData.getText() != null) return frameData.getText().toString(); return null; }
@Override public String getEncoder() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_ENCODER_OBSELETE : ID_ENCODER); if (frameData != null && frameData.getText() != null) return frameData.getText().toString(); return null; }
@Override public String getAlbumArtist() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_ALBUM_ARTIST_OBSELETE : ID_ALBUM_ARTIST); if (frameData != null && frameData.getText() != null) return frameData.getText().toString(); return null; }
@Override public String getDate() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_DATE_OBSELETE : ID_DATE); if (frameData != null && frameData.getText() != null) return frameData.getText().toString(); return null; }
@Override public String getComposer() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_COMPOSER_OBSELETE : ID_COMPOSER); if (frameData != null && frameData.getText() != null) return frameData.getText().toString(); return null; }
@Override public String getPartOfSet() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_PART_OF_SET_OBSELETE : ID_PART_OF_SET); if (frameData != null && frameData.getText() != null) return frameData.getText().toString(); return null; }
@Override public String getKey() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_KEY_OBSELETE : ID_KEY); if (frameData == null || frameData.getText() == null) { return null; } return frameData.getText().toString(); }
@Override public String getOriginalArtist() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_ORIGINAL_ARTIST_OBSELETE : ID_ORIGINAL_ARTIST); if (frameData != null && frameData.getText() != null) return frameData.getText().toString(); return null; }
@Override public int getGenre() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_GENRE_OBSELETE : ID_GENRE); if (frameData == null || frameData.getText() == null) { return -1; } return getGenre(frameData.getText().toString()); }
@Override public String getGenreDescription() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_GENRE_OBSELETE : ID_GENRE); if (frameData == null || frameData.getText() == null) { return null; } String text = frameData.getText().toString(); if (text != null) { int genreNum = getGenre(text); if (genreNum >= 0 && genreNum < ID3v1Genres.GENRES.length) { return ID3v1Genres.GENRES[genreNum]; } else { String description = extractGenreDescription(text); if (description != null && description.length() > 0) { return description; } } } return null; }
@Override public String getGrouping() { ID3v2TextFrameData frameData = extractTextFrameData(obseleteFormat ? ID_GROUPING_OBSELETE : ID_GROUPING); if (frameData != null && frameData.getText() != null) return frameData.getText().toString(); return null; }