您的位置:首页 > 移动开发 > Android开发

安卓之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();
}
});基本上,就这些,然后这个也是需要加权限的,
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
另外,在模拟器上 是运行不起来的,需要用真机测试。
然后可以设置录制的总长度,在初始化时setMaxDuration(),还可以通过setOnInfoListener和setOnErrorListener进行监听。

还有几个参数可以设定,setAudioChannels,setAudioEncodingBitRate,setAudioSamplingRate。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息