Android 多媒体应用:MediaRecorder 录制音视频 之 音频
2015-09-16 09:56
513 查看
MediaRecord简单介绍
音频录制
音频状态转换
reset()–setAudioSource()设置声音来源MIC–setOutputFormat()设置所录制的音频文件的格式–setAudioEncoder()设置所录制声音的编码格式–setOutputFile()设置录制音频文件的保存位置–prepare()–start()–stop()–reset()–release()释放资源
视频状态转换类似,可以直接看图
音频状态转换
reset()–setAudioSource()设置声音来源MIC–setOutputFormat()设置所录制的音频文件的格式–setAudioEncoder()设置所录制声音的编码格式–setOutputFile()设置录制音频文件的保存位置–prepare()–start()–stop()–reset()–release()释放资源
视频状态转换类似,可以直接看图
注意:记得添加权限
音频录制
MediaRecord简单介绍
手机为我们提供了麦克风硬件,我们可以通过麦克风实现音频的录制。这里Android为我们提供了MedioRecorder来录制音频与视频。下图就是MediaRecorder的状态转换图。音频状态转换
reset()–setAudioSource()设置声音来源MIC–setOutputFormat()设置所录制的音频文件的格式–setAudioEncoder()设置所录制声音的编码格式–setOutputFile()设置录制音频文件的保存位置–prepare()–start()–stop()–reset()–release()释放资源
视频状态转换类似,可以直接看图
音频状态转换
reset()–setAudioSource()设置声音来源MIC–setOutputFormat()设置所录制的音频文件的格式–setAudioEncoder()设置所录制声音的编码格式–setOutputFile()设置录制音频文件的保存位置–prepare()–start()–stop()–reset()–release()释放资源
视频状态转换类似,可以直接看图
音频录制
首先建立一个MediaRecorder的对象,然后设置音频来源(一般是麦克风)、设置音频的格式(一般是THREE_GPP)、设置编码格式(一般为AMR_NB)、设置生成文件的地址和文件名(注意有‘/’和后缀名)。代码如下:[code] private Button mButtonStart; private Button mButtonStop; private MediaRecorder mediaRecorder; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButtonStart= (Button) findViewById(R.id.button_start_recorder); mButtonStop= (Button) findViewById(R.id.button_end_recorder); mButtonStart.setOnClickListener(this); mButtonStop.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.button_start_recorder: mediaRecorder=new MediaRecorder(); //设置声音的来源 mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置音频的格式 mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //设置编码格式 mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); // mediaRecorder.setOutputFile( "/storage/sdcard0/aaa.3gp"); //设置生成文件的地址 mediaRecorder.setOutputFile(Environment.getExternalStorageDirectory()+"/bbb.3gp"); try { mediaRecorder.prepare(); //准备录音 mediaRecorder.start();//开始录音 } catch (IOException e) { e.printStackTrace(); } break; case R.id.button_end_recorder: mediaRecorder.stop(); mediaRecorder.reset(); mediaRecorder.release(); break; } }
注意:记得添加权限
[code]<uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
相关文章推荐
- android:layout_weight的真实含义
- android LayoutInflater.inflate()的参数及其用法
- android应用内获取系统权限,来设置一些系统开关
- Android 遍历全国的地区二(获取天气)
- vlc android 移植版编译
- Android NDK具体作用讲解
- Android仿qq登陆界面
- android 制作9.png图片
- Android快速开发工具ButterKnife Zelezny注解框架使用教程
- Android --SwipeRefreshLayout 下拉刷新
- Android-ViewPager( 切换动画实现 , 兼容性实现)
- android - Toast 了解及使用
- 关于Android4.4以上版本的外置存储器路径问题
- android 制作.9.png图片
- Android debug cmd
- android ListView 几个重要属性
- Android--调用系统照相机拍照与摄像
- Android的ListView数据更新后,如何使最新的条目可以自动滚动到可视范围内?
- 【Android】socket局域网通信
- Android 多媒体应用:调用摄像头拍照