最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
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.添加读取内存的权限
-
下一个: 支付宝能处理那些交通事故