MP3 ファイルのアルバム アートを取得しようとしています。これを行うための最善かつ最もクリーンな方法は、MediaMetadataRetriever クラスを使用することだと思いました。しかし、何らかの理由で getEmbeddedPicture メソッドを呼び出しても機能しません。画像が表示されず、LogCat に次のエラーが表示されます。
04-29 18:36:19.520: E/MediaMetadataRetrieverJNI(25661): getEmbeddedPicture: Call to getEmbeddedPicture failed.
これは動作しないように見えるコードです:
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
MediaMetadataRetriever mmdr = new MediaMetadataRetriever();
mmdr.setDataSource(path); //path of the MP3 file on SD Card
bites = mmdr.getEmbeddedPicture();
if(bites != null)
artBM = BitmapFactory.decodeByteArray(bites, 0, bites.length);
return null;
}
Android 4.2 を搭載したデバイスで実行しているため、MediaMetadataRetriever (API レベル 10 が必要) に問題はありません。私がテストしたファイルは、Windows エクスプローラーで画像を表示するので、アートが埋め込まれているようです。誰でもこれについて何か考えがありますか?