一、实现的功能
1.读取本地音乐文件
2.实现音乐的播放、暂停、上一首和下一首、以及退出。
二、实现界面截图
三、主要代码
public android.os.Handler handler = new android.os.Handler(); public Runnable runnable = new Runnable() { @Override public void run() { if(musicService.mp.isPlaying()) { musicStatus.setText(getResources().getString(R.string.playing)); btnPlayOrPause.setText(getResources().getString(R.string.pause).toUpperCase()); } else { musicStatus.setText(getResources().getString(R.string.pause)); btnPlayOrPause.setText(getResources().getString(R.string.play).toUpperCase()); } musicTime.setText(time.format(musicService.mp.getCurrentPosition()) + "/" + time.format(musicService.mp.getDuration())); seekBar.setProgress(musicService.mp.getCurrentPosition()); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser) { musicService.mp.seekTo(seekBar.getProgress()); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); handler.postDelayed(runnable, 100); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d("hint", "ready to new MusicService"); musicService = new MusicService(); Log.d("hint", "finish to new MusicService"); bindServiceConnection(); seekBar = (SeekBar)this.findViewById(R.id.MusicSeekBar); seekBar.setProgress(musicService.mp.getCurrentPosition()); seekBar.setMax(musicService.mp.getDuration()); musicStatus = (TextView)this.findViewById(R.id.MusicStatus); musicTime = (TextView)this.findViewById(R.id.MusicTime); btnPlayOrPause = (Button)this.findViewById(R.id.BtnPlayorPause); Log.d("hint", Environment.getExternalStorageDirectory().getAbsolutePath()+"/You.mp3"); }
项目链接:
https://git.coding.net/qhy1600802054/music.git
apk链接:
https://coding.net/u/qhy1600802054/p/music/git/raw/master/1600802054.apk