分类: Android基础学习
2011-12-02 10:27 33人阅读 评论(0) 收藏 举报
MediaRecorder可以进行简单的录音,由于操作简单所以可以用来进行基本的录音。
下面提供一个简单的例子,记得在Mainfest文件中添加权限。
代码如下:
- packagecom.ppmeet;
- importjava.io.IOException;
- importandroid.app.Activity;
- importandroid.graphics.PixelFormat;
- importandroid.media.MediaRecorder;
- importandroid.os.Bundle;
- importandroid.view.View;
- importandroid.view.View.OnClickListener;
- importandroid.view.Window;
- importandroid.view.WindowManager;
- importandroid.widget.Button;
- /**
- *classname:TestBasicAudio<BR>
- *classdescription:BasicRecordAudioDemo<BR>
- *
- *@version1.002011/12/01
- *@authorCODYY)peijiangping
- */
- publicclassTestBasicAudioextendsActivity{
- privateButtonbutton_start;
- privateButtonbutton_stop;
- privateMediaRecorderrecorder;
- publicvoidonCreate(BundlesavedInstanceState){
- 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();
- }
- privatevoidinit(){
- button_start=(Button)this.findViewById(R.id.start);
- button_stop=(Button)this.findViewById(R.id.stop);
- button_stop.setOnClickListener(newAudioListerner());
- button_start.setOnClickListener(newAudioListerner());
- }
- classAudioListernerimplementsOnClickListener{
- @Override
- publicvoidonClick(Viewv){
- if(v==button_start){
- initializeAudio();
- }
- if(v==button_stop){
- recorder.stop();//停止刻录
- //recorder.reset();//重新启动MediaRecorder.
- recorder.release();//刻录完成一定要释放资源
- //recorder=null;
- }
- }
- privatevoidinitializeAudio(){
- recorder=newMediaRecorder();//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(IllegalStateExceptione){
- e.printStackTrace();
- }catch(IOExceptione){
- e.printStackTrace();
- }
- }
- }
- }
AndroidMainfest.xml
- <?xmlversion="1.0"encoding="utf-8"?>
- <manifestxmlns:android="http://schemas.android.com/apk/res/android"
- package="com.ppmeet"
- android:versionCode="1"
- android:versionName="1.0">
- <uses-sdkandroid:minSdkVersion="8"/>
- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name">
- <activity
- android:name=".TestBasicAudio"
- android:screenOrientation="landscape">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- </application>
- <!--联网权限-->
- <uses-permissionandroid:name="android.permission.INTERNET"/>
- <!--往SDCard写入数据权限-->
- <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
- <!--录音权限-->
- <uses-permissionandroid:name="android.permission.RECORD_AUDIO"/>
- <!--在SDCard中创建与删除文件权限-->
- <uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
- </manifest>
上一篇:
RTMP中如何平稳的获取时间戳
-
顶
- 1
-
踩
- 0
暂无评论
文章分类
- Android基础学习(1)
- Android流媒体学习(0)
阅读排行
- Android ListView 自定义... (1172)
- android 线程中的ui问题 Han... (269)
- ActivityGroup 实现分页和自... (237)
- 关于java 的科学计算算法(前,中,后... (155)
- Android抓取手机视频数据流。 (128)
- FLV帧全面分析。研究心得。 (121)
- Flash中播放视频和音频流(rtmp协... (112)
- RTMP中如何平稳的获取时间戳 (107)
- Flash采集音频和视频发布到red5服... (93)
- 最佳视频播放器:Adobe Flash ... (75)
评论排行
推荐文章
最新评论
- RTMP中如何平稳的获取时间戳
haomeiling1122: 嘿嘿,谢谢,学习中,好东西~!
- ActivityGroup 实现分页和自定义标签(内有GridView的点击背景样式的改变方法)
lichangjun0746: 很不错!学习了!
- Android抓取手机视频数据流。
peijiangping1989: @talentprince:put到发送服务器的类哦。还有帧的长度不是固定的,仔细看代码。。。
- Android抓取手机视频数据流。
talentprince: 你好,你的发送线程里面是怎么做的呢 put到什么地方去?发送是帧还是固定长度发
- Android抓取手机视频数据流。
peijiangping1989: @Stephen_Chen:看我前面几篇博客。那个就是avc中的数据哦
- Android抓取手机视频数据流。
Stephen_Chen: 感谢你的代码,我想问问byte[] aa = { 0x01, 0x42, (byte) ....这串...
- Android ListView 自定义用法(ListView 实现单选功能)
yykxlgh: 不错
- android 线程中的ui问题 Handler的基本使用 关于获取动态时间在ui的问题
Ordosbxy: thank you!
- 关于java 的科学计算算法(前,中,后缀表达式的转换)——计算器制作的心得
luimangtu:
- 关于java 的科学计算算法(前,中,后缀表达式的转换)——计算器制作的心得
lvjingxian: 嘻嘻 ,写的好好笑哇 。。
MediaRecorder可以进行简单的录音,由于操作简单所以可以用来进行基本的录音。
下面提供一个简单的例子,记得在Mainfest文件中添加权限。
代码如下:
- packagecom.ppmeet;
- importjava.io.IOException;
- importandroid.app.Activity;
- importandroid.graphics.PixelFormat;
- importandroid.media.MediaRecorder;
- importandroid.os.Bundle;
- importandroid.view.View;
- importandroid.view.View.OnClickListener;
- importandroid.view.Window;
- importandroid.view.WindowManager;
- importandroid.widget.Button;
- /**
- *classname:TestBasicAudio<BR>
- *classdescription:BasicRecordAudioDemo<BR>
- *
- *@version1.002011/12/01
- *@authorCODYY)peijiangping
- */
- publicclassTestBasicAudioextendsActivity{
- privateButtonbutton_start;
- privateButtonbutton_stop;
- privateMediaRecorderrecorder;
- publicvoidonCreate(BundlesavedInstanceState){
- 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();
- }
- privatevoidinit(){
- button_start=(Button)this.findViewById(R.id.start);
- button_stop=(Button)this.findViewById(R.id.stop);
- button_stop.setOnClickListener(newAudioListerner());
- button_start.setOnClickListener(newAudioListerner());
- }
- classAudioListernerimplementsOnClickListener{
- @Override
- publicvoidonClick(Viewv){
- if(v==button_start){
- initializeAudio();
- }
- if(v==button_stop){
- recorder.stop();//停止刻录
- //recorder.reset();//重新启动MediaRecorder.
- recorder.release();//刻录完成一定要释放资源
- //recorder=null;
- }
- }
- privatevoidinitializeAudio(){
- recorder=newMediaRecorder();//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(IllegalStateExceptione){
- e.printStackTrace();
- }catch(IOExceptione){
- e.printStackTrace();
- }
- }
- }
- }
AndroidMainfest.xml
- <?xmlversion="1.0"encoding="utf-8"?>
- <manifestxmlns:android="http://schemas.android.com/apk/res/android"
- package="com.ppmeet"
- android:versionCode="1"
- android:versionName="1.0">
- <uses-sdkandroid:minSdkVersion="8"/>
- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name">
- <activity
- android:name=".TestBasicAudio"
- android:screenOrientation="landscape">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- </application>
- <!--联网权限-->
- <uses-permissionandroid:name="android.permission.INTERNET"/>
- <!--往SDCard写入数据权限-->
- <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
- <!--录音权限-->
- <uses-permissionandroid:name="android.permission.RECORD_AUDIO"/>
- <!--在SDCard中创建与删除文件权限-->
- <uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
- </manifest>