本文以实例形式较为详细的展示了Android录音的实现方法,分享给大家供大家参考之用。具体方法如下:
首先是xml布局文件:
<LinearLayout xmlns: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中定义按钮的点击监听器,按下按钮时开始录音,松开按钮时停止录音,类似于微信的操作方法。
// 获得控件 public void get_con(){ btn_talk = (Button)findViewById(R.id.btn_talk); btn_talk.setOnTouchListener(new OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent e) { if (e.getAction() == MotionEvent.ACTION_DOWN){ // 开始录音 start_record(); } else if (e.getAction() == MotionEvent.ACTION_UP){ // 停止录音 stop_record(); } return false; } }); }
开始录音的方法,使用了android.media.MediaRecorder录音。首先判断SD卡是否存在,如果存在根据当前时间给创建一个录音文件,保存到预定的目录中,用MediaRecorder类开始录音。
// 开始录音 public void start_record(){ if (!Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){ show_status("SD卡不存在,请插入SD卡!"); } else{ try { // 获取当前时间 cur_date = new Date(System.currentTimeMillis()); str_file = formatter.format(cur_date); // 创建保存录音的音频文件 send_sound_file = new File(Environment.getExternalStorageDirectory().getCanonicalFile() + "/talk/send"); // 如果目录不存在 if (!send_sound_file.exists()){ send_sound_file.mkdirs(); } send_sound_file = new File(Environment.getExternalStorageDirectory().getCanonicalFile() + "/talk/send/" + str_file + ".amr"); recorder = new MediaRecorder(); // 设置录音的声音来源 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 (Exception e) { show_status(e.toString()); } } }
停止录音的方法,相对简单。
// 停止录音 public void stop_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程序设计有所帮助。
本文向大家介绍Android录音mp3格式实例详解,包括了Android录音mp3格式实例详解的使用技巧和注意事项,需要的朋友参考一下 Android录音支持的格式有amr、aac,但这两种音频格式在跨平台上表现并不好。 MP3显然才是跨平台的最佳选择。 项目地址 GavinCT/AndroidMP3Recorder 实现思路概述 在分析代码前,我们需要明确几个问题 1. 如何最终生成MP3 实现
本文向大家介绍Android App调用MediaRecorder实现录音功能的实例,包括了Android App调用MediaRecorder实现录音功能的实例的使用技巧和注意事项,需要的朋友参考一下 MediaRecorder Android的MediaRecorder包含了Audio和video的记录功能,在Android的界面上,Music和Video两个应用程序都是调用MediaReco
本文向大家介绍Android实现拍照、录像、录音代码范例,包括了Android实现拍照、录像、录音代码范例的使用技巧和注意事项,需要的朋友参考一下 本文主要介绍Android实现拍照、录像、录音代码的资料,这里整理了详细的代码,有需要的小伙伴可以参考下。 RecordActivity.java 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍Android开发之登录验证实例教程,包括了Android开发之登录验证实例教程的使用技巧和注意事项,需要的朋友参考一下 本文所述实例源自一个项目开发中的登录验证功能,具体的要求就是,在Android端输入用户名和密码,在服务器端验证MySQL数据库中是否有此用户,实现之前当然首要的是,如何使Android端的数据发送到服务器端,具体的实现方法如下: 服务器端:ManageServl
提前致谢
本文向大家介绍Android 录音与播放功能的简单实例,包括了Android 录音与播放功能的简单实例的使用技巧和注意事项,需要的朋友参考一下 Android 录音与播放功能的简单实例 最近在研究Android中一些常用的功能,像地图、拍照、录音和播放的实现等等,还有一些侧滑、动画等是如何实现的。 今天就把录音和播放的实现分享一下,录音和播放比较简单,利用android内部的类即可实现。 1、先