一个非常简单的录音机
有四个功能:
开始录音,结束录音,播放录音,结束播放
需要添加权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
代码很简单没什么好讲解的,直接贴吧
就当做以后要用不用到处乱找:
package com.example.recorddemo;
import java.io.File;
import java.io.IOException;
import android.media.MediaPlayer;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
private static final String LOG_TAG = "recorderdemo";
private MediaRecorder mediaRecorder = null;
private MediaPlayer mediaPlayer = null;
private boolean bStart;
private String filename="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bStart = false;
File sdir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/gaga");
if(!sdir.exists()){
sdir.mkdirs();
}
filename = Environment.getExternalStorageDirectory().getAbsolutePath() + "/gaga/jctest.3gp";
findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startRec();
}
});
findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
stopRec();
}
});
findViewById(R.id.button3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startPlay();
}
});
findViewById(R.id.button4).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
stopPlay();
}
});
}
private void init(){
this.mediaRecorder = new MediaRecorder();
}
private void startPlay(){
stopPlay();
try{
this.mediaPlayer = new MediaPlayer();
this.mediaPlayer.setDataSource(filename);
mediaPlayer.prepare();
mediaPlayer.start();
}catch(IOException e){
Log.e(LOG_TAG, "start mediaplayer error");
}
}
private void stopPlay(){
if(mediaPlayer != null){
mediaPlayer.release();
mediaPlayer = null;
}
}
private void startRec(){
stopRec();
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setOutputFile(filename);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try{
mediaRecorder.prepare();
}catch(IOException e){
Log.e(LOG_TAG, "start rec preprare error");
e.printStackTrace();
}
mediaRecorder.start();
}
private void stopRec(){
if(mediaRecorder == null) return;
mediaRecorder.stop();
mediaRecorder.release();
mediaRecorder = null;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}