android多媒体——6步学会MediaRecorder录音
2015-09-20 09:35
781 查看
MediaRecorder即录音
要想使用首先查看API,可以看到MediaRecorder的生命周期
API不仅给了生命周期图,还有例子如下
查看完API我们可以试着写一写了;
【1】搭界面:两个按钮,一个播放一个停止
【2】加点击事件
【3】别忘加权限
【4】得到MediaRecorder并设置参数
【5】开始录制
【6】停止录制
这样子就已经完全实现
下面是完整源码
要想使用首先查看API,可以看到MediaRecorder的生命周期
API不仅给了生命周期图,还有例子如下
MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile(PATH_NAME); recorder.prepare(); recorder.start(); // Recording is now started ... recorder.stop(); recorder.reset(); // You can reuse the object by going back to setAudioSource() step recorder.release(); // Now the object cannot be reused
查看完API我们可以试着写一写了;
【1】搭界面:两个按钮,一个播放一个停止
【2】加点击事件
【3】别忘加权限
<uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
【4】得到MediaRecorder并设置参数
recorder=new MediaRecorder(); //音频来源 recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置输出格式 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //音频编码recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //设置保存在sdcard下面名为 myrecord.3gp recorder.setOutputFile(Environment.getExternalStorageDirectory() + "/myrecord.3gp");
【5】开始录制
recorder.prepare(); recorder.start();
【6】停止录制
recorder.stop(); recorder.reset(); recorder.release();
这样子就已经完全实现
下面是完整源码
public class MainActivity extends Activity implements View.OnClickListener{
private Button mButtonStart;
private Button mButtonStop;
private MediaRecorder recorder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButtonStart= (Button) findViewById(R.id.button_start);
mButtonStop= (Button) findViewById(R.id.button_stop);
mButtonStop.setOnClickListener(this);
mButtonStart.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button_start:
recorder=new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(Environment.getExternalStorageDirectory() + "/myrecord.3gp");
try {
recorder.prepare(); recorder.start();
} catch (IOException e) {
e.printStackTrace();
}
break;
case R.id.button_stop:
recorder.stop(); recorder.reset(); recorder.release();
break;
default:break;
}
}
}
相关文章推荐
- Android 之AsyncTask 学习
- android多媒体——4步学会SoundPool
- Android的消息处理机制——Looper,Handler,Message
- Android Studio-emulator: ERROR: Unable to load VM from snapshot.
- Android事件分发完全解析(下)
- 获得android keystore的SHA1值
- Android事件分发完全解析(上)
- Android 简单的智能机器人聊天软件
- Android ListView的中的数据更新时遇到的一些问题的总结
- Android自定义View之图形图像(模仿360的刷新球自定义一个SeekBar)
- Android 组件和进程的一些关系
- Android自定义控件
- 贝塞尔曲线练习之弹性的圆
- Android Context MODE的四种模式解析(转)
- android多点触控统一的原理(使用 event.getAction()&MotionEvent.ACTION_MASK的原因)
- Android笔记(三十四) Android中线程之间的通信(六)Handle中的post()方法详解
- [置顶] Android Studio中实战Jni开发
- android关于用.xml布局文件中对View添加OnClick事件无法响应的事情
- Android--Animotion动画详解-逐帧动画,补间动画,属性动画。
- 深入理解Android View(1)