package com.example.mediatest;
import java.io.IOException;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener, OnCompletionListener, OnPreparedListener {
private Button playBtn;
private Button stopBtn;
private MediaPlayer mediaPlayer;
private String startBtnStr;
private String pauseBtnStr;
private final String AUDIO_PATH = "//sdcard//recording-20131114002201.3gpp";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initUI();
mediaPlayer = new MediaPlayer();
mediaPlayer.setOnCompletionListener(this);
mediaPlayer.setOnPreparedListener(this);
try {
mediaPlayer.setDataSource(AUDIO_PATH);
mediaPlayer.prepare();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void initUI() {
startBtnStr = this.getResources().getString(R.string.play_playbtn);
pauseBtnStr = this.getResources().getString(R.string.pause_playbtn);
playBtn = (Button) findViewById(R.id.playbtn);
playBtn.setOnClickListener(this);
stopBtn = (Button) findViewById(R.id.stopbtn);
stopBtn.setOnClickListener(this);
}
@Override
public void onClick(View view) {
int viewId = view.getId();
switch (viewId) {
case R.id.playbtn:
play();
break;
case R.id.stopbtn:
stop();
break;
}
}
private synchronized void stop() {
if (mediaPlayer == null) {
return;
}
mediaPlayer.stop();
mediaPlayer.reset();
try {
mediaPlayer.setDataSource(AUDIO_PATH);
mediaPlayer.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
playBtn.setText(startBtnStr);
}
private synchronized void play() {
if (mediaPlayer == null) {
return;
}
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause();
playBtn.setText(startBtnStr);
} else {
mediaPlayer.start();
playBtn.setText(pauseBtnStr);
}
}
@Override
protected void onPause() {
releaseMediaPlayer();
super.onPause();
}
private void releaseMediaPlayer() {
if (mediaPlayer != null) {
mediaPlayer.pause();
mediaPlayer.stop();
mediaPlayer.release();
}
}
@Override
protected void onDestroy() {
mediaPlayer = null;
super.onDestroy();
}
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
playBtn.setText(startBtnStr);
}
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
playBtn.setEnabled(true);
stopBtn.setEnabled(true);
}
}