이번 소스는 음성만 재생하는 간단한 소스이다.
MediaPlayer class는 따로 두었다.
아래는 MediaRecord소스이다.
import android.media.MediaPlayer;
import android.os.Environment;
import android.util.Log;
import java.io.File;
/**
* Created by sona
*/
public class MediaPlayer {
private final String TAG = "MediaPlayer";
private final File RECORDED_FILE = Environment.getExternalStorageDirectory();
private MediaPlayer player;
private String mFileName;
public MediaPlayer() {
mFileName = RECORDED_FILE.getAbsolutePath()+"/audio_milo.mp3";
}
/**
* Audio Play
*/
public void play(){
if (player != null) {
player.stop();
player.release();
player = null;
}
Log.d(TAG, "PLAY AUDIO");
try {
player = new MediaPlayer();
player.setDataSource(mFileName);
player.prepare();
player.start();
} catch (Exception e) {
Log.e(TAG, "Audio play failed.", e);
}
}
/**
* Audio Play Pause
*/
public void playPause(){
if(player.isPlaying()){
player.pause();
} else {
player.start();
}
}
/**
* Audio Play Stop
*/
public void playStop(){
if (player == null)
return;
Log.d(TAG,"PLAY STOP");
player.stop();
player.release();
player = null;
}
/**
* Mediaplayer Release
*/
public void release(){
if (player != null) {
player.release();
player = null;
}
}
/**
* MediaPlayer Seek duration
* @param frame : video player frame (Refer : MLPlayer.onPlaying)
*/
public void seekTo(int frame){
if(player != null){
player.seekTo(frame * 1000);
}
}
아래는 activity에서 test로 사용하는 코드이다.
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
public class MediaRecordActivity extends Activity implements View.OnClickListener{
private Button audioRecordPlay;
private Button audioRecordPlayStop;
private Button audioSeekButton;
private MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.media_activity);
initialize();
}
@Override
protected void onPause() {
super.onPause();
mediaPlayer.release();
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.record_button:
mediaPlayer.start();
break;
case R.id.record_stop_button:
mediaPlayer.stop();
break;
case R.id.play_start_button:
mediaPlayer.play();
break;
case R.id.play_stop_button:
mediaPlayer.playPause();
break;
case R.id.seek_button:
// seekTo unit = millisecond
mediaPlayer.seekTo(3000);
break;
}
}
private void initialize(){
audioRecordPlay = (Button) findViewById(R.id.play_start_button);
audioRecordPlayStop = (Button) findViewById(R.id.play_stop_button);
audioSeekButton = (Button) findViewById(R.id.seek_button);
audioRecordPlay.setOnClickListener(this);
audioRecordPlayStop.setOnClickListener(this);
audioSeekButton.setOnClickListener(this);
mediaPlayer = new MediaPlayer();
}
}
댓글 없음:
댓글 쓰기