作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试在我的歌曲列表中添加音频文件的缩略图。但经过几次尝试,我没有做到这一点。我不知道如何实现这个。有什么简单的方法可以获取音频文件的缩略图吗?我在下面给出了我实际正在寻找的示例图片。
private class MediaCursorAdapter extends SimpleCursorAdapter {
MediaCursorAdapter(Context context, int layout, Cursor c) {
super(context, layout, c, new String[]{MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.ALBUM_ID},
new int[]{R.id.title, R.id.displayname, R.id.thumbnail});
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView title = view.findViewById(R.id.title);
TextView name = view.findViewById(R.id.displayname);
ImageView thumbnail = view.findViewById(R.id.thumbnail);
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
byte[] rawArt;
Bitmap art = null;
BitmapFactory.Options bfo=new BitmapFactory.Options();
mmr.setDataSource(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID)));
rawArt = mmr.getEmbeddedPicture();
if (null != rawArt)
art = BitmapFactory.decodeByteArray(rawArt, 0, rawArt.length, bfo);
thumbnail.setImageBitmap(art);
name.setText(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)));
title.setText(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)));
view.setTag(cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DATA)));
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.song_list, parent, false);
bindView(v, context, cursor);
return v;
}
}
最佳答案
This是获取音频文件缩略图的方法。如果返回空值,则表示音频没有图像。您还可以为音频设置默认缩略图图标,或将可绘制对象中的资源用作默认资源。
关于android - 如何在android中显示音频文件的缩略图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51733330/
我有一个具有可变数量子元素的固定大小的 div。我不知道 children 的大小。目标是缩小它们以适合父级。 例子: .parent { width: 100px; height: 100p
我是一名优秀的程序员,十分优秀!