package com.cutter;
import java.io.File;
import java.io.IOException;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.media.MediaPlayer;
import android.media.MediaRecorder;
import android.media.MediaPlayer.OnCompletionListener;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.SystemClock;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
public class RecorderActivity extends Activity {
private static final String APP_TAG = "com.cutter";
private MediaRecorder recorder;
private MediaPlayer player;
private TextView resultView;
private boolean recording = false;
private boolean playing = false;
private File outfile = null;
private boolean mWasGetContentIntent;
private boolean mShowAll;
private static final int REQUEST_CODE_EDIT = 1;
public Button dis, edPlay;
public ImageButton btPlay, stp, btRecord;
public Chronometer mChronometer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.recorder);
resultView = (TextView) findViewById(R.id.output);
ImageButton btRecord = (ImageButton) findViewById(R.id.btRecord);
btRecord.setOnClickListener(handleRecordClick);
ImageButton btPlay = (ImageButton) findViewById(R.id.btplay);
btPlay.setOnClickListener(handlePlayClick);
ImageButton stp = (ImageButton) findViewById(R.id.stopPlay);
stp.setOnClickListener(stop);
mChronometer = (Chronometer) findViewById(R.id.time);
btPlay.setEnabled(false);
stp.setEnabled(false);
}
private final OnClickListener handleRecordClick = new OnClickListener() {
@Override
public void onClick(View view) {
startRecord();
ImageButton btRecord = (ImageButton) findViewById(R.id.btRecord);
ImageButton btPlay = (ImageButton) findViewById(R.id.btplay);
ImageButton stp = (ImageButton) findViewById(R.id.stopPlay);
btRecord.setEnabled(false);
btPlay.setEnabled(false);
stp.setEnabled(true);
}
};
private final OnClickListener handlePlayClick = new OnClickListener() {
@Override
public void onClick(View view) {
ImageButton btRecord = (ImageButton) findViewById(R.id.btRecord);
ImageButton btPlay = (ImageButton) findViewById(R.id.btplay);
ImageButton stp = (ImageButton) findViewById(R.id.stopPlay);
btRecord.setEnabled(false);
btPlay.setEnabled(false);
stp.setEnabled(true);
startPlay();
}
};
private void startRecord() {
mChronometer.setBase(SystemClock.elapsedRealtime());
mChronometer.start();
recorder = new MediaRecorder();
player = new MediaPlayer();
try {
// the soundfile
File storageDir = new File(Environment
.getExternalStorageDirectory(), "/audio/");
storageDir.mkdir();
outfile = File.createTempFile("Recording", ".3gp", storageDir);
// init recorder
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(outfile.getAbsolutePath());
// init player
player.setDataSource(outfile.getAbsolutePath());
} catch (IOException e) {
} catch (IllegalArgumentException e) {
} catch (IllegalStateException e) {
}
printResult("Recording........");
try {
recorder.prepare();
recorder.start();
recording = true;
} catch (IllegalStateException e) {
} catch (IOException e) {
}
}
ImageView on = (ImageView) findViewById(R.id.onrec);
ImageView off = (ImageView) findViewById(R.id.offrec);
off.setVisibility(View.VISIBLE);
on.setVisibility(View.GONE);
mChronometer.stop();
printResult("Press Record Button");
recorder.stop();
recorder.reset();
recorder.release();
recording = false;
}
private void startPlay() {
printResult("Playing...");
try {if(!player.isPlaying()){
player.prepare();
player.start();}
} catch (IllegalStateException e) {
} catch (IOException e) {
}
player.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
ImageButton btRecord = (ImageButton) findViewById(R.id.btRecord);
ImageButton btPlay = (ImageButton) findViewById(R.id.btplay);
ImageButton stp = (ImageButton) findViewById(R.id.stopPlay);
btRecord.setEnabled(true);
btPlay.setEnabled(true);
stp.setEnabled(false);
mp.stop();
}
});
}
private void stopPlay() {
printResult("Press Record Button");
if(player.isPlaying()){
player.stop();}
}
private void printResult(String result) {
resultView.setText(result);
}
private final OnClickListener stop = new OnClickListener() {
@Override
public void onClick(View view) {
ImageButton btRecord = (ImageButton) findViewById(R.id.btRecord);
ImageButton btPlay = (ImageButton) findViewById(R.id.btplay);
ImageButton stp = (ImageButton) findViewById(R.id.stopPlay);
btRecord.setEnabled(true);
btPlay.setEnabled(true);
stp.setEnabled(false);
if(recording){stopRecord();}
if(player.isPlaying()){stopPlay();}
}
};