基础篇-音频工具的熟悉和使用1.MediaRecorder

 

         本篇帮大家一起回顾一下Android常用的录音工具,MediaRecorder,AudioRecord,这两个工具录制音频还是有一点不同的,MediaRecorder录制音频(也可以录制视频)比较简单,创建完成,塞进去指定路径就可以,它会帮你完成其他工作,而AudioRecord则是给你具体的音频流,这个工具比较适合对音频修改,压缩等需求的场景。但是MediaRecorder也能获取到音频流,相比AudioRecord,简直麻烦到家了,但是我还是坚持完成了,这个后边讲一下。我没有对音质问题进行研究,我只研究了怎么用各种方法得到体积最小的音频。

MediaRecorder

在开始之前,一定要记得要权限,三个权限,内存读写权限,音频录制权限:



好,下面开始介绍一下创建过程,先构造出MediaRecorder,使用起来还是比较简单的,我看了几篇博客,都写的差不多少,

mediaRecorder = new MediaRecorder();

然后是参数的设置,介绍一下主要的几个参数:

mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);

设置录制的音频源,这里我们用手机mic就可以了,千万别瞎放啊,还有这个方法一定要在设置输出格式setOutputFormat()之前调用,不然会抛异常。

 

 mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);

设置音频输出格式,我们用AMR,这个格式IOS也可以用,可以省不少事。而且amr相对来说体积比较小,且音质还说的过去。

 

mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

设置音频的编码格式,也用AMR

 

 mediaRecorder.setOutputFile(path);

指定录音输出路径,根据自己的项目随意改,愿意写到哪就写到哪

 

 mediaRecorder.setAudioSamplingRate(8000);

然后关乎音频大小的就是上面这个参数,采样率的设置,源码里有关于具体使用场景的采样率,但是8k就是我们要的最小的


mediaRecorder.prepare();
mediaRecorder.start();

好了,基本参数基本就设置完成,调用prepare和start就可以开始了,prepare一定要在start之前调用,否则IllegalStateException伺候。

 

 mediaRecorder.stop();
 mediaRecorder.release();
 mediaRecorder = null;

当录音结束后,一定要及时释放,不释放的话,在下一次使用的时候会抱一个-38的错误,mic在占用中。。

雾擦。。传了一个小Demo上去,不知怎的它给我定了5积分,本想0积分供参考的。。没关系,如果需要的话,私我邮箱。

资源名称:Android MediaRecorder Demo1

你可能感兴趣的:(android)