1600802083

制作一个音乐播放器:

一、实现的功能

  1. 实现播放,暂停,停止,播放上一首,下一首功能
  2. 显示播放列表
  3. 至少可以播放3首歌曲

二、界面截图

  

三、关键代码

建立一个MediaPlayer,调用它实现音乐播放,暂停,结束等功能

private MediaPlayer mediaPlayer=new MediaPlayer();

播放:

1 play.setOnClickListener(new View.OnClickListener() {
2             @Override
3             public void onClick(View v) {
4                 if(!mediaPlayer.isPlaying())
5                     mediaPlayer.start();//调用start()函数即可
6             }
7         });

暂停:

1 pause.setOnClickListener(new View.OnClickListener() {
2             @Override
3             public void onClick(View v) {
4                 if(mediaPlayer.isPlaying())
5                     mediaPlayer.pause();//调用pause()函数
6             }
7         });

停止:

 1 stop.setOnClickListener(new View.OnClickListener() {
 2             @Override
 3             public void onClick(View v) {
 4                 if (mediaPlayer.isPlaying()) {
 5                     mediaPlayer.stop();//调用stop()函数
 6                     try {
 7                         mediaPlayer.reset();//重置mediaPlayer
 8                         mediaPlayer.setDataSource(list.get(count.index).path);//获取音乐路径
 9                         mediaPlayer.prepare();
10                         mediaPlayer.seekTo(0);//音乐进度置为0
11                     } catch (Exception e) {
12                         e.printStackTrace();
13                     }
14                 }
15             }
16         });

音乐文件信息类:

1 public class MusicList {
2     public String filename;//文件名
3     public String name;//歌名
4     public String singer;//歌手
5     public String path;//歌曲路径
6     public int time;//歌曲总时长
7
8 }

获取音乐歌曲序号:

 1 //用来确定歌曲序号,切换上下首
 2 public class GetIndex {
 3     public int index;
 4     GetIndex(){//初始化为0
 5         index=0;
 6     }
 7     void Getnext(){//下一首序号加一
 8         index=index+1;
 9     }
10     void Getlast(){//上一首序号减一
11         index=index-1;
12     }
13     void Getinit(){//点击下一首时大于总歌曲数,歌曲序号设为0
14         index=0;
15     }
16     void Setindex(int i){//点击上一首时,歌曲序号为0,跳到最后一首
17         index=i;
18     }
19 }

上一首:

 1 last.setOnClickListener(new View.OnClickListener() {
 2             @Override
 3             public void onClick(View v) {
 4                 if(count.index==0){//当前歌曲是第一首时,点击上一首,跳到最后一首
 5                     count.Setindex(list.size()-1);
 6                 }else{
 7                     count.Getlast();
 8                 }
 9                 mediaPlayer.stop();
10                 try {
11                     mediaPlayer.reset();
12                     mediaPlayer.setDataSource(list.get(count.index).path);//读取歌曲文件
13                     mediaPlayer.prepare();
14                     mediaPlayer.seekTo(0);
15                     mediaPlayer.start();
16                 } catch (Exception e) {
17                     e.printStackTrace();
18                 }
19 
20 
21             }
22         });

 下一首:

 1 next.setOnClickListener(new View.OnClickListener() {
 2             @Override
 3             public void onClick(View v) {
 4                 if(count.index==(list.size()-1)){//歌曲到最后一首时,点击下一首跳到第一首
 5                     count.Getinit();
 6                 }else{
 7                     count.Getnext();
 8                 }
 9                 mediaPlayer.stop();
10                 try {
11                     mediaPlayer.reset();
12                     mediaPlayer.setDataSource(list.get(count.index).path);
13                     mediaPlayer.prepare();
14                     mediaPlayer.seekTo(0);
15                     mediaPlayer.start();
16                 } catch (Exception e) {
17                     e.printStackTrace();
18                 }
19             }
20         });

三、代码链接

https://git.coding.net/huang180/android_music.git

 

四、apk链接

https://git.coding.net/huang180/android_music.git

 五、效果展示

实现了播放音乐,上下首歌曲切换,暂停,停止功能。

原文地址:https://www.cnblogs.com/hdq163/p/10099631.html