制作一个音乐播放器:
一、实现的功能
- 实现播放,暂停,停止,播放上一首,下一首功能
- 显示播放列表
- 至少可以播放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
五、效果展示
实现了播放音乐,上下首歌曲切换,暂停,停止功能。