1、从源文件中播放
package com.demo.android.play;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
/**
* 从源文件中播放
*/
public class MediaPlayActivity extends Activity {
private final static String TAG="MediaPlayActivity";
private MediaPlayer mediaPlayer;
private TextView mp3Name;
private Button startBtn;
private Button pauseBtn;
private Button stopBtn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViews();
}
private void findViews() {
mp3Name=(TextView) findViewById(R.id.mp3Name);
startBtn=(Button) findViewById(R.id.startBtn);
pauseBtn=(Button) findViewById(R.id.pauseBtn);
stopBtn=(Button) findViewById(R.id.stopBtn);
mp3Name.setText("文件名称:hebe.mp3");
startBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
start();
}
});
pauseBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pause();
}
});
stopBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stop();
}
});
}
/**
* MP3开始播放
*/
public void start(){
try {
if(mediaPlayer!=null){
if(mediaPlayer.isPlaying()){
return;
}
}
stop();
//加载资源文件中的MP3
mediaPlayer=MediaPlayer.create(this, R.raw.hebe);
//文件播放完毕监听事件
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
//解除资源与MediaPlayer的赋值关系,让资源可以为其程序利用
mediaPlayer.release();
startBtn.setText("播放");
}
});
//文件播放错误监听
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
//解除资源与MediaPlayer的赋值关系,让资源可以为其程序利用
mediaPlayer.release();
return false;
}
});
mediaPlayer.start();
startBtn.setText("正在播放");
pauseBtn.setText("暂停");
} catch (IllegalStateException e) {
Log.i(TAG, "MP3开始播放方法[start()]出现异常", e);
}
}
/**
* MP3暂停播放
*/
public void pause(){
try {
if(mediaPlayer!=null){
if(mediaPlayer.isPlaying()){
mediaPlayer.pause();
pauseBtn.setText("取消播放");
}else{
mediaPlayer.start();
pauseBtn.setText("暂停");
}
}
} catch (IllegalStateException e) {
Log.i(TAG, "MP3暂停播放方法[pause()]出现异常", e);
}
}
/**
* MP3停止播放
*/
private void stop() {
try {
if(mediaPlayer!=null){
mediaPlayer.stop();
startBtn.setText("播放");
pauseBtn.setText("暂停");
}
} catch (IllegalStateException e) {
Log.i(TAG, "MP3停止播放方法(stop())出现异常", e);
}
}
}