zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

Android录音应用实例教程

Android应用 实例教程 录音
2023-06-13 09:15:45 时间

本文以实例形式较为详细的展示了Android录音的实现方法,分享给大家供大家参考之用。具体方法如下:

首先是xml布局文件:

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">

<Button
android:id="@+id/btn_talk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:enabled="false"
android:text="TALK"
android:textSize="30dp"
android:textStyle="bold"/>

</LinearLayout>

运行效果如下图所示:

MainActivity中定义按钮的点击监听器,按下按钮时开始录音,松开按钮时停止录音,类似于微信的操作方法。

//获得控件
publicvoidget_con(){

btn_talk=(Button)findViewById(R.id.btn_talk);
btn_talk.setOnTouchListener(newOnTouchListener(){
@Override
publicbooleanonTouch(Viewv,MotionEvente){
if(e.getAction()==MotionEvent.ACTION_DOWN){
//开始录音
start_record();
}
elseif(e.getAction()==MotionEvent.ACTION_UP){
//停止录音
stop_record();
}
returnfalse;
}
});
}

开始录音的方法,使用了android.media.MediaRecorder录音。首先判断SD卡是否存在,如果存在根据当前时间给创建一个录音文件,保存到预定的目录中,用MediaRecorder类开始录音。

//开始录音
publicvoidstart_record(){
if(!Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){
show_status("SD卡不存在,请插入SD卡!");
}
else{
try
{
//获取当前时间
cur_date=newDate(System.currentTimeMillis());
str_file=formatter.format(cur_date);
//创建保存录音的音频文件
send_sound_file=newFile(Environment.getExternalStorageDirectory().getCanonicalFile()+"/talk/send");
//如果目录不存在
if(!send_sound_file.exists()){
send_sound_file.mkdirs();
}
send_sound_file=newFile(Environment.getExternalStorageDirectory().getCanonicalFile()+"/talk/send/"+str_file+".amr");
recorder=newMediaRecorder();
//设置录音的声音来源
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//设置录制的声音的输出格式(必须在设置声音编码格式之前设置)
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
//设置声音编码的格式
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(send_sound_file.getAbsolutePath());
recorder.prepare();
//开始录音
recorder.start();
}
catch(Exceptione)
{
show_status(e.toString());
}
}
}

停止录音的方法,相对简单。

//停止录音
publicvoidstop_record(){
if(send_sound_file!=null&&send_sound_file.exists())
{
ses_id=ses_id+1;
//停止录音
recorder.stop();
//释放资源
recorder.release();
recorder=null;
}
super.onDestroy();
}

经过测试,录制的3gp文件可以正常播放。

希望本文所述对大家的Android程序设计有所帮助。