使用安卓MediaRecorder录制音频时,多个音频文件的合并操作

      使用MediaRecorder录制音频时,由于没有提供暂停的API,所以在暂停操作时,只能先进行保存操作,然后再继续录制下一段,最后再对多个音频文件的合并操作。

MediaRecorder提供的音频输出格式有RAW_AMR,AMR_NB,AMR_WB,3GP,MPG4这些格式。在使用ffmpeg做一些多媒体资源的转换操作的时候,多多音频的采样率有要求。其中RAW_AMR和AMR_NB的采样率为8KHZ,而AMR_WB为16KHZ。我在实际中与到的情况是:使用ffmpeg来生成MP4文件时,8KHZ的采样率的音频不能进行MP4的转码操作,但使用使用16KHZ的采样率成功转码

      由于使用MediaRecorder录制只能是分段录制,所以最关键的操作就在于,最后对多个音频文件的合并操作,这一步操作最重要的就是去掉出第一个文件之外的头文件信息,其中RAW_AMR,AMR_NB的头文件长度固定为6个字节,AMR_WB的头文件长度为9个字节。知道头文件长度之后,剩下的操作就简单多了。

    

示例代码:


你可能感兴趣的:(Android)