logo资料库

Android中简单音乐播放器的实现.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
Android中简单音乐播放器的实现本教程通过实现一个简单音乐播放器的过程,学习和掌握AndroidAPP中的布局、组件、事件监听、Intent、ContentProvider以及文件操作。一、获取手机中的音乐文件1.1代码实现首先,我们要获取手机中的音乐文件,并列表显示。请按以下步骤操作:1)启动Eclipse,新建一个名为MediaPlayer01的Android应用程序项目。2)将默认生成的MainActivity的父类改为ListActivity,以方便列表显示音乐文件信息。生成的默认布局文件名设为activity_main.xml。3)为了测试程序的效果,请先将部分音乐文件导入到模拟器的sdcard中,并重启模拟器。4)打开res/layout/activity_main.xml文件,修改界面布局如下(每行显示两个TextView):
5)打开src/MainActivity.java文件,修改该activity的代码如下所示:packagecom.derun.mediaplayer01;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importandroid.app.ListActivity;importandroid.content.ContentResolver;importandroid.database.Cursor;
importandroid.os.Bundle;importandroid.provider.MediaStore;importandroid.widget.SimpleAdapter;/**这里,我们的Activity继承自ListActivity*/publicclassMainActivityextendsListActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);//使用方法getList()获取音乐文件列表List>musicList=this.getList();String[]from={"path","name","album","artist"};int[]to={R.id.path,R.id.name,R.id.album,R.id.artist};//设置适配器SimpleAdaptersa=newSimpleAdapter(this,musicList,R.layout.activity_main,from,to);//设置当前activity使用适配器sathis.setListAdapter(sa);}//获取音乐列表publicList>getList(){List>musicList=newArrayList>();ContentResolvercr=this.getContentResolver();//查询所有音频文件Cursorcursor=cr.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,null);//判断游标是否为空。如果不为空,则遍历游标if(null!=cursor&&cursor.getCount()>0){//遍历游标while(cursor.moveToNext()){Mapmap=newHashMap();//获取文件路径的索引intcolIndex=cursor.getColumnIndex(MediaStore.Audio.AudioColumns.DATA);//获取文件路径Stringfilepath=cursor.getString(colIndex);map.put("path",filepath);//获取文件的标题索引colIndex=cursor.getColumnIndex(MediaStore.Audio.AudioColumns.TITLE);//获取文件的名称Stringfilename=cursor.getString(colIndex);map.put("name",filename);
//获取专辑的索引colIndex=cursor.getColumnIndex(MediaStore.Audio.AudioColumns.ALBUM);//获取文件的专辑名StringfileAlbum=cursor.getString(colIndex);map.put("album",fileAlbum);//获取艺术家的索引colIndex=cursor.getColumnIndex(MediaStore.Audio.AudioColumns.ARTIST);//获取艺术家的名字Stringartistname=cursor.getString(colIndex);map.put("artist",artistname);//将map添加到列表中musicList.add(map);}}returnmusicList;}}6)运行程序,显示结果如下所示:
1.2知识点说明布局:ListActivity类:MediaStore类:MediaStore类是Android平台的多媒体数据库,它包含了音频、视频、图片等所有多媒体文件信息。MediaStore以ContentProvider的形式向外提供媒体数据库信息。通过Android平台提供的ContentProvider接口,可以方便的访问数据库信息:MediaStore.Audio.Media-定义媒体数据库中的歌曲信息MediaStore.Audio.Artists-定义媒体数据库中的歌手信息MediaStore.Audio.Albums-定义媒体数据库中的专辑信息MediaStore.Audio.Playlists-定义媒体数据库中的播放列表信息Sdcard文件导入:ContentProvider:顾名思义,就是内容的提供者。在Android中它是一个数据源,屏蔽了具体底层数据源的细节。在ContentProvider内部可以用Android支持的任何手段进行数据的存储和操作。Android已经为一些常见的数据类型(如音频、视频、图像、个人联系信息等)提供了一组ContentProvider,可以在android.provider包下查看,也可以查询它们拥有的数据(有些Provider必须有一定权限才可以)
分享到:
收藏