安卓之MediaRecorder(多媒体录制)
2016-06-13 10:08
363 查看
在安卓API中有个MediaRecorder类,MediaRecorder中给我们提供方法可以录制音频和视频文件。我们可以通过下面这个流程来熟悉具体的几个方法并且使用的位置和作用。
通过官方提供的api以及上面的这个模型图,我们可以知道怎么去使用它。首先对这个Recorder对象进行一些初始化操作,如上面的(录制音频)setAudioSourse,setOutputFormat,setAudioEncoder,setOutputFile,分别是设置音频来源,输出格式,音频编码格式和输出的文件。然后可以通过prepare90--》start(开始录制)-->stop(停止录制)--》reset(重置,重新初始化)--》release(释放对象不再占用空间)
示例如下:
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
recorder=new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile("/sdcard/myr.amr");
try {
recorder.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
recorder.start();
Toast.makeText(getApplicationContext(), "正在录音!", Toast.LENGTH_LONG).show();
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
recorder.stop();
//recorder.reset();
recorder.release();
Toast.makeText(getApplicationContext(), "录音已结束!", Toast.LENGTH_LONG).show();
}
});基本上,就这些,然后这个也是需要加权限的,
然后可以设置录制的总长度,在初始化时setMaxDuration(),还可以通过setOnInfoListener和setOnErrorListener进行监听。
还有几个参数可以设定,setAudioChannels,setAudioEncodingBitRate,setAudioSamplingRate。。。
通过官方提供的api以及上面的这个模型图,我们可以知道怎么去使用它。首先对这个Recorder对象进行一些初始化操作,如上面的(录制音频)setAudioSourse,setOutputFormat,setAudioEncoder,setOutputFile,分别是设置音频来源,输出格式,音频编码格式和输出的文件。然后可以通过prepare90--》start(开始录制)-->stop(停止录制)--》reset(重置,重新初始化)--》release(释放对象不再占用空间)
示例如下:
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
recorder=new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile("/sdcard/myr.amr");
try {
recorder.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
recorder.start();
Toast.makeText(getApplicationContext(), "正在录音!", Toast.LENGTH_LONG).show();
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
recorder.stop();
//recorder.reset();
recorder.release();
Toast.makeText(getApplicationContext(), "录音已结束!", Toast.LENGTH_LONG).show();
}
});基本上,就这些,然后这个也是需要加权限的,
<uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>另外,在模拟器上 是运行不起来的,需要用真机测试。
然后可以设置录制的总长度,在初始化时setMaxDuration(),还可以通过setOnInfoListener和setOnErrorListener进行监听。
还有几个参数可以设定,setAudioChannels,setAudioEncodingBitRate,setAudioSamplingRate。。。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories