一个播放器基本上就有那几个功能:
1.播放
2.暂停
3.停止
4.调高音量
5.调低音量
在android系统里已经在写好这些功能实现的方法,对开发者只需要调用他的对象及方法就可以轻松实现以上这些功能,下面我就用代码来把他们一一实现。在开始写代码前先创建一个虚拟SD卡,并在SD卡里放放一个mp3格式的文件mxsf.mp3
import java.io.File;
import java.io.IOException;
import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener{
private Button btn_play;
private Button btn_stop;
private Button btn_pause;
private Button btn_upVolume;
private Button btn_downVolume;
private MediaPlayer mediaPlayer;
private AudioManager audio;
private int position=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mediaPlayer=new MediaPlayer(); //实例化播放器对象
audio=(AudioManager) getSystemService(AUDIO_SERVICE); //获取系统音频管理器
findViews();
setListeners();
}
//设置监听器
private void setListeners() {
btn_play.setOnClickListener(this);
btn_stop.setOnClickListener(this);
btn_pause.setOnClickListener(this);
btn_upVolume.setOnClickListener(this);
btn_downVolume.setOnClickListener(this);
}
//初始化UI
private void findViews() {
btn_play=(Button) findViewById(R.id.btn_play);
btn_stop=(Button) findViewById(R.id.btn_stop);
btn_pause=(Button) findViewById(R.id.btn_pause);
btn_upVolume=(Button) findViewById(R.id.btn_upVolume);
btn_downVolume=(Button) findViewById(R.id.btn_downVolume);
}
/*监听器事件*/
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_play:
playmuisic(); //播放
break;
case R.id.btn_pause:
mediaPlayer.pause(); //暂停
position=mediaPlayer.getCurrentPosition(); //记录当前位置
break;
case R.id.btn_stop:
mediaPlayer.stop(); //停止
break;
case R.id.btn_upVolume:
//调高音量
audio.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, 0);
break;
case R.id.btn_downVolume:
//调低音量
audio.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, 0);
break;
}
}
private void playmuisic(){
/*要播放的文件*/
File file=new File(Environment.getExternalStorageDirectory()+"/muisic/mxsf.mp3");
Log.i("hgq", file.getAbsolutePath()); //检查播放文件路径是否正确
try {
mediaPlayer.reset(); //重置为初始状态
mediaPlayer.setDataSource(file.getAbsolutePath()); //设置要播放的文件
mediaPlayer.prepare(); //数据缓冲
mediaPlayer.start(); //开始播放
mediaPlayer.seekTo(position); //从某个位置开始播放
position=0; //播放完毕之后播放位置恢复为0
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}