Android 录音
2015-07-15 18:42
561 查看
MediaRecorder类具体解释
移动电话通常具有一个麦克风和照相机,和Android该系统将能够利用这些硬件的优点来记录的音频和视频。添加支持的音频和视频录制,Android该系统提供了MediaRecorder的类。该类的使用也很easy。以下让我们来了解一下这个类
一、结构
java.lang.Object->android.media.MediaRecorder二、类概述:
用于录制音频和视频的一个类。三、状态图:
说明:
与MediaPlayer类很相似MediaRecorder也有它自己的状态图。
以下是关于MediaRecorder的各个状态的介绍:
1、Initial:初始状态,当使用new()方法创建一个MediaRecorder对象或者调用了reset()方法时,该MediaRecorder对象处于Initial状态。
在设定视频源或者音频源之后将转换为Initialized状态。另外,在除Released状态外的其他状态通过调用reset()方法都能够使MediaRecorder进入该状态。
2、Initialized:已初始化状态,能够通过在Initial状态调用setAudioSource()或setVideoSource()方法进入该状态。在这个状态能够通过setOutputFormat()方法设置输出格式。此时MediaRecorder转换为DataSourceConfigured状态。另外,通过reset()方法进入Initial状态。
3、DataSourceConfigured:数据源配置状态,这期间能够设定编码方式、输出文件、屏幕旋转、预览显示等等。
能够在Initialized状态通过setOutputFormat()方法进入该状态。
另外,能够通过reset()方法回到Initial状态。或者通过prepare()方法到达Prepared状态。
4、Prepared:就绪状态,在DataSourceConfigured状态通过prepare()方法进入该状态。
在这个状态能够通过start()进入录制状态。另外,能够通过reset()方法回到Initialized状态。
5、Recording:录制状态,能够在Prepared状态通过调用start()方法进入该状态。另外,它能够通过stop()方法或reset()方法回到Initial状态。
6、Released:释放状态(官方文档给出的词叫做Idle state 空暇状态),能够通过在Initial状态调用release()方法来进入这个状态,这时将会释放全部和MediaRecorder对象绑定的资源。
7、Error:错误状态。当发生错误的时候进入这个状态,它能够通过reset()方法进入Initial状态。
提示:与MediaPlayer相似使用MediaRecorder录音录像时须要严格遵守状态图说明中的函数调用先后顺序,在不同的状态调用不同的函数,否则会出现异常。
以下一个实例代码描写叙述了的创建过程:
/** * 開始录音 */ private void startRecording() { BaseUtils.printd(TAG, "startRecording"); mParams.mFileName = mParams.mFileDir + System.currentTimeMillis() + "amr"; mRecorder = new MediaRecorder(); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mRecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR); mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); mRecorder.setOutputFile(mParams.mFileName); mRecorder.setOnInfoListener(mRecorderOnInfoListener); if(mParams.mMaxFileSize > 0) { mRecorder.setMaxFileSize(mParams.mMaxFileSize); } if(mParams.mMaxDurationSize > 0) { mRecorder.setMaxDuration(mParams.mMaxDurationSize); } try { mRecorder.prepare(); mRecorder.start(); mObtainDecibelThread = new ObtainDecibelThread(); mObtainDecibelThread.start(); } catch (Exception e) { BaseUtils.printe("Exception", "Exception:" + e); } }
相关文章推荐
- Android 你应该知道的学习资源 进阶之路贵在坚持
- android MediaRecorder 与 AudioRecord 差异
- Android在ListView滑动数据混乱
- Android - Launcher Icon Size
- Android系统匿名共享内存Ashmem
- Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager
- Android系统的定制
- Android ImageView.ScaleType说明
- Android:Layout_weight的深刻理解
- 如何提高Android应用启动速度,避免启动时黑屏太久
- Android 文字竖排效果
- Android ExpandableListView的使用
- 大约Android远程监控APP源代码
- android开发之AlertDialog点击按钮之后不消失
- android开发之AlertDialog点击按钮之后不消失
- Android判断Service是否运行
- android开发之AlertDialog点击按钮之后不消失
- android开发之AlertDialog点击按钮之后不消失 分类: android 学习笔记 2015-07-15 18:07 89人阅读 评论(0) 收藏
- android垃圾回收机制及程序优化System.gc
- Android Studio 使用笔记:快捷键