MP3文件的播放功能非常的普遍,其中一种简单的播放方式就是利用MediaPlayer类来实现。
其具体实现如下:
初始化一个MediaPlayer对象;
利用MediaPlayer.create()方法来创建一个播放器的资源;
调用MediaPlayer的start/pause/stop方式实现播放状态调节。
具体实现代码:
public class MainActivity extends AppCompatActivity {
//显示播放的状态
private TextView textView;
//三个按钮控制播放的壮态
private ImageButton play,pause,stop;
//播放器对象
private MediaPlayer mediaPlayer;
//表示暂停与否
private boolean isPause = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//取得对应显示元素
textView = (TextView)findViewById(R.id.textview);
play = (ImageButton)findViewById(R.id.imagebutton_play);
pause = (ImageButton)findViewById(R.id.imagebutton_pause);
stop = (ImageButton)findViewById(R.id.imagebutton_stop);
//初始化对象
mediaPlayer = new MediaPlayer();
mediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.yinyue);
//播放按钮的点击
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
if (mediaPlayer != null){
mediaPlayer.stop();
}else {
mediaPlayer = new MediaPlayer();
mediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.yinyue);
}
//在mediaPlayer取得播放资源与停止stop()之后
//要准备PlayBack之前一定要使用MediaPlayer.prepare()
mediaPlayer.prepare();
//开始或恢复播放
mediaPlayer.start();
//改变状态显示
textView.setText("播放中...");
} catch (IOException e) {
e.printStackTrace();
}
}
});
//暂停播放的按钮的点击
pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
if (mediaPlayer != null){
//判断是不是播放状态
if (isPause == false){ // 正在播放
mediaPlayer.pause();
isPause = true;
textView.setText("暂停中...");
}else if(isPause == true){ //暂停
mediaPlayer.start();
isPause = false;
textView.setText("播放中...");
}
}
}catch (Exception e){
e.printStackTrace();
}
}
});
//停止按钮点击
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try{
if (mediaPlayer != null){
mediaPlayer.stop();
textView.setText("停止中...");
}
}catch (Exception e){
e.printStackTrace();
}
}
});
//播放完毕后 会运行Listener,覆盖文件播放完毕的Listener更改状态显示
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
try{
// 解除资源与MediaPlayer的赋值关系 让资源可以被其他程序运用
mediaPlayer.release();
textView.setText("播放完毕");
}catch (Exception e){
textView.setText("");
e.printStackTrace();
}
}
});
//播放出错时候 会运行Listener 覆盖错误处理事件 更新播放状态显示
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mediaPlayer, int i, int i1) {
try {
//发生错误的时候 解除资源与MediaPlayer的赋值关系 让资源可以被其他程序运用
mediaPlayer.release();
}catch (Exception e){
e.printStackTrace();
}
return false;
}
});
}
}
网友评论