1600802064
1、实现的功能
- 实现播放,暂停,播放上一首,下一首功能
- 显示播放列表
- 可以播放3首歌曲
2、实现步骤
- 截图:
2、主要功能代码:
获取sdcard卡中的歌曲
private static final File PATH = Environment.getExternalStorageDirectory();// 获取SD卡总目录。 class MusicFilter implements FilenameFilter { public boolean accept(File dir, String name) { return (name.endsWith(".mp3"));//返回当前目录所有以.mp3结尾的文件 } } public void getSDcardFile(File groupPath){ //循环获取sdcard目录下面的目录和文件 for(int i=0; i< groupPath.listFiles().length; i++){ File childFile = groupPath.listFiles()[i]; //假如是目录的话就继续调用getSDcardFile()将childFile作为参数传递的方法里面 if(childFile.isDirectory()){ getSDcardFile(childFile); }else{ //如果是文件的话,判断是不是以.mp3结尾,是就加入到musicList里面 if(childFile.toString().endsWith(".mp3")){ musicList.add(childFile.getAbsolutePath()); } } } }
播放
public void play() { try { player.reset(); //重置多媒体 String dataSource = musicList.get(songNum);//得到当前播放音乐的路径 setPlayName(dataSource);//截取歌名 // 指定参数为音频文件 player.setAudioStreamType(AudioManager.STREAM_MUSIC); player.setDataSource(dataSource);//为多媒体对象设置播放路径 player.prepare();//准备播放 player.start();//开始播放 //setOnCompletionListener 当当前多媒体对象播放完成时发生的事件 player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { public void onCompletion(MediaPlayer arg0) { next();//如果当前歌曲播放完毕,自动播放下一首. } }); } catch (Exception e) { Log.v("MusicService", e.getMessage()); } } //继续播放 public void goPlay(){ int position = getCurrentProgress(); player.seekTo(position);//设置当前MediaPlayer的播放位置,单位是毫秒。 try { player.prepare();// 同步的方式装载流媒体文件。 } catch (Exception e) { e.printStackTrace(); } player.start(); }
上一首、下一首、暂停、停止播放
public void next() { songNum = songNum == musicList.size() - 1 ? 0 : songNum + 1; play(); } public void last() { songNum = songNum == 0 ? musicList.size() - 1 : songNum - 1; play(); } // 暂停播放 public void pause() { if (player != null && player.isPlaying()){ player.pause(); } } public void stop() { if (player != null && player.isPlaying()) { player.stop(); player.reset(); } }
3、项目链接:https://git.coding.net/WWKing/MusicPlayer.git
4、apk链接:https://coding.net/u/WWKing/p/MusicPlayer/git/raw/master/main/MusicPlayer.apk(歌曲需放在SD卡根目录,点击开始/暂停播放)