首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android开发做一个简单的音乐播放器

Android开发做一个简单的音乐播放器

作者头像
黄林晴
发布2019-01-10 15:27:26
3.2K0
发布2019-01-10 15:27:26
举报
文章被收录于专栏:代码男人代码男人

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 代码男人

分享技术文章,投稿分享,不限技术种类,不限技术深度,让更多人因为分享而受益。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年08月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档