这篇文章主要介绍了Android怎么实现读取手机内存中的所有音乐,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
读取手机内存中的音乐信息需要做如下几步:
1)创建一个XML文件,存放获取到的信息,使用ListView控件
2)创建一个新的XML文件,对LIstView中的item对象进行布局
3)需要创建一个Music类用于存放需要获取的Music的主要信息
4)需要创建一个帮助类,用于获取手机中的音乐信息,并通过一个集合类传递获取到的信息
5)创建一个自定义适配器,用于加载ListView的每个子Item
6)实现对数据的加载,并返回到用户界面
主要的代码实现如下:
一、帮助类模块
public ArrayList<Object> getMusic(Context context) {
arrayList = new ArrayList<Object>();
resolver = context.getContentResolver();
cursor = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
if (cursor != null) {
while (cursor.moveToNext()) {
musicInfo = new MusicInfo();
musicInfo.setSinger_Name(cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.ARTIST)));// 歌手名
musicInfo.setSong_Name(cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.TITLE)));// 歌曲名
musicInfo.setSong_size(FormatChange.formatSize(cursor
.getInt(cursor
.getColumnIndex(MediaStore.Audio.Media.SIZE))));// 歌曲的大小
musicInfo
.setSong_time(FormatChange.toTime(cursor.getInt(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION))));// 歌曲时间
musicInfo.setUrl(cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.DATA)));
arrayList.add(musicInfo);
}
}
cursor.close();
return arrayList;
}
我是用普通方法做的,也可以使用静态实现。
二、适配器模块
private ArrayList<Object> arrayList;
private Context context;
private TextView music_singer,music_name,music_size;
private MusicInfo musicInfo;
public Music_adapter(Context context,ArrayList<Object> arrayList){
this.context=context;
this.arrayList=arrayList;
}
@Override
public int getCount() {
return arrayList.size();
}
@Override
public Object getItem(int position) {
return arrayList.get(position);
}
@Override
public long getItemId(int id) {
return id;
}
@Override
public View getView(int position, View view, ViewGroup arg2) {
if (view==null) {
view=LayoutInflater.from(context).inflate(R.layout.music_format,null);
}
music_name=(TextView) view.findViewById(R.id.music_name);
music_singer=(TextView) view.findViewById(R.id.music_singer);
music_size=(TextView) view.findViewById(R.id.music_size);
musicInfo=(MusicInfo) arrayList.get(position);
music_name.setText(musicInfo.getSong_Name());
music_singer.setText(musicInfo.getSinger_Name()+"|"+musicInfo.getSong_time());
music_size.setText(musicInfo.getSong_size()); //这里一定需要转换成字符串类型的
return view;
}
感谢你能够认真阅读完这篇文章,希望小编分享的“Android怎么实现读取手机内存中的所有音乐”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。