一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Android简易音乐播放器实现代码

时间:2017-04-04 编辑:简简单单 来源:一聚教程网

1.播放项目内的音乐

 

 代码如下复制代码

packagecom.thm.g150820_android26_playmusic;

importAndroid.media.MediaPlayer;

importandroid.support.v7.app.AppCompatActivity;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.widget.ImageButton;

importandroid.widget.SeekBar;

 

publicclassMainActivityextendsAppCompatActivity {

 

privateMediaPlayer mediaPlayer;

privateSeekBar seekBar;

 

@Override

protectedvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

seekBar = (SeekBar) findViewById(R.id.seekBar);

 

seekBar.setOnSeekBarChangeListener(newSeekBar.OnSeekBarChangeListener() {

 @Override

 publicvoidonProgressChanged(SeekBar seekBar,intprogress,booleanfromUser) {

 

 }

 

 @Override

 publicvoidonStartTrackingTouch(SeekBar seekBar) {

 

 }

 

 @Override

 publicvoidonStopTrackingTouch(SeekBar seekBar) {

  //获取拖动结束之后的位置

  intprogress = seekBar.getProgress();

  //跳转到某个位置播放

  mediaPlayer.seekTo(progress);

 }

});

}

 

publicvoidisPlayOrPause(View view){

//把View强转为ImageButton

ImageButton imageButton = (ImageButton) view;

 

if(mediaPlayer==null) {

 //实例化MediaPlayer

 mediaPlayer = MediaPlayer.create(this, R.raw.yao);

 //开始播放

 mediaPlayer.start();

 //图标修改为暂停的图标

 imageButton.setImageResource(android.R.drawable.ic_media_pause);

 //获取音乐的总时长

 intduration = mediaPlayer.getDuration();

 //设置进度条的最大值为音乐的总时长

 seekBar.setMax(duration);

 

 newMyThre().start();

 

}//判断如果音乐在播放

elseif(mediaPlayer.isPlaying()){

 //就暂停音乐

 mediaPlayer.pause();

 //图标修改为播放的图标

 imageButton.setImageResource(android.R.drawable.ic_media_play);

}else{

 mediaPlayer.start();

 //图标修改为暂停的图标

 imageButton.setImageResource(android.R.drawable.ic_media_pause);

}

}

 

//写内部类

classMyThreextendsThread{

@Override

publicvoidrun() {

super.run();

while(seekBar.getProgress()<=seekBar.getMax()){

 

  //获取当前音乐播放的位置

  intcurrentPosition = mediaPlayer.getCurrentPosition();

 

  //让进度条动起来

  seekBar.setProgress(currentPosition);

  }

 }

}

}

 

2.播放内存卡中的音乐

 

 代码如下复制代码

packagecom.thm.g150820_android26_playmusic;

 

importandroid.media.AudioManager;

importandroid.media.MediaPlayer;

importandroid.net.Uri;

importandroid.support.v7.app.AppCompatActivity;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.widget.ImageButton;

importandroid.widget.SeekBar;

 

importjava.io.IOException;

 

publicclassMainActivityextendsAppCompatActivity {

 

 privateMediaPlayer mediaPlayer;

 privateSeekBar seekBar;

 

 @Override

 protectedvoidonCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);

  seekBar = (SeekBar) findViewById(R.id.seekBar);

 

  seekBar.setOnSeekBarChangeListener(newSeekBar.OnSeekBarChangeListener() {

   @Override

   publicvoidonProgressChanged(SeekBar seekBar,intprogress,booleanfromUser) {

 

   }

 

   @Override

   publicvoidonStartTrackingTouch(SeekBar seekBar) {

 

   }

 

   @Override

   publicvoidonStopTrackingTouch(SeekBar seekBar) {

    //获取拖动结束之后的位置

    intprogress = seekBar.getProgress();

    //跳转到某个位置播放

    mediaPlayer.seekTo(progress);

   }

  });

 }

 

 

 publicvoidisPlayOrPause(View view){

  //把View强转为ImageButton

  ImageButton imageButton = (ImageButton) view;

 

  if(mediaPlayer==null) {

   //实例化MediaPlayer

   //播放应用内的音乐

   //mediaPlayer = MediaPlayer.create(this, R.raw.yao);

 

   //播放内存卡中的音乐

   mediaPlayer =newMediaPlayer();

 

   //设置类型

   mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

   //设置音乐路径

   try{

    mediaPlayer.setDataSource(this, Uri.parse("storage/sdcard0/Music/a.mp3"));

    //播放之前准备一下

    mediaPlayer.prepare();

   }catch(IOException e) {

    e.printStackTrace();

   }

 

 

   //开始播放

   mediaPlayer.start();

   //图标修改为暂停的图标

   imageButton.setImageResource(android.R.drawable.ic_media_pause);

   //获取音乐的总时长

   intduration = mediaPlayer.getDuration();

   //设置进度条的最大值为音乐的总时长

   seekBar.setMax(duration);

 

   newMyThre().start();

 

  }//判断如果音乐在播放

  elseif(mediaPlayer.isPlaying()){

   //就暂停音乐

   mediaPlayer.pause();

   //图标修改为播放的图标

   imageButton.setImageResource(android.R.drawable.ic_media_play);

  }else{

   mediaPlayer.start();

   //图标修改为暂停的图标

   imageButton.setImageResource(android.R.drawable.ic_media_pause);

  }

 }

 

 //写线程内部类

 classMyThreextendsThread{

  @Override

  publicvoidrun() {

   super.run();

   while(seekBar.getProgress()<=seekBar.getMax()){

 

    //获取当前音乐播放的位置

    intcurrentPosition = mediaPlayer.getCurrentPosition();

 

    //让进度条动起来

    seekBar.setProgress(currentPosition);

   }

  }

 }

}

 

3.添加读取内存的权限

热门栏目