Android第三次程式作業——音樂播放器
阿新 • • 發佈:2018-12-11
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