1
我一直在搜索此頁如何從一個mp3文件中獲取祕密藝術。從mp3文件獲取嵌入式封面藝術
我正在開發一款音樂應用程序,我希望獲得mp3文件(ID3v2標籤)中的歌曲封面。但是,我搜索了很多,但我還沒有找到我該怎麼做。
有人知道該怎麼做嗎?
謝謝大家。
我一直在搜索此頁如何從一個mp3文件中獲取祕密藝術。從mp3文件獲取嵌入式封面藝術
我正在開發一款音樂應用程序,我希望獲得mp3文件(ID3v2標籤)中的歌曲封面。但是,我搜索了很多,但我還沒有找到我該怎麼做。
有人知道該怎麼做嗎?
謝謝大家。
這是我如何獲得封面藝術的實現。首先,我選擇音頻文件:
MediaMetadataRetriever myRetriever = new MediaMetadataRetriever();
Uri selectedAudio;
//...
//on button click or any other event
Intent intent = new Intent();
String chooser = "Select audio file";
intent.setType("audio/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, chooser), GET_AUDIO_CODE);
然後在onActivityResult我得到的文件的URI:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK)
{
selectedAudio = data.getData();
MediaMetadataRetriever myRetriever = new MediaMetadataRetriever();
myRetriever.setDataSource(this, selectedAudio); // the URI of audio file
setArtwork(myRetriever);
}
//...
}
此後,我設置的封面:
//....
public boolean setArtwork(MediaMetadataRetriever myRetriever)
{
byte[] artwork;
artwork = myRetriever.getEmbeddedPicture();
if (artwork != null)
{
Bitmap bMap = BitmapFactory.decodeByteArray(artwork, 0, artwork.length);
ivArtwork.setImageBitmap(bMap);
return true;
}
else
{
ivArtwork.setImageBitmap(null);
return false;
}
}
它完美, 非常感謝!!!我花了很多天的時間想要做這件事,但我無法得到解決方案。這太不可思議了,非常感謝你。 –
還有一件事,你知道如果惠普MediaDataRetriever我可以得到mp3file的歌詞,或者我需要一個外部庫來做到這一點。 –
很高興它幫助:)我從來沒有試圖得到歌詞。去android開發人員的網站,並閱讀有關MediaDataRetriever。祝你好運! –