@Override public void onId3Metadata(Map<String, Object> metadata) { for (Map.Entry<String, Object> entry : metadata.entrySet()) { if (TxxxMetadata.TYPE.equals(entry.getKey())) { TxxxMetadata txxxMetadata = (TxxxMetadata) entry.getValue(); Log.i(TAG, String.format("ID3 TimedMetadata %s: description=%s, value=%s", TxxxMetadata.TYPE, txxxMetadata.description, txxxMetadata.value)); } else if (PrivMetadata.TYPE.equals(entry.getKey())) { PrivMetadata privMetadata = (PrivMetadata) entry.getValue(); Log.i(TAG, String.format("ID3 TimedMetadata %s: owner=%s", PrivMetadata.TYPE, privMetadata.owner)); } else if (GeobMetadata.TYPE.equals(entry.getKey())) { GeobMetadata geobMetadata = (GeobMetadata) entry.getValue(); Log.i(TAG, String.format("ID3 TimedMetadata %s: mimeType=%s, filename=%s, description=%s", GeobMetadata.TYPE, geobMetadata.mimeType, geobMetadata.filename, geobMetadata.description)); } else { Log.i(TAG, String.format("ID3 TimedMetadata %s", entry.getKey())); } } }