千家信息网

Android怎么实现读取手机内存中的所有音乐

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,这篇文章主要介绍了Android怎么实现读取手机内存中的所有音乐,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。读取手机内存中的音乐信息
千家信息网最后更新 2024年11月20日Android怎么实现读取手机内存中的所有音乐

这篇文章主要介绍了Android怎么实现读取手机内存中的所有音乐,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

读取手机内存中的音乐信息需要做如下几步:

1)创建一个XML文件,存放获取到的信息,使用ListView控件

2)创建一个新的XML文件,对LIstView中的item对象进行布局

3)需要创建一个Music类用于存放需要获取的Music的主要信息

4)需要创建一个帮助类,用于获取手机中的音乐信息,并通过一个集合类传递获取到的信息

5)创建一个自定义适配器,用于加载ListView的每个子Item

6)实现对数据的加载,并返回到用户界面

主要的代码实现如下:

一、帮助类模块

public ArrayList getMusic(Context context) {  arrayList = new ArrayList();  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 arrayList; private Context context; private TextView music_singer,music_name,music_size; private MusicInfo musicInfo; public Music_adapter(Context context,ArrayList 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怎么实现读取手机内存中的所有音乐"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0