【发布时间】:2018-12-22 08:35:42
【问题描述】:
我在这里想要完成的是,当我调用这个方法时:
public void setAlbumArt(int index) {
android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(this, Uri.parse(fullsongpath.get(index).Path));
byte [] data = mmr.getEmbeddedPicture();
//albumArt is an Imageview object
// convert the byte array to a bitmap
if (data != null) {
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
albumArt.setImageBitmap(bitmap); //associated cover art in bitmap
albumArt.setAdjustViewBounds(true);
albumArt.setLayoutParams(new LinearLayout.LayoutParams(500, 500));
} else {
albumArt.setImageResource(R.mipmap.default_album_art); //any default cover resourse folder
albumArt.setAdjustViewBounds(true);
albumArt.setLayoutParams(new LinearLayout.LayoutParams(500,500 ));
}
}
我的应用程序崩溃,引发错误
java.lang.IllegalArgumentException
这是专辑Art ImageView
<ImageView
android:id="@+id/albumArt"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:src="@mipmap/default_album_art" />
fullsongpath 是一个持有该对象的 ArrayList:
public class SongInfo {
public String Path;
public String song_name;
public String album_name;
public String artist_name;
public SongInfo(String Path,String song_name,String album_name,String artist_name){
this.Path=Path;
this.song_name=song_name;
this.album_name=album_name;
this.artist_name=artist_name;
}
}
路径是 mp3 文件的 URL
我真的不知道是什么导致了这个问题,希望您能提供帮助,不胜感激。
【问题讨论】:
-
MediaMetadataRetriever::setDataSource抛出IllegalArgumentException如果String是null...我猜.. 它是null?在发布此类问题之前,您应该真正查看文档和源代码,因为通常崩溃是另一个问题的征兆。
标签: java android mediametadataretriever