1

このページで、mp3 ファイルからコバート アートを取得する方法を検索してきました。

私は 1 つの音楽アプリを開発しており、mp3 ファイル (ID3v2 タグ) 内にある曲のカバー アートを取得したいと考えています。しかし、私はたくさん検索しましたが、どうすればいいのかわかりません。

誰かがそれを行う方法を知っていますか?

みんな、ありがとう。

4

1 に答える 1

6

これが、カバーアートを取得する方法の私の実装です。まず、オーディオ ファイルを選択します。

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;
    }
}
于 2013-08-21T11:26:48.220 に答える