Android简单的利用MediaRecorder进行录音 Android基础学习评论收藏举报

亲,你的浏览器过时了,请立即更换Chrome浏览器 X
分类: Android基础学习 33人阅读 评论(0) 收藏 举报

MediaRecorder可以进行简单的录音,由于操作简单所以可以用来进行基本的录音。

下面提供一个简单的例子,记得在Mainfest文件中添加权限。

代码如下:

  1. packagecom.ppmeet;
  2. importjava.io.IOException;
  3. importandroid.app.Activity;
  4. importandroid.graphics.PixelFormat;
  5. importandroid.media.MediaRecorder;
  6. importandroid.os.Bundle;
  7. importandroid.view.View;
  8. importandroid.view.View.OnClickListener;
  9. importandroid.view.Window;
  10. importandroid.view.WindowManager;
  11. importandroid.widget.Button;
  12. /**
  13. *classname:TestBasicAudio<BR>
  14. *classdescription:BasicRecordAudioDemo<BR>
  15. *
  16. *@version1.002011/12/01
  17. *@authorCODYY)peijiangping
  18. */
  19. publicclassTestBasicAudioextendsActivity{
  20. privateButtonbutton_start;
  21. privateButtonbutton_stop;
  22. privateMediaRecorderrecorder;
  23. publicvoidonCreate(BundlesavedInstanceState){
  24. super.onCreate(savedInstanceState);
  25. getWindow().setFormat(PixelFormat.TRANSLUCENT);//让界面横屏
  26. requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉界面标题
  27. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  28. WindowManager.LayoutParams.FLAG_FULLSCREEN);
  29. //重新设置界面大小
  30. setContentView(R.layout.main);
  31. init();
  32. }
  33. privatevoidinit(){
  34. button_start=(Button)this.findViewById(R.id.start);
  35. button_stop=(Button)this.findViewById(R.id.stop);
  36. button_stop.setOnClickListener(newAudioListerner());
  37. button_start.setOnClickListener(newAudioListerner());
  38. }
  39. classAudioListernerimplementsOnClickListener{
  40. @Override
  41. publicvoidonClick(Viewv){
  42. if(v==button_start){
  43. initializeAudio();
  44. }
  45. if(v==button_stop){
  46. recorder.stop();//停止刻录
  47. //recorder.reset();//重新启动MediaRecorder.
  48. recorder.release();//刻录完成一定要释放资源
  49. //recorder=null;
  50. }
  51. }
  52. privatevoidinitializeAudio(){
  53. recorder=newMediaRecorder();//new出MediaRecorder对象
  54. recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
  55. //设置MediaRecorder的音频源为麦克风
  56. recorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
  57. //设置MediaRecorder录制的音频格式
  58. recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
  59. //设置MediaRecorder录制音频的编码为amr.貌似android就支持amr编码。
  60. recorder.setOutputFile("/sdcard/peipei.amr");
  61. //设置录制好的音频文件保存路径
  62. try{
  63. recorder.prepare();//准备录制
  64. recorder.start();//开始录制
  65. }catch(IllegalStateExceptione){
  66. e.printStackTrace();
  67. }catch(IOExceptione){
  68. e.printStackTrace();
  69. }
  70. }
  71. }
  72. }
package com.ppmeet; import java.io.IOException; import android.app.Activity; import android.graphics.PixelFormat; import android.media.MediaRecorder; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.view.WindowManager; import android.widget.Button; /** * class name:TestBasicAudio<BR> * class description:Basic Record Audio Demo<BR> * * @version 1.00 2011/12/01 * @author CODYY)peijiangping */ public class TestBasicAudio extends Activity { private Button button_start; private Button button_stop; private MediaRecorder recorder; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFormat(PixelFormat.TRANSLUCENT);// 让界面横屏 requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉界面标题 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // 重新设置界面大小 setContentView(R.layout.main); init(); } private void init() { button_start = (Button) this.findViewById(R.id.start); button_stop = (Button) this.findViewById(R.id.stop); button_stop.setOnClickListener(new AudioListerner()); button_start.setOnClickListener(new AudioListerner()); } class AudioListerner implements OnClickListener { @Override public void onClick(View v) { if (v == button_start) { initializeAudio(); } if (v == button_stop) { recorder.stop();// 停止刻录 // recorder.reset(); // 重新启动MediaRecorder. recorder.release(); // 刻录完成一定要释放资源 // recorder = null; } } private void initializeAudio() { recorder = new MediaRecorder();// new出MediaRecorder对象 recorder.setAudioSource(MediaRecorder.AudioSource.MIC); // 设置MediaRecorder的音频源为麦克风 recorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR); // 设置MediaRecorder录制的音频格式 recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); // 设置MediaRecorder录制音频的编码为amr.貌似android就支持amr编码。 recorder.setOutputFile("/sdcard/peipei.amr"); // 设置录制好的音频文件保存路径 try { recorder.prepare();// 准备录制 recorder.start();// 开始录制 } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } }
AndroidMainfest.xml

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <manifestxmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.ppmeet"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. <uses-sdkandroid:minSdkVersion="8"/>
  7. <application
  8. android:icon="@drawable/ic_launcher"
  9. android:label="@string/app_name">
  10. <activity
  11. android:name=".TestBasicAudio"
  12. android:screenOrientation="landscape">
  13. <intent-filter>
  14. <actionandroid:name="android.intent.action.MAIN"/>
  15. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  16. </intent-filter>
  17. </activity>
  18. </application>
  19. <!--联网权限-->
  20. <uses-permissionandroid:name="android.permission.INTERNET"/>
  21. <!--往SDCard写入数据权限-->
  22. <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  23. <!--录音权限-->
  24. <uses-permissionandroid:name="android.permission.RECORD_AUDIO"/>
  25. <!--在SDCard中创建与删除文件权限-->
  26. <uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
  27. </manifest>
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ppmeet" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".TestBasicAudio" android:screenOrientation="landscape" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <!-- 联网权限 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 往SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 录音权限 --> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- 在SDCard中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> </manifest>


上一篇: RTMP中如何平稳的获取时间戳
1
0
查看评论

暂无评论

* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
个人资料

peijiangping1989
  • 访问:2888次
  • 积分:184分
  • 排名:千里之外
  • 原创:12篇
  • 转载:5篇
  • 译文:0篇
  • 评论:10条
文章存档
推荐文章
最新评论
公司简介 | 招贤纳士 | 广告服务 | 银行汇款帐号 | 联系方式 | 版权声明 | 法律顾问 | 问题报告
北京创新乐知信息技术有限公司 版权所有,京ICP证070598号
世纪乐知(北京)网络技术有限公司 提供技术支持
江苏乐知网络技术有限公司 提供商务支持
Email:webmaster@csdn.net
Copyright © 1999-2011, CSDN.NET, All Rights Reserved
GongshangLogo

MediaRecorder可以进行简单的录音,由于操作简单所以可以用来进行基本的录音。

下面提供一个简单的例子,记得在Mainfest文件中添加权限。

代码如下:

  1. packagecom.ppmeet;
  2. importjava.io.IOException;
  3. importandroid.app.Activity;
  4. importandroid.graphics.PixelFormat;
  5. importandroid.media.MediaRecorder;
  6. importandroid.os.Bundle;
  7. importandroid.view.View;
  8. importandroid.view.View.OnClickListener;
  9. importandroid.view.Window;
  10. importandroid.view.WindowManager;
  11. importandroid.widget.Button;
  12. /**
  13. *classname:TestBasicAudio<BR>
  14. *classdescription:BasicRecordAudioDemo<BR>
  15. *
  16. *@version1.002011/12/01
  17. *@authorCODYY)peijiangping
  18. */
  19. publicclassTestBasicAudioextendsActivity{
  20. privateButtonbutton_start;
  21. privateButtonbutton_stop;
  22. privateMediaRecorderrecorder;
  23. publicvoidonCreate(BundlesavedInstanceState){
  24. super.onCreate(savedInstanceState);
  25. getWindow().setFormat(PixelFormat.TRANSLUCENT);//让界面横屏
  26. requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉界面标题
  27. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  28. WindowManager.LayoutParams.FLAG_FULLSCREEN);
  29. //重新设置界面大小
  30. setContentView(R.layout.main);
  31. init();
  32. }
  33. privatevoidinit(){
  34. button_start=(Button)this.findViewById(R.id.start);
  35. button_stop=(Button)this.findViewById(R.id.stop);
  36. button_stop.setOnClickListener(newAudioListerner());
  37. button_start.setOnClickListener(newAudioListerner());
  38. }
  39. classAudioListernerimplementsOnClickListener{
  40. @Override
  41. publicvoidonClick(Viewv){
  42. if(v==button_start){
  43. initializeAudio();
  44. }
  45. if(v==button_stop){
  46. recorder.stop();//停止刻录
  47. //recorder.reset();//重新启动MediaRecorder.
  48. recorder.release();//刻录完成一定要释放资源
  49. //recorder=null;
  50. }
  51. }
  52. privatevoidinitializeAudio(){
  53. recorder=newMediaRecorder();//new出MediaRecorder对象
  54. recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
  55. //设置MediaRecorder的音频源为麦克风
  56. recorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
  57. //设置MediaRecorder录制的音频格式
  58. recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
  59. //设置MediaRecorder录制音频的编码为amr.貌似android就支持amr编码。
  60. recorder.setOutputFile("/sdcard/peipei.amr");
  61. //设置录制好的音频文件保存路径
  62. try{
  63. recorder.prepare();//准备录制
  64. recorder.start();//开始录制
  65. }catch(IllegalStateExceptione){
  66. e.printStackTrace();
  67. }catch(IOExceptione){
  68. e.printStackTrace();
  69. }
  70. }
  71. }
  72. }
package com.ppmeet; import java.io.IOException; import android.app.Activity; import android.graphics.PixelFormat; import android.media.MediaRecorder; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.view.WindowManager; import android.widget.Button; /** * class name:TestBasicAudio<BR> * class description:Basic Record Audio Demo<BR> * * @version 1.00 2011/12/01 * @author CODYY)peijiangping */ public class TestBasicAudio extends Activity { private Button button_start; private Button button_stop; private MediaRecorder recorder; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFormat(PixelFormat.TRANSLUCENT);// 让界面横屏 requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉界面标题 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // 重新设置界面大小 setContentView(R.layout.main); init(); } private void init() { button_start = (Button) this.findViewById(R.id.start); button_stop = (Button) this.findViewById(R.id.stop); button_stop.setOnClickListener(new AudioListerner()); button_start.setOnClickListener(new AudioListerner()); } class AudioListerner implements OnClickListener { @Override public void onClick(View v) { if (v == button_start) { initializeAudio(); } if (v == button_stop) { recorder.stop();// 停止刻录 // recorder.reset(); // 重新启动MediaRecorder. recorder.release(); // 刻录完成一定要释放资源 // recorder = null; } } private void initializeAudio() { recorder = new MediaRecorder();// new出MediaRecorder对象 recorder.setAudioSource(MediaRecorder.AudioSource.MIC); // 设置MediaRecorder的音频源为麦克风 recorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR); // 设置MediaRecorder录制的音频格式 recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); // 设置MediaRecorder录制音频的编码为amr.貌似android就支持amr编码。 recorder.setOutputFile("/sdcard/peipei.amr"); // 设置录制好的音频文件保存路径 try { recorder.prepare();// 准备录制 recorder.start();// 开始录制 } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } }
AndroidMainfest.xml

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <manifestxmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.ppmeet"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. <uses-sdkandroid:minSdkVersion="8"/>
  7. <application
  8. android:icon="@drawable/ic_launcher"
  9. android:label="@string/app_name">
  10. <activity
  11. android:name=".TestBasicAudio"
  12. android:screenOrientation="landscape">
  13. <intent-filter>
  14. <actionandroid:name="android.intent.action.MAIN"/>
  15. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  16. </intent-filter>
  17. </activity>
  18. </application>
  19. <!--联网权限-->
  20. <uses-permissionandroid:name="android.permission.INTERNET"/>
  21. <!--往SDCard写入数据权限-->
  22. <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  23. <!--录音权限-->
  24. <uses-permissionandroid:name="android.permission.RECORD_AUDIO"/>
  25. <!--在SDCard中创建与删除文件权限-->
  26. <uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
  27. </manifest>
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ppmeet" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".TestBasicAudio" android:screenOrientation="landscape" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <!-- 联网权限 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 往SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 录音权限 --> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- 在SDCard中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> </manifest>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值