这一段时间,由于项目需要,一直在搞使用音频录制。看了网上很多大牛的代码,各种删删减减,百度来百度去,终于大体把流程搞通了,用时5天。
注意:本次代码实现:通过麦克风获取说话人语音->存储语音->播放刚录制的语音->退出。
一、MediaRecord简介
MediaRecord可用于视频与音频的捕捉,由于项目采用的是对于说话人语音采集,所以选择MediaRecord实现。
巨人的肩膀参见:http://www.2cto.com/kf/201503/382894.html
二、结构简介
主要模块分为开始录制、结束录制、播放音频、退出。
1、开始录制
首先实例化一个MediaRecord对象,对其中开始设置。我在这里遇到的问题是时音频文件的存储位置。代码中getCacheDir得到的是内部缓存目录,这个目录可以通过file exploer看到,具体在data/data/app名称/cache。file exploer在windows->show view->other中找到。先打开它,在启动模拟器,刚开始启动时可以发现窗口中出现文件列表。
private void StartAudio(){//开始录制
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);//从麦克风采集声音
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //内容输出格式