Andorid 实例源码:音频录制

来源:互联网 发布:如何优化你的页面 编辑:程序博客网 时间:2024/05/01 00:26

package org.crazyit.sound;import java.io.File;import android.app.Activity;import android.media.MediaRecorder;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.view.View.OnClickListener;import android.widget.ImageButton;import android.widget.Toast;/** * Description: * <br/>site: <a href="http://www.crazyit.org">crazyit.org</a> * <br/>Copyright (C), 2001-2014, Yeeku.H.Lee * <br/>This program is protected by copyright laws. * <br/>Program Name: * <br/>Date: * @author  Yeeku.H.Lee kongyeeku@163.com * @version  1.0 */public class RecordSound extends Activityimplements OnClickListener{// 定义界面上的两个按钮ImageButton record, stop;// 系统的音频文件File soundFile;MediaRecorder mRecorder;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);// 获取程序界面中的两个按钮record = (ImageButton) findViewById(R.id.record);stop = (ImageButton) findViewById(R.id.stop);// 为两个按钮的单击事件绑定监听器record.setOnClickListener(this);stop.setOnClickListener(this);}@Overridepublic void onDestroy(){if (soundFile != null && soundFile.exists()){// 停止录音mRecorder.stop();// 释放资源mRecorder.release();mRecorder = null;}super.onDestroy();}@Overridepublic void onClick(View source){switch (source.getId()){// 单击录音按钮case R.id.record:if (!Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){Toast.makeText(RecordSound.this, "SD卡不存在,请插入SD卡!",Toast.LENGTH_SHORT).show();return;}try{// 创建保存录音的音频文件soundFile = new File(Environment.getExternalStorageDirectory().getCanonicalFile()+ "/sound.amr");mRecorder = new MediaRecorder();// 设置录音的声音来源mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);// 设置录制的声音的输出格式(必须在设置声音编码格式之前设置)mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);// 设置声音编码的格式mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);mRecorder.setOutputFile(soundFile.getAbsolutePath());mRecorder.prepare();// 开始录音mRecorder.start();  //①}catch (Exception e){e.printStackTrace();}break;// 单击停止按钮case R.id.stop:if (soundFile != null && soundFile.exists()){// 停止录音mRecorder.stop();  //②// 释放资源mRecorder.release();  //③mRecorder = null;}break;}}}


源码下载链接: http://pan.baidu.com/s/1sjtJ3uX 密码: 93pt

1 0