录音类MediaRecorder的简单应用-录音频
来源:互联网 发布:部队优化营商环境总结 编辑:程序博客网 时间:2024/04/28 23:23
MediaRecorder类可用类录制音频文件,它直接将音频数据写入到文件里去。而AudioRecord类是直接获取到pcm音频数据.对外界来说,MediaRecorder向外提供音频文件,而AudioRecord向外提供音频数据流,这是主要两者区别之一。下面小结下MediaRecorder的简单应用步骤:
第一步:实例化一个对象:mRecord = new MediaRecorder();
第二步:设置音频来源:mRecord.setAudioResource(*);
第三步:设置输出音频文件的格式:mRecord.setOutFormat(*);
第四步:设置输出的音频编码方式、采样率、编码位率:一般设置编码方式即可,其他设置为默认值mRecord.setEncorder(*);
第五步:设置音频写入的文件:mRecord.setOutFile(*);
第六步:准备:mRecord.prepare();
第七步:开始录音:mRecord.start();
第八步:停止录音:mRecord.stop(),然后再记得释放资源mRecord.release();
注:记得添加权限:
<uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
具体代码:
public class MyAudioRecordActivity extends Activity{/** Called when the activity is first created. */MediaRecorder mRecord;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);initWidget();}private void initWidget(){// TODO Auto-generated method stubButton play = (Button) findViewById(R.id.start);play.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){// TODO Auto-generated method stubif (mRecord == null){boolean result = startRecord();if(!result){stopRecord();}}}});Button stop = (Button) findViewById(R.id.stop);stop.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){// TODO Auto-generated method stubstopRecord();}});}private void stopRecord(){if (mRecord != null){mRecord.stop();mRecord.release();mRecord = null;}}private boolean startRecord(){/*实例化对象*/mRecord = new MediaRecorder();/*设置音频输入源*/mRecord.setAudioSource(MediaRecorder.AudioSource.MIC);/*设置音频输出格式*/mRecord.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);/*设置音频编码方式*/mRecord.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);/*设置音频写入的文件*/File file = createFile(".arm");mRecord.setOutputFile(file.getAbsolutePath());/*准备录音频*/try{mRecord.prepare();}catch (IllegalStateException e){// TODO Auto-generated catch blocke.printStackTrace();return false;}catch (IOException e){// TODO Auto-generated catch blocke.printStackTrace();return false;}/*开始录像*/mRecord.start();return true;}/*创建指定后缀名的文件*/private File createFile(String suffix){if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { return null; }File sdcardDir = Environment.getExternalStorageDirectory();Time t = new Time();t.setToNow();String filename = null;try{filename = sdcardDir.getCanonicalPath()+ String.format("/AudioTest%04d%02d%02d%02d%02d%02d"+ suffix, t.year, t.month + 1, t.monthDay, t.hour,t.minute, t.second);}catch (IOException e){e.printStackTrace();return null;}File file = new File(filename);if (!file.exists()){try{file.createNewFile();}catch (IOException e){// TODO Auto-generated catch blocke.printStackTrace();}}return file;}/*创建底部退出菜单*/public boolean onCreateOptionsMenu(Menu menu){super.onCreateOptionsMenu(menu);MenuItem item = menu.add(Menu.NONE, Menu.NONE, Menu.NONE, "Exit");item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener(){public boolean onMenuItemClick(MenuItem item){System.exit(0);return true;}});return true;}}
demo下载:
http://download.csdn.net/detail/sunnyfans/4939776
- 录音类MediaRecorder的简单应用-录音频
- Android简单的利用MediaRecorder进行录音
- Android简单的利用MediaRecorder进行录音
- Android简单的利用MediaRecorder进行录音
- android 通过MediaRecorder实现简单的录音
- Android简单的利用MediaRecorder进行录音
- Android音频录制MediaRecorder之简易的录音软件
- 使用MediaRecorder类实现录音的功能
- android录音 MediaRecorder类的使用简介
- MediaRecorder(录音)的用法
- Android音频录制MediaRecorder之简易的录音软件实现代码
- Android音频录制MediaRecorder之简易的录音软件实现代码
- android MediaRecorder的简单应用-录像
- Android --- 多媒体应用(MediaRecorder 录音)
- MediaRecorder录音
- Mediarecorder录音
- MediaRecorder录音
- MediaRecorder 录音
- 关于Map的讲解实例电话本
- 修改Administrator帐号
- 凸优化第一课-介绍
- 细数Objective-C中的回调机制
- IOS越狱开发之开机启动APP
- 录音类MediaRecorder的简单应用-录音频
- tolower 把字符转换成小写字母,非字母字符不做出处理
- java遍历目录中的文件
- Java JDBC读取二进制类型数据(BLOB)
- UIDevice类实现电池状态的检测
- 删除调用指定文件的进程的方法
- 单例设计模式
- java中list,set和map 的区别
- MinGW的安装 (可在windows 下 使用Linux 环境进行gcc编程)