上次我们实现了把手机里的音频扫描到,然后放在list集合里面,用ListView展示在手机界面上,如果没有看过的可以去看看本人的博客:Android音乐播放器制作(一)扫描本地音乐显示在手机上

这次是在上一次的基础上直接继续写代码,几行代码实现点击那首歌曲就播放那首歌曲,系统已经提供了播放音频的对象了,直接用就可以了,具体如下:

1,声明一个MediaPlayer

private MediaPlayer mediaPlayer;//播放音频的

2,实例化

//初始化        mediaPlayer = new MediaPlayer();


然后我们就有一个MediaPlayer的对象可以使用了

3,在initView方法里面给ListView设置一个点击监听事件,点击哪个item我们就可以得到这个item的歌曲地址,然后穿入我们创建的播放音频的方法中实现播放:

 mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {                //创建一个播放音频的方法,把点击到的地址传过去                //list.get(i).path这个就是歌曲的地址                play(list.get(i).path);            }        });
然后play方法的代码:

   
   
 /**     * 播放音频的方法     */    private void play(String path) {        //播放之前要先把音频文件重置        try {            mediaPlayer.reset();            //调用方法传进去要播放的音频路径            mediaPlayer.setDataSource(path);            //异步准备音频资源            mediaPlayer.prepareAsync();            //调用mediaPlayer的监听方法,音频准备完毕会响应此方法            mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {                @Override                public void onPrepared(MediaPlayer mediaPlayer) {                    mediaPlayer.start();//开始音频                }            });        } catch (IOException e) {            e.printStackTrace();        }    }


play方法里面我们调用的是mediaPlayer的异步准备的方法,因为当歌曲很大的时候,如果不是用异步准备,而是直接准备播放的话,就会造成播放卡顿;然后就在mediaPlayer的准备完毕的监听方法中调用start()中开始


持续更新

demo下载地址:http://download.csdn.net/detail/dl10210950/9610737




更多相关文章

  1. android中使用httpclient方法获得网页内容并对json对象解析
  2. Android Studio3.0开发JNI流程------在Android原程序添加自己类
  3. 利用Android的Matrix类实现J2ME的drawRegion的镜像方法
  4. Systrace 分析性能工具使用方法详解
  5. 简单的Android ROM制作方法:创建刷机包 备份ROM
  6. Android原生Switch控件滑块thumb卡住问题的解决方法
  7. Android 静默安装和智能安装的实现方法
  8. Android中Handler的使用方法——在子线程中更新界面

随机推荐

  1. Android Service---启动服务
  2. Android核心分析(19)----电话系统之GSMCall
  3. Android实现内存中数据保存到sdcard的方
  4. 怎么查看Android编译时候交叉编译链工具
  5. android开发游记:从viewpager禁用滚动 总
  6. android adb devices 后出现offline问题
  7. Android(安卓)L 64位兼容32 应用程序的认
  8. android:通过Android命令自动编译出build.
  9. android获取网络图片的用法 BitmapFactor
  10. Android之Path类