在音频处理方面,Android提供了AudioRecord和MediaRecorder两种都可以录制音频,MediaRecorder的优势是已实现大量的封装,操作起来更加简单,而AudioRecord的优势是使用起来更加灵活,能实现更多的功能。
MediaRecorder是android中面向应用层的封装,用于提供便捷的音视频编码封装操作,在使用的过程中要严格按照官方指定的生命周期调用顺序,同时它的优点是
缺点是
AudioRecord是基于字节流录音,其优点是
缺点是
所以,MediaRecorder是一个更为方便和可用性高的选项
在MediaRecorder的生命周期如下
- initial:在MediaRecorder被创建或者调用reset()方法后,处于的状态
- initialized : 当调用setAudioSource()或者setVideoSource()后,处于该状态。这两个方法主要用于设置音视频的源配置,通常音频是麦克风,视频是摄像头。该状态可以通过调用reset()方法回到initial状态
- DataSourceConfigured : 当调用setOutputFormat()方法后,会处于该状态。该方法主要用于设置输出的文件格式,可以是音视频如MP4,也可以是单独的音频如mp3。当处于该状态之后,可以进一步设置音频和视频的配置参数,例如音频封装格式,采样率,视频码率,帧率等等该状态可以通过调用reset()方法回到initial状态
- Prepared :在执行完上面的操作之后,可以通过调用prepare()方法进入该状态,必须先处于该状态,才能调用start()
- Recording :通过调用start()方法进入该状态,该状态就是真正开始进行视频录制编码的阶段,通过调用stop()或者reset()可以回到initial状态
- error状态 :当录制过程中发生次错误时,会进入该状态,调用reset()方法回到initial状态。
- release : 只有在initial状态才可以通过调用release()方法进入该状态,释放所占用的系统资源
在使用过程中需要注意的是,必须先处理相关信息,在prepare,然后start,在结束以后stop然后选择reset或者release,其中任何一个步骤不对就会报异常
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69917874/viewspace-2743793/
,如需转载,请注明出处,否则将追究法律责任。