我正在尝试从 MP3 文件中检索专辑封面,但以下代码不起作用。每当应用程序启动时,它都会显示灰色框(在 try/catch 块中检查代码)。
public class MainActivity extends AppCompatActivity {
MediaMetadataRetriever metaRetriver;
byte[] art;
ImageView album_art;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getInit();
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
cursor.moveToFirst();
String url = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
cursor.close();
metaRetriver = new MediaMetadataRetriever();
metaRetriver.setDataSource(url);
try {
art = metaRetriver.getEmbeddedPicture();
Bitmap songImage = BitmapFactory
.decodeByteArray(art, 0, art.length);
album_art.setImageBitmap(songImage);
} catch (Exception e) {
album_art.setBackgroundColor(Color.GRAY);
}
}
public void getInit() {
album_art = (ImageView) findViewById(R.id.album_art);
}
}
我也尝试使用光标来获取专辑封面,但它不起作用。