지금 앱개발에 있는데 녹음 부분이 잘 안되네요 녹음은 잘 되는데 제가 원하는 것은 녹음을 할때마다 뒤에 숫자가 붙여져서 각기 다른 파일로 휴대폰에 저장되는 것입니다. 예를들어 audio1.mp3, audio2.mp3, audio3.mp3.... 이렇게 말입니다.
근데 첫번째 파일만 저장이 되고 이후에는 파일이 덮여 쓰여버립니다ㅠㅠㅠ
public class MainActivity extends Activity implements OnClickListener{
int pageNum=0;
MediaPlayer mPlayer=null;
MediaRecorder mRecorder=null;
//TextView mStatusTextView;
Button mRecordButton;
Button mPlayButton;
String mFilepath;
TextView txt;
Button left, right;
String str;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("ReCoder");
txt=(TextView)findViewById(R.id.txt);
txt.setText(Integer.toString(pageNum));
left=(Button)findViewById(R.id.left);
right=(Button)findViewById(R.id.right);
left.setOnClickListener(this);
right.setOnClickListener(this);
mRecordButton = (Button) findViewById(R.id.recordButton);
mRecordButton.setText("녹음시작");
mPlayButton= (Button) findViewById(R.id.playButton);
mPlayButton.setText("재생");
mPlayButton.setEnabled(false);
//mStatusTextView=(TextView)findViewById(R.id.statusText);
//mStatusTextView.setText("녹음 대기중....");
str="audio"+pageNum + ".mp3";
mFilepath = new File(Environment.getExternalStorageDirectory(),str).toString();
}
protected void onDestroy(){
if(mRecorder != null){
mRecorder.stop();
mRecorder.release();
}
if(mPlayer != null){
mPlayer.reset();
mPlayer.release();
}
super.onDestroy();
}
public void onClickRecord(View v) throws IllegalStateException, IOException{
if(mRecorder ==null){
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.setOutputFile(mFilepath); ///
mRecorder.prepare();
mRecorder.start();
Toast.makeText(this, "녹음을 시작합니다.", Toast.LENGTH_SHORT).show();
mRecordButton.setText("녹음중지");
//mStatusTextView.setText("녹음 중");
mPlayButton.setEnabled(false);
}
else{
mRecorder.stop();
Toast.makeText(this, str + "로 저장되었습니다.", Toast.LENGTH_SHORT).show();
mRecorder.release();
mRecorder = null;
mRecordButton.setText("녹음 시작");
//mStatusTextView.setText("녹음 대기 중");
mPlayButton.setEnabled(true);
}
}
public void onClickPlay(View v) throws IllegalAccessException, IllegalStateException, IOException{
if(mPlayer != null){
mPlayer.reset();
mPlayer.release();
}
mPlayer=new MediaPlayer();
mPlayer.setDataSource(mFilepath); /////
mPlayer.prepare();
mPlayer.start();
Toast.makeText(this, "녹음된 파일을 재생합니다.", Toast.LENGTH_SHORT).show();
}
@Override
public void onClick(View v) {
txt.setText(Integer.toString(pageNum));
if(v.getId()==R.id.left) {
if(pageNum!=1) {
pageNum--;
str="audio"+pageNum + ".mp3";
}
}
else if(v.getId()==R.id.right) {
pageNum++;
str="audio"+pageNum + ".mp3";
}
}
}