【Main.java】
package net.blogjava.mobile.record; import java.io.File; import android.app.Activity; import android.media.MediaPlayer; import android.media.MediaRecorder; import android.media.MediaPlayer.OnCompletionListener; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class Main extends Activity implements OnClickListener { private MediaPlayer mediaPlayer; private MediaRecorder mediaRecorder = new MediaRecorder(); private File audioFile; @Override public void onClick(View view) { try { String msg = ""; switch (view.getId()) { case R.id.btnStart: mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mediaRecorder .setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); mediaRecorder .setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); audioFile = File.createTempFile("record_", ".wav"); Log.d("Main", audioFile.getAbsolutePath()); mediaRecorder.setOutputFile(audioFile.getAbsolutePath()); mediaRecorder.prepare(); mediaRecorder.start(); msg = "正在录音..."; break; case R.id.btnStop: if (audioFile != null) { mediaRecorder.stop(); } msg = "已经停止录音."; break; case R.id.btnPlay: if (audioFile != null) { mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(audioFile.getAbsolutePath()); mediaPlayer.prepare(); mediaPlayer.start(); mediaPlayer .setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { setTitle("录音播放完毕."); } }); msg = "正在播放录音..."; } break; } setTitle(msg); Toast.makeText(this, msg, Toast.LENGTH_LONG).show(); } catch (Exception e) { setTitle(e.getMessage()); } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btnStart = (Button) findViewById(R.id.btnStart); Button btnStop = (Button) findViewById(R.id.btnStop); Button btnPlay = (Button) findViewById(R.id.btnPlay); btnStart.setOnClickListener(this); btnStop.setOnClickListener(this); btnPlay.setOnClickListener(this); } }
【main.xml】
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <Button android:id="@+id/btnStart" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="录音" /> <Button android:id="@+id/btnStop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="停止" /> <Button android:id="@+id/btnPlay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="播放" /> </LinearLayout>
【注意清单文件别忘记加权限】
<uses-permission android:name="android.permission.RECORD_AUDIO" />