我有一个问题:我实现了一个Android项目,当我按下按钮时播放一首歌。它还在另一个视图(应用程序有两个片段)中显示了mp3文件的元数据。我的意思是元数据解释器的名称,歌曲...我在raw目录中只有一个mp3文件。但是当我在raw-directory中放入另一个mp3文件时(只有这个而不更改代码),元信息突然消失。结果为空。这些不再显示。当我删除一个mp3文件时,它再次显示元数据。可以s.o.告诉我为什么我不能在raw-directory中放入另一个mp3文件?我不明白。 :( 我在代码中没有改变,只放了另一个mp3文件。那它不起作用。
我该如何解决?提前谢谢
答案 0 :(得分:0)
尝试在AsyncTask中加载每个内容:
private class LoadImageTask extends AsyncTask<String, Void, Bitmap>{
private ImageView artImage;
public LoadImageTask(ImageView image){
artImage = image;
}
@Override
protected void onPreExecute() {
retriever = new MediaMetadataRetriever();
}
@Override
protected Bitmap doInBackground(String... params) {
retriever.setDataSource(params[0]);
byte[] art = retriever.getEmbeddedPicture();
Bitmap bitmap = null;
if( art != null ){
bitmap = BitmapFactory.decodeByteArray(art, 0, art.length);
}
return bitmap;
}
@Override
protected void onPostExecute(Bitmap bm) {
if( bm != null ){
artImage.setImageBitmap(bm);
}
else{
artImage.setImageResource(R.drawable.no_image);
}
}
}