我有 MP3 文件的文件名。如何从该 MP3 文件中提取元数据,例如艺术家、专辑、专辑图像……?
对于 API 级别 10 或更高级别尝试此操作:
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(filePath);
String albumName = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM));
等等...
更多帮助。
用途:
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(songsList.get(songIndex).get("songPath"));
byte[] artBytes = mmr.getEmbeddedPicture();
if(artBytes != null)
{
//InputStream is = new ByteArrayInputStream(mmr.getEmbeddedPicture());
Bitmap bm = BitmapFactory.decodeByteArray(artBytes, 0, artBytes.length);
bSongImage.setImageBitmap(bm);
}
else
{
bSongImage.setImageDrawable(getResources().getDrawable(R.drawable.cmp));
}
“其他”是指音频文件中没有嵌入图像。
用途:
MetaDataRetriever m_metaRetriever = new MetaDataRetriever();
m_metaRetriever.setDataSource(MainActivity.this, uriSound);
setDataSource
方法的输入参数还应包含上下文。否则它会抛出非法参数异常。