Android开发如何做一个简单的音乐播放器,首先我们先要知道用到的知识点有哪些。
1.MediaPlayer:可以播放本地资源、sd卡内存资源以及网络uri资源,在这里我们播放sd卡上的音乐资源.
2.Contentresolver:如何获取本地音乐资源。
3.如何通过播放/暂停/上一首/下一首/切换播放资源。
了解上述问题后,我们开始写代码:
1.获取本地音乐资源列表:
1).读取sd卡上的内容我们需要在配置文件中添加权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
2).获取本地资源文件列表:
ContentResolver contentResolver=getContentResolver();
//查询本地资源文件 Cursor c=contentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,null);
if (c!=null){ int i=0; while(c.moveToNext()){ Map<String,Object> map= new HashMap<String, Object>();//存放在map中显示在listview列表 //歌曲名 name[i]=c.getString(c.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
//歌曲id id[i]=c.getInt(c.getColumnIndex(MediaStore.Audio.Media._ID)); //作者 artical[i]=c.getString(c.getColumnIndex(MediaStore.Audio.Media.ARTIST)); //路径 url[i]=c.getString(c.getColumnIndex(MediaStore.Audio.Media.DATA)); map.put("SongName", name[i]); map.put("id", id[i]); map.put("Artical", artical[i]); map.put("url", url[i]); list.add(map); i ; }
通过上述代码就可将本地资源文件显示在listview列表中。
3.点击播放按钮:
点击播放按钮时,有两种可能:1).当前音乐处于暂停状态,点击播放继续播放。2).当前正在播放音乐,点击播放,音乐从头播放。设置标记量isPause=false;如果当前是处于停止状态,则继续播放:
if (isPause){ mediaPlayer.start(); isPause=false; }
如果当前不是处于暂停状态,则重置当前音乐,再次播放。
if (mediaPlayer.isPlaying()){ mediaPlayer.stop(); mediaPlayer.reset(); } Uri conuri= ContentUris.withAppendedId(android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,id[index]); mediaPlayer.setDataSource(getApplicationContext(),conuri); mediaPlayer.prepareAsync(); isPause=false;
下一首或上一首更改当前音乐标示index即可。
测试图如下:
源码:https://github.com/huangolinqing/Music1/
欢迎关注技术公众号,微信号搜索ColorfulCode 代码男人
分享技术文章,投稿分享,不限技术种类,不限技术深度,让更多人因为分享而受益。